a5ec8db5f7
build / build (push) Failing after 5s
dependency (SDL2, SDL2_mixer, fluidsynth-lite, a MIDI soundfont) prebuilt, so compiling the engine needs no network access - just the image and the engine source. Add res/assets/extract_assets.sh to pull the game's data files out of a purchased GOG installer, and a Makefile that assembles a runnable dist/ from the two. Also add `make package`, which builds a redistributable tarball that omits the proprietary game assets (shipping res/GET_ASSETS.txt instead) plus license information for both the MIT tooling and the GPLv3 engine, and a Gitea Actions workflow that builds and publishes it to dl.ladkau.de on every push.
89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
Shockolate - System Shock, but cross platform!
|
|
============================
|
|
Based on the source code for PowerPC released by Night Dive Studios, Incorporated.
|
|
|
|
[](https://travis-ci.org/Interrupt/systemshock) [](https://ci.appveyor.com/project/Interrupt/systemshock)
|
|
|
|
GENERAL NOTES
|
|
=============
|
|
|
|
Shockolate is a cross platform source port of System Shock, using SDL2. This runs well on OSX, Linux, and Windows right now, with some missing features that need reviving due to not being included in the source code that was released.
|
|
|
|
The end goal for this project is something like what Chocolate Doom is for Doom: an experience that closely mimics the original, but portable and with some quality of life improvements including an OpenGL renderer and mod support!
|
|
|
|
Join our Discord to follow along with development: https://discord.gg/m45xPan
|
|
|
|

|
|
|
|
Prerequisites
|
|
=======
|
|
- Original cd-rom or SS:EE assets in a `res/data` folder next to the executable
|
|
- Floppy disk assets are an older version that we can't load currently
|
|
|
|
|
|
Running
|
|
=======
|
|
|
|
## From a prebuilt package
|
|
|
|
Find a list of [downloadable packages](https://github.com/Interrupt/systemshock/releases/) for Linux, Mac and Windows. 32 and 64 bit versions are available for Linux and Windows.
|
|
|
|
## From source code
|
|
|
|
Prerequisites:
|
|
- [CMake](https://cmake.org/download/) installed
|
|
|
|
Step 1. Build the dependencies:
|
|
* Windows: `build_win32.sh` or `build_win64.sh` (Git Bash and MinGW recommended)
|
|
* Linux/Mac: `build_deps.sh` or the CI build scripts in `osx-linux`
|
|
* Other: `build_deps.sh`
|
|
|
|
Step 2. Build and run the game itself
|
|
```
|
|
cmake .
|
|
make systemshock
|
|
./systemshock
|
|
```
|
|
|
|
The following CMake options are supported in the build process:
|
|
* `ENABLE_SDL2` - use system or bundled SDL2 (ON/BUNDLED, default BUNDLED)
|
|
* `ENABLE_SOUND` - enable sound support (requires SDL2_mixer, ON/BUNDLED/OFF, default is BUNDLED)
|
|
* `ENABLE_FLUIDSYNTH` - enable FluidSynth MIDI support (ON/BUNDLED/OFF, default is BUNDLED)
|
|
* `ENABLE_OPENGL` - enable OpenGL support (ON/OFF, default ON)
|
|
|
|
If you find yourself needing to modify the build script for Shockolate itself, `CMakeLists.txt` is the place to look into.
|
|
|
|
|
|
Command line parameters
|
|
============
|
|
|
|
`-nosplash` Disables the splash screens, causes the game to start straight to the main menu
|
|
|
|
Modding Support
|
|
============
|
|
Shockolate supports loading mods and full on fan missions. Just point the executable at a mod file or folder and the game will load it in. So far mod loading supports additional `.res` and `.dat` files for resources and missions respectively.
|
|
|
|
Run a fan mission from a folder:
|
|
```
|
|
./systemshock /Path/To/My/Mission
|
|
```
|
|
|
|
Run a fan mission from specific files:
|
|
```
|
|
./systemshock my-archive.dat my-strings.res
|
|
```
|
|
|
|
Control modifications
|
|
=======
|
|
|
|
## Movement
|
|
|
|
Shockolate replaces the original game's movement with WASD controls, and uses `F` as the mouselook toggle hotkey. This differs from the Enhanced Edition's usage of `E` as the mouselook hotkey, but allows us to keep `Q` and `E` available for leaning.
|
|
|
|
## Additional hotkeys
|
|
|
|
* `Ctrl+G` cycles between graphics rendering modes
|
|
* `Ctrl+F` to enable full screen mode
|
|
* `Ctrl+D` to disable full screen mode
|
|
|