The game is divided into two parts: the game library is responsible for defining
game states (including physics and animation) and updating it in response to
player input. It also emits output events (like playing sounds or quitting the
game). THe game client runs the main game loop, draws the game state, collects
player input, and handles output events from the game library. The game library
libsmashbing. There are two game clients (one native and one web) in
See the individual crates for build and test instructions.