Skip to content

darkin.space - multiplayer .io space game

darkin.space is a cross-platform multiplayer space shooter inspired by classics like DarkOrbit, Warpfire, and Realm of the Mad God. It's a hobby project I've been working on over the years, evolving both the technology and gameplay as I learn and experiment.

The Journey

What started as a learning project has evolved through multiple complete rewrites:

Backend Evolution

  • Initial version: JavaScript backend using WebSockets for real-time gameplay
  • TypeScript rewrite: Added type safety and better maintainability
  • Go rewrite: Complete architectural overhaul using the Actor model and ECS (Entity Component System)

The current backend architecture uses isolated actors for each game world. This means if one game crashes, the entire backend stays up - other games continue running unaffected.

Client Evolution

  • Game Maker Studio 1.4: Initial prototype
  • Game Maker Studio 2: Upgraded for better features
  • Godot Engine: Final rewrite for its open-source nature and CI/CD support

The switch to Godot was crucial - it enabled automated builds through CI pipelines, something Game Maker Studio couldn't offer at the time.

Architecture

The game is split into two main components:

The Lobby - A web-based hub where players can:

  • Join games via OAuth authentication
  • View leaderboards
  • Accept and track quests
  • Manage their profile

The Game Server - Real-time gameplay powered by:

  • WebSocket connections for low-latency communication
  • Actor model for isolated, fault-tolerant game worlds
  • ECS architecture for performant entity management
  • RESTful API for lobby interactions

Still Evolving

darkin.space remains an active side project that I work on when inspiration strikes. It's been a fantastic learning platform for experimenting with different technologies, architectures, and game design patterns.