Archon development pt.1

I have been brewing on a set of abstract game ideas for years… But the ideas never converged into a game that made sense in its entirety and could be fun. So, each attempt ended as most projects in the world do: abandoned. Last year, however, I got some new insights – probably stole them somewhere – that filled quite some gaps… So, I started another try.

A short introduction: Archon is a client-server, multi-player coop action RPG (Diablo, Torchlight, Grim Dawn) in which the player pilots a modular spaceship, a spacestation and walks on planet surfaces. Like in an RPG there is loot received from combat or exploration. Loot comes in the form of ship-modules that also physically define the shape of your ship (think Reassembly, but simplified to be less time consuming) .

Lore-wise, you are a remote alien conscience that, using advanced technology, is capable of mind controlling lesser aliens at distant locations. Using these controlled beings, you build several kinds of starships and starbases and fight increasingly difficult adversaries while taking advantage of the hard work done by alien communities you encounter around the universe… And of course, “Home” isn’t happy with your godly profiteering, either…

After 5 months of development, the following is up and running:

  • client-server multiplayer: this was by far the hardest part. It works by recording the entire gameworld as animation keyframes on timelines, very similar to what Flash and most 3D modelling software use for animating. These keyframes are then immediately streamed to the players’ computers so they can run the part of the gameworld that is visible on their screen.
  • Modular ships that exist of physical modules glued onto each other (guns, thrusters, cockpit).
  • A vector graphics engine that draws 2D polygons instead of the more common sprite-based graphics. This was essential because the game is mostly based on procedurally generated graphics (modular ships, stations and planets). It also allows for the graphics to stay crisp at any resolution or gameworld-zoom amount.
  • I want this game to be highly mod-able, so the game engine reads almost everything from files (json). Non-procedural graphics are read directly from SVG-files that are editable in most vector art applications.
  • A particle system for thruster exhausts, explosions, etc. My stress testing went up to 150.000 moving particles, which still ran fine on my machine. More than enough…
  • Multiple connected players can currently pilot a ship, shoot and hit ships from other factions (although there is no visualization on that yet). The server can control AI ships but only to have them follow a loop of waypoints.
  • An multi-threaded ECS engine (Entity Component System) at the core, driving all of the above.

That’s it.. 20.000 lines of C#.NET code, for … well… this 🙂

A collection of server-side controlled ships and one controlled by a player. Side, back and frontal thrusters visualize semi-realistic movement in space.
2 small ships made from modules