Thetaball is a physics-based digital sport with AI opponents created by a process of simulated evolution. Every bot in the game is a distinct individual, with behaviors honed by many millions of self-play matches. Because they have co-evolved within a complex, physics-based environment -- both cooperating with and competing against one another -- the bots are diverse, robust, and lifelike.



In Thetaball's single player game, your task is to field a team of bots in order to advance through a series of progressively more challenging leagues, earning as many coins as you can along the way. You can remotely control any of the bots on your team, or let them play on their own. In the local multiplayer game, 2-8 players choose up sides, with bots filling in the empty slots. A number of practice drills are available to help improve your skills.

The game employs a custom 2D engine (a C++ class hierarchy) with heavily optimized physics routines -- necessary in order for the process of evolution to unfold at a reasonable pace. The engine can render via Direct3D or OpenGL, and compiles for both UWP and classic Win32. Thetaball ships with no assets other than the font -- all textures and audio samples are generated algorithmically at install time.

The genetic algorithm was implemented as a sort of continuous round-robin; successful players reproduced at periodic intervals, while others did not. The genome was comprised of real-valued genes subject to crossover and mutation. More about the approach can be found here.

The game's design was inspired by the vector arcade games of the late 70's and early 80's, with their pixel-less displays and (in many cases) physics-based gameplay. Space Wars, Omega Race, and Major Havoc are examples.

Thetaball is coming to Steam in Spring 2018 where it will support leaderboards, cloud saves, and achievements.