Axium is a modular server-side game framework writen in go.
Building online multiplayer games is hard: You have to deal with netcode, client synchronization and cheat prevention. On top of that, you have to make sure everything remains performant. This project aims to provide tools simplifying this process.
Imagine Axium as a toolbox; it consists of multiple packages. Those are:
Note: At the moment there are just two. More are planned.
A capable, fast and type safe Entity Component System (ECS), enabeling an organized way to store, edit and filter your game state. Read more: ECS Docs
This package is an abstraction for bi-directional network communication. Adapters for various transports (e.g. quic, websockets) can implement it's definitions. Transport is useful since it serves as a common interface for the transport layer of a game server. It can be used by future higher level packages like ECS for example.
The server package manages sessions, orchestrates rooms and routes messages. It uses the transport package for communication and works with flexible interfaces, to be as unopinionated as possible.
This project is still in development, backwards compatibility and production quality are not guaranteed.
Issues and PRs are welcome.
Axium is governed under the MIT License