Working on commands

Summer has been slow on the coding, but I haven’t been completely idle. Rather, I have been chipping corners of something big that I hopefully manage to finish this year still.

So, I want to have space ships sailing between planets and doing what space ships do (explore, research, patrol and all that jazz). Any faction might end up with a sizeable fleet of ships and other units, so some amount of automation is needed. One reason I never ever finished a game of Space Empires V is that towards the end of the game majority of gameplay was just watching ships to slowly move and then micromanaging planets. Bear in mind, lots of this blog post is just general hand waving as I haven’t coded that much of the things I talk about now. But I’m slowly working on them.

General idea is that there are space ships and they have crew. Each member of crew is unique individual with their own stats, goals and aspirations. Person in superior position can issue commands to them and they try to carry them out to their best ability (or not, in case of mutiny or rebellion). At this point I’m mainly interested on telling different people that they need to be on a certain ship (S.S. Arrow), doing a certain thing (Signaler, second class). Inside of the ship, there’s different positions (signaler, crew memeber, artificer, doctor, commander) and ranks (second class, first class, senior and chief). Up to certain amount (maybe 5), second class ranks can work just fine alone, so you don’t need a hierarchy in a small ship. In a big ship however, crew is divided into teams consisting of second class ranks, lead by first class rank. When you have enough of those teams, you’ll need senior rank member to overseer them. And chief rank is in charge of overall operations of any given type of team.

Ships for similar structure too. If you have one ship, you don’t need much structure. Just issue orders to it and off it goes. When you have more ships working towards a common goal, you can form a squadron. Squadron is lead by a squadron commander that resides in squadron command ship. Squadrons can be combined to form task force and task forces form a fleet. One or more fleets form a navy. This structure (hopefully) makes it easier to manage very large amount of ships. One could give a order to all ships in the navy to return to home base at earth. Or one could build a plan where fleet sails to given location and then breaks into several task forces who start doing their individual tasks. And inside each task force, there could be more detailed orders for squadrons or even single ships to do specific things. And all this is starting to sound pretty complex and complicated.

To complicate things, there are different kinds of units: general ground units, vehicles, space ships, some sort of flying things that I haven’t yet thought that much, etc. All of them form some sort of hierarchy and belong to one of many branches: army, navy, merchant navy, etc. that don’t necessarily have the exact same structure. So multiple different kinds of units forming different kinds of organisations, all of them using similar command system, with commands specific to their type. Sounds like a really complex thing. And it might be interesting to have some of them locked behind research. You can’t have Exploration corps, before unlocking certain research in technology tree.

In short, in the end I should have:

  • different kinds of units
  • ability for unique people be in those units
  • ability to fill rank and file positions with bulk (I don’t want to track everybody in detail after all)
  • units can belong formations, forming a structure and hierarchy
  • formation has commanding unit
  • structure of formations is dynamically created
  • ability to give commands at any level of formation

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s