This entry is part 1 of 9 in the series Artificial Galaxies

Heads up: These are all my opinions, I sure as hell don’t have all the answers or know that “my way is the ONLY way”, I’m just here doing my thing and hope it helps someone else out in the process!!

The benefits of OOP in building galactic empires and civilizations is you could get super granular if you wanted to, or keep it as simple as you wanted.

Unfamiliar with OOP? You can check this great video by Simon Allardice here to touch the tip of the iceberg:

For example, you’d make a Galaxy object and use it as a container to put in Empire object into it. Well, what’s in a Empire object? Hmmm, that might be a little more complex an object, so let’s start over. How bout we put Stars into our Galaxy object, that’d be pretty neat eh? OK, what’s in a Star object? Well, a couple things we could have stashed in a Star object,


  • Type of star
  • Color
  • Temperature
  • x and y location (maybe z too?)
  • Planet container for planets in orbit
  • Whether or not it has asteroid fields?
    • A container for the asteroid field(s)?

That’d be a good start. Now on to Planets! What could a planet have?


  • Type of planet (Biome)
    • Rocky
    • Lush garden
    • Water mostly
    • Water entirely
    • Poisonous atmosphere?
      • What kinds of gases?
  • Lifeforms
    • Major, as in alien civilizations, a Species object perhaps?
    • Minor, as in like the roaming wildlife?
  • What empire does it belong to?
  • Parent star


  • Name
  • Type
    • Reptile
    • Insect
    • Aquatic
    • Avian
  • Traits
    • Agressive
    • Psi powers
    • Technologically superior
    • Merchants


Dang! Well, that’s more than enough of a good start to get the process rolling.

All these concepts are language agnostic, but heads up, I’ll be doing them in Lua using the 30log module located here (and also exploring a little more functionality for displaying the results in CoronaSDK located here) but ideally I want to write strictly modules that output DATA only, either as one-off JSON data, or maybe an API that can be used as a module at runtime.



PS Aliens

Series NavigationDesigning a Species object and a Planet object >>