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).
- MARK1 zip archive (Windows 32-bit)
- Visual C++ 2013 Redistributable
- Install Visual C++ 2013 Redistributable
- Extract the archive
- Run game.exe
- WASD or left stick (controller) – Move
- Mouse + Left click or right stick (controller) – aim and shoot
What I've learned:
- Parallel rendering
- Collision detection
std::binddoesn't perform well
This is is a prototype. It's distributed for free, as is. If it doesn't work, send me an e-mail.