2019-01-01 - Current
Indiebackend
Kubernetes PostgreSQL Nest.js Angular Typescript Go ArgoCD Github Actions

A backend as a service for indie game developers, providing a set of tools to help them build their games without investing too much on their backend.

It’s a side project I’ve been working on for a few years now. It provides a set of tools to help indie game developers build their game, such as a database, a matchmaking system, a chat system, a leaderboard system, and more that aims to be easily integrated in a game thanks to a client SDK (for Unity, Godot, and more) and an Admin SDK (for Node.js, Python, and more). Everything is deployed following GitOps approach on a Kubernetes cluster, with ArgoCD and Github Actions.

  • GitOps approach for deployment
  • Kubernetes cluster on Scaleway
  • Client SDK for Unity and Godot
  • Admin SDK for Node.js and Python
2023-08-01 - Current
Aria Online
Jira and Confluence Godot C# PostgreSQL Node.js Typescript Kubernetes FluxCD Github Actions Steam

Aria Online is a 3D MMORPG, mostly focused on PvP involving three factions fighting for the control of the world. It’s main focus is to provide a fun and challenging PvP experience in a single-world and quick-to-join environment. There is no notion of leveling or classes in Aria Online, instead, players can choose their own path and specialize in the skills they want to use (mostly dictated by the weapons they use).

I’m challenging myself to build a MMORPG from scratch, from the game client to the backend, and the infrastructure following GitOps approach. It’s a very fun project as I’m learning a lot of new things, as much on the technical side as on the communication side as I’m trying to be as transparent as possible on the development of the game.

Due to the GitOps approach, everything pushed to the main branch of the repository is automatically deployed on the production environment thanks to FluxCD and Github Actions after a new version is created (versioning is done automatically thanks to conventional commits), also the client is automatically built and deployed on Steam for my friends to be able to test the game (and maybe in the future, for the players to be able to play the actual game)

See my blog for more details, it’s a very ambitious project and I’m trying to document as much as possible my progress on it.

  • Client: I’m using Godot as the game engine, and GDScript as the scripting language.
  • Game Server: I’m using a pure C# server and an ECS architecture to handle the game logic as I liked the flexibility it provides when implementing a new features (rather than the performance gain). I also try to be as allocation-free as possible to avoid any garbage collection.
  • API: I’m using Nest.js as the framework for the API, and Typescript as the language as they are technologies that I’m familiar with and I don’t want to spend too much time on this as the end goal will be to use Indiebackend
  • Infrastructure: I’m using Kubernetes and FluxCD to deploy each components automatically when a new version is pushed to the main branch of the repository.