SpaceDM was a game project I worked on with two friends from 2014 onwards. The goal was to make a finely simulated space combat RTS game where everything is based on highly detailed rigidbody physics. Ships are constructed out of small square blocks that can each be destroyed or become separated from the ship. This results in a complex damage model that allows for a wide variety of combat options, ranging from high-velocity cannons to small drones loaded with explosives that attempt to ram enemy ships.
The game is written in C#, and uses .Net framework and OpenTK to handle window creation and interfacing with the OS, but pretty much everything else was made by us. It even had somewhat working multiplayer with a deterministic lockstep simulation. It was only really deterministic when run on a single thread though, so performance in multiplayer was quite poor. All the rigidbody mechanics and a large portion of the game mechanics were written by me.
The ship simulation was quite detailed, with generators being required to provide power for weapons, fuel tanks that were prone to explosions when damaged needed to run the generators, and a heat transport simulation that meant waste heat from generators and weapons needed to be dealt with. Our lasers did not deal any direct damage on blocks, but simply deposited heat on blocks that were hit. Due to the heat simulation, the deposited heat would conduct deeper into ships and start causing damage when blocks would overheat and start melting. Here's a video demonstrating that on asteroids:
We eventually stopped the project due to technical debt accrued over the years, as well as none of us having no good ideas on how to make it an actual interesting game to play, rather than a sandbox physics simulator.
No comments:
Post a Comment