In the far future, humanity has been decimated and enslaved by a powerful alien empire. However, in a secret facility, biologically advanced human clones are bred and a new war fleet is constructed to take back our galaxy. Fighting aboard your ships and stations are your loyal crew, who are characters controlled by live Twitch viewers as you stream your gameplay. Command ships, build a fleet and construct an empire as the captain, or repair, mine, build, capture enemy ships and pilot fighters as a Twitch viewer. You'll need to work together to take back the galaxy!

Post news Report RSS FLEET: Solar Empire - Welcome to the galaxy

The first of many posts detailing the development of FLEET: Solar Empire and its creator, Mathew Tomberlin

Posted by on

Hello and welcome to FLEET: Solar Empire!

This is just going to be a brief introduction so that we all know each other! My name is Mathew Tomberlin, I'm a indie game developer, computer science student and US Marine Corps veteran. I have been developing games independently for the last two years, but have loads of amateur experience from my youth. If you're interested in learning more about me, specifically, I'm quite active in the Game Dev Quest Discord server and you can always say hi or ask questions on my Twitter @CrimsonOctopus. If you're a fellow game developer, I highly recommend you drop by and say hi to the group!

FLEET: Solar Empire has been under development for about 6 months. I've been using Unreal Engine 4, almost exclusively in Blueprints, and Blender for the 3D animation. Development rate and progress has ebbed and flowed with the amount of school work I have, my current motivation based on life events and computer problems, but I am satisfied that the result is approaching a mostly playable state. I have had to make iterative passes through each of the core game mechanics, each time developing more and more of the mechanic and integrating it with each of the other new mechanics.
Star Knight capitol ship skimming over a planet's rings

The game connects to an input Twitch IRC and reads incoming messages, parsing them for a command identifier, command and command parameters to determine "crew", who are Twitch viewer, commands for their characters. A major problem has been designing the UI to maximize the amount of information about each Twitch viewer's character, such as their health, level, stats, current room/ship/fighter. I have developed novel means of indicating targets, such as a curved progressbar-like line from one list element to another and tabbed, scrollbox-styled lists, in order to pack as much viewer information on screen as possible while inhibiting the player's view as little as possible.

Another interesting aspect of FLEET: Solar Empire is that each solar system the player visits is procedurally generated and saved for return trips. The planet's precipitation, atmospheric amounts and color, moon, ring and asteroid count are all determined procedurally and are used to define the amount of resources on or near each planet.

Star Knight near a C-Type asteroid orbitting a planet


Lastly, I'll discuss persistence in the game, which has been another major sticking point. Because the solar system is procedurally generated (not using a seed value), the data for each system is saved to a save game file as a variety of structs. The same is true for crew and ship data, which is serialized when the game is turned off. The data is deserialized from the save game data and the entire world is reconstructed when the game begins. Much of this is complete, though by adding many new features since the last time I worked on persistence, much of it is broken as well.

I hope you've learned a little more about FLEET: Solar Empire from this and I look forward to writing about the game for you all in the future! Until then, drop by the FLEET: Solar Empire Discord server or the message boards and say hi!

Fighter squadron taking off in front of asteroids

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: