MARK1 Prototype

10.9.2015

Wanting to create massive games I set out to find a way to run game scripts in parallel. Most games (at the time of creating this) were single-threaded with different systems running on different threads (physics, particles, graphics). But I wanted to see whether it could be possible to parallelize the game logic itself. Twin stick shooters are pretty simple, but if you start cross cutting concerns and introduce multi-unit effects the parallelization is no longer trivial because you can't just "make everything immutable".

The engine can process over 10'000 units at the same time @60FPS on a first-gen i7 (not counting particles or projectiles).

Download

  1. MARK1 zip archive (Windows 32-bit)
  2. Visual C++ 2013 Redistributable

Installation

  1. Install Visual C++ 2013 Redistributable
  2. Extract the archive
  3. Run game.exe

Controls

What I've learned:

  1. Parallel rendering
  2. Collision detection
  3. std::bind doesn't perform well

License

This is is a prototype. It's distributed for free, as is. If it doesn't work, send me an e-mail.