Created Library Locations (markdown)

Garry Newman 2017-07-08 11:22:37 +01:00
parent 7f0c57a76e
commit 2685f92445

64
Library-Locations.md Normal file

@ -0,0 +1,64 @@
Generally speaking the native dlls (steam_api.dll, steam_api64.dll, libsteam_api.dylib etc) need to be next to the application's exe.
# Development
When you're developing the appropriate dll needs to be somewhere your game/editor can find them. If you're using Unity they need to be in your project root. Be careful that they match with the dlls we provide in the release zip - if they don't you'll probably crash.
![Rust Development Example](https://files.facepunch.com/garry/2017/07/08/93e03fee.png)
# Rust Example
We ship Rust on Windows32, Windows64, Osx and Linux. Here's where we copy the libraries, where Rust/ is the location of Rust.exe/Rust.app/Rust
![Rust Development Example](https://files.facepunch.com/garry/2017/07/08/b9577971.png)
| Platform | File, Location |
| ------------- | ------------- |
| Windows (32bit) | Rust/steam_api.dll |
| Windows (64bit) | Rust/steam_api64.dll |
| Osx (64bit) | Rust/libsteam_api.dylib |
| Linux (64bit) | Rust/libsteam_api64.so |
## Dedicated Server
The dedicated server is a bit different. It can run without Steam so we need to ship a few more dlls alongside it.
| Platform | File, Location |
| ------------- | ------------- |
| Windows (64bitbit) | Rust/steam_api64.dll |
| | Rust/steamclient64.dll |
| | Rust/tier0_s64.dll |
| | Rust/vstdlib_s64.dll |
Technically when you ship a dedicated server you're meant to include appid 1007 - which includes these dlls already (something you need to talk to Valve about I think). But we play it safe by including dlls we know will always work - so we don't run the risk of appid 1007 updating and breaking our server.
We grab these dlls using [steamcmd](https://developer.valvesoftware.com/wiki/SteamCMD), using these scripts. Osx doesn't seem to be able to run dedicated servers.
### Windows
```
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../sdk_win
app_update 1007 validate
quit
```
### Linux
```
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType linux
login anonymous
force_install_dir ../sdk_lin
app_update 1007 validate
quit
```
### Bat File
```
"SteamCmd.exe" +runscript ../sdk_win.txt
"SteamCmd.exe" +runscript ../sdk_osx.txt
```