Giter Site home page Giter Site logo

tommybuilds / shock2quest Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 11.88 MB

A game-engine recreation of the Dark engine, focusing on System Shock 2 on Quest

Rust 99.87% Shell 0.13%
dark-engine-games engine immersive-sim system-shock system-shock-2 3d-engine fps dark-engine quest2 vr

shock2quest's Introduction

shock2quest

Build & Unit Test Build Android

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.

Screenshots

  • Hitboxes

shock2quest: hitboxes

  • Dual Wielding + Character Models

shock2quest: dual wielding

  • Floating Inventory for VR

shock2quest: floating inventory

Running

TODO: Provide binaries

Controls

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, when Q and E are not pressed
  • W A S D - move around
  • Q E - control left hand or right hand, respectively. Mouse look will move the hand, left click will 'trigger', and right click will 'grab'.

Building

See DEVELOPMENT.md

Roadmap

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

License

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.

Thanks

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 Library
  • openxr - Bindings for OpenXR
  • rodio - Audio Support
  • serde - Serialization / Deserialization (Load/Save)
  • cgmath - Vector math library
  • clap - Command line parsing
  • cargo-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

shock2quest's People

Contributors

tommybuilds avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.