Kodee's Arcade is a gaming platform, written in Kotlin, built exclusively for Kotlin programming games.
Very much a work-in-progress.
The platform is being built with only a single game at the moment, a racing game. We'll validate the concept works, expand the arcade with more games, and then design an API for third-party games.
Want to try out what we have? Check out our getting started guide!
The main application for Kodee's Arcade, called the machine, is split into 4 parts:
- Application: The execution entrypoint for Kodee's Arcade. Available as both a desktop and web application.
- Display: Used to render the display for the application and games.
- Engine: Used to execute games via an available Wasm runtime.
- Multicade: Core components needed by all parts of the machine.
Kodee's Arcade can also be run as a service, which is split into 5 parts:
- Server: Stores persistent game resources (drivers, tracks, seasons, etc.) and game recordings.
- Client: HTTP client used to communicate with the server.
- API: API request and response models shared between server and client.
- WebApp: Used to interact with the server to manage game resources and request game execution.
- Worker: Connects to a server and runs games. Allows off-loading game execution to more powerful servers and scaling as needed.
Kodee's Arcade is played by creating a "Player", a Wasm program which controls the behavior of a player in a simulated game. The API of the player can be used to create a Wasm program which is able to interact with the arcade.
The Machine uses some Service parts and the Service uses some Machine parts.
- The engine uses the player API to communicate with each Wasm program.
- The worker uses the engine to execute games.
- The display uses the client to talk with an available server and download resources for local use.
- The webapp uses the display to watch recorded games.