A New Simulant Game: Tunnels!

Happy Halloween!

As a Halloween surprise two members of the Simulant team, Luke Benstead & David Reichelt, have been working on a mini Halloween Dreamcast demo called "Tunnels"!

It is available for you to download on the itch.io page.

What is it?

Tunnels is a mini-demo of the Simulant engine. It's been written over the past three weeks as a demonstration of what Simulant allows you to do in very little time. Both Luke and David have day jobs, and this has been developed in their spare time - probably an hour a day each at most - and a good majority of that time was spent improving Simulant itself!

Along the way flaws were discovered in Simulant and many were fixed, others will be fixed later. Some planned features were dropped due to limited time, but may reappear at some point. In the future we'll use Tunnels as a test bed for new Simulant features, and as a regression test.

What made the cut?

Tunnels demonstrates a number of features - that possibly have never been in a Dreamcast homebrew game before:

  • A full real-time physics simulation. The entire world is being powered by the "Bounce" real-time physics engine.
  • Skeletal animation. The enemy in the game is a fully skeletal animated mesh.
  • 3D positional sound. The game uses ALdc - our custom OpenAL implementation for true 3D audio.

What didn't make it?

There were a number of features that were unfortunately dropped due to time constraints:

  • Item drops. The original idea of the game was to start with no weapons, and have to scavenge things from the tunnels. Hopefully we'll restore this functionality at some point.
  • Particles. Testing exposed a performance issue with the Simulant particle system on Dreamcast. Once this has been addressed we'll restore particles to the demo.

What was fixed?

Many issues were fixed in Simulant, including:

  • A brand-new memory efficient Wavefront OBJ loader was built, from scratch!
  • Many issues were fixed in the Milkshape3D model loader.
  • Skeletal animation was heavily optimised, particularly for the Dreamcast.
  • Added a new 'KinematicBody' class to the physics engine
  • Added many new features to the RigidBody class
  • Fixed issues with flipped controller axis between PC and DC
  • Fixed bilinear filtering with mipmaps on the Dreamcast
  • Added a new raycast API
  • Fixed an issue where Sounds wouldn't be released
  • Added support for DC triggers, and the 2nd analog stick (if a controller is ever released with one!)

Known Problems

  • Sound popping. This is a problem with ALdc that we didn't manage to solve in time.
  • Memory issues. The game appears to "leak" memory between tries. We're looking into it.
  • Low frame rate. On Dreamcast, the framerate hovers between 20-25 FPS, we hope to increase this to a constant 30+ FPS.
  • Monster movement issues. When comparing between PC and DC, the enemy seems to move away from you on DC, whereas on PC it very much attacks! There seems to be a subtle bug/difference in the physics between PC and DC (possibly frame-rate related).
  • Pressing Start kills the game. This was an oversight in the release, it will be fixed in a future version.
  • Slow loading time. This is because we're using the .obj file format for model loading - and it's not a particularly efficient way of loading a scene.

Credits

Special thanks go to the following people!

  • mrneo240 - for packaging the CDI image nicely for us
  • Psionic for the spider model
  • 3DModelsCC0 for the crowbar model
  • FreeSound and OpenGameArt for various CC0 licensed bits