A project to experience the of System Shock 2 in virtual reality. System Shock 2 is one of my favorite games of all time, and the story and ambience would be a great for VR.
This project is a game engine recreation of the Dark engine - geared towards VR experiences.
You'll need a full retail copy of System Shock 2 in order to play - recommend purchasing at either GoG or Steam.
NOTE: This is currently in a a pre-alpha state and not really playable in any meaningful way, yet. I also have to apologize for the quality of the code, this is my first Rust project - so certainly a lot of room for improvement (and a lot of hacks and experiments!) It's a project done in bits of spare time, but wanted to share out in case it is fun or useful for anyone.
- Hitboxes
- Dual Wielding + Character Models
- Floating Inventory for VR
TODO: Provide binaries
This is geared towards VR, so the control scheme is really meant for VR headsets and controllers.
However, you can play with a keyboard and a mouse, using the following hard-coded keys:
Mouse
- look around with headset, whenQ
andE
are not pressedW
A
S
D
- move aroundQ
E
- control left hand or right hand, respectively. Mouse look will move the hand, left click will 'trigger', and right click will 'grab'.
See DEVELOPMENT.md
Pre Alpha: Initial development
- Load gamesys
- Speech DB / env sounds
- Menu / Launcher
- Character sounds
- Basic AI
- Load/save
- Basic item usage
- Initial inventory management
- Psi Powers
- Act/React implementation
- Cutscenes
- Lighting implementation (Doom 3 multi-pass shadow rendering)
- Mod support
Some code is ported from openDarkEngine, so this code is licensed under GPLv2 to comply with that license.
In addition, code in the engine
folder is agnostic of Shock2, so is dual-licensed under the MIT license.
There were several projects around the SS2 community, that served as an inspiration, or were used to help understand the internals of the dark engine and file formats, notably:
Outside of the system shock/thief community, the work that Team Beef has done in bringing games to VR inspired this project.
In addition, there were several great Rust libraries that helped bring this project to life:
rapier
- Physics Libraryopenxr
- Bindings for OpenXRrodio
- Audio Supportserde
- Serialization / Deserialization (Load/Save)cgmath
- Vector math libraryclap
- Command line parsingcargo-apk
- easy cross-compiling to android
Finally, thank you to Nightdive Studios for keeping these retro games alive, as well as Le Corbeau for the NewDark patches that allowed me to revisit the SS2 universe