58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
## Building Spacewars (steamworksexample) for Linux
|
|
|
|
All native executables built for Steam for Linux should be built using the Steam for Linux runtime SDK.
|
|
|
|
For a complete developer guide regarding the Steam for Linux runtime, see [3]. For bugs and feature requests regarding the Steam for Linux runtime, see [4].
|
|
|
|
## Setup
|
|
|
|
Download, configure and open a shell in one of the Steam for Linux runtime SDKs. See [1] for details.
|
|
|
|
```
|
|
toolbox create -i registry.gitlab.steamos.cloud/steamrt/scout/sdk scout
|
|
toolbox enter scout
|
|
```
|
|
|
|
NOTE: You may also use the newer Linux runtime SDK for sniper. See [2].
|
|
|
|
## Build
|
|
|
|
Enter the toolbox shell, go to the `steamworksexample/` folder and build:
|
|
|
|
```
|
|
timo@eta-carinae ~/D/sdk> pwd
|
|
/home/timo/Downloads/sdk
|
|
timo@eta-carinae ~/D/sdk> toolbox enter scout
|
|
[timo@toolbox sdk]$ cd steamworksexample/
|
|
[timo@toolbox steamworksexample]$ make
|
|
g++ -g -DPOSIX -DSDL -I/usr/include/SDL2 -D_REENTRANT -DGNUC -O0 -std=c++0x -Wno-invalid-offsetof -I/home/timo/Downloads/sdk/steamworksexample/../public -DDEBUG -c BaseMenu.cpp -o debug/BaseMenu.o -MD -MF debug/BaseMenu.dep
|
|
[..]
|
|
```
|
|
|
|
Use `make CONFIG=RELEASE` for a release build.
|
|
|
|
Use `ARCH=32` to build a 32 bit binary (do not use the legacy 32 bit scout SDK image, do this in the normal toolbox 64 bit container).
|
|
|
|
## Run
|
|
|
|
NOTE: You should not attempt to run out of your docker/podman/toolbox shell. Although it may work in some cases.
|
|
|
|
The Steam client should be running. The test program will initialize the Steamworks API on startup.
|
|
|
|
Launch with the `SteamworksExample.sh` script:
|
|
|
|
```
|
|
timo@eta-carinae ~/D/s/s/debug> pwd
|
|
/home/timo/Downloads/sdk/steamworksexample/debug
|
|
timo@eta-carinae ~/D/s/s/debug> ./SteamworksExample.sh
|
|
[S_API] SteamAPI_Init(): Loaded '/home/timo/steam/main/client/linux64/steamclient.so' OK.
|
|
Setting breakpad minidump AppID = 480
|
|
```
|
|
|
|
## Reference
|
|
|
|
1. [Steam for Linux runtime - scout SDK](https://gitlab.steamos.cloud/steamrt/scout/sdk)
|
|
2. [Steam for Linux runtime - scout SDK](https://gitlab.steamos.cloud/steamrt/sniper/sdk)
|
|
3. [Steam Linux Runtime - guide for game developers](https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/slr-for-game-developers.md)
|
|
4. [Steam Linux Runtime on github](https://github.com/ValveSoftware/steam-runtime)
|