Infinite Realm Runner

Table Of Contents

About

This is a game project that I have been working on for a while. It's written in TypeScript, uses Babylon.Js as the game engine, and is made into a desktop app with Electron.

It is infinite runner game with RPG elements. Each level is generated from a given set of starting seeds. These seeds are feed into a random number generated that is used to generate the level. So, each level can be basically replicated given the same seed.

Recently I decided to re-make the way the models are rendered. Instead of using normal model or thin instances I decided to move it all to voxel based system.

Development

Full List Of Technology Used
  • TypeScript
    • The whole game is written in TypeScript.
  • Babylon.Js
    • The game engine that it runs on.
  • Electron
    • Used to make it into a desktop app.

Notes

The original version of the game before I decided to switch it to voxel base used Baylon.Js's solid particle system. This had many limitations which quickly came apparent. To optimize things I tried moving the physics into a whole separate thread. But in the voxel version this is not necessary.

However, audio still runs in it's own separate thread. Specifically I use a hidden window that is created through Electron and send it what sounds to play and stop from the main thread through Electron's Inter Process Communication API.

Video