I had this game idea for a while but I didn't have time or motivation to start working on it. Now I have lots of free time and nothing else to do (I'm unemployed) I decided to put up a design and start coding. I am thinking about trying out Unity DOTS, in order to gain experience on data oriented coding, so it'll be ECS based. My inspirations are mainly Aurora 4X and Distant Worlds, as well as The Expanse series. I love the scope and the freedom you have in both games. This is the first time I am sharing these ideas with anyone, so if you don't mind reading it all and let me know what you think about it, I would be so glad.
As you might have guessed, it's a sci-fi themed 4X game. It'll be 3D but most of the stuff will happen on the same 2D plane. Time system will be similar to Distant Worlds and Stellaris, days will be passing at a certain rate. Galaxy will be procedurally generated and will include different types like spiral, ring etc. I was thinking about splitting the game into three phases or eras at first, but now I am hesitant about it I might just go with two. Basically, I want player to spend considerable amount of time in his/her starting star system before reaching other stars, and this will be the first phase. When you have sufficient technology and resources as well as some kind of dominance over the starting system, you can start exploring and colonizing other star systems and this will be the second phase. Originallly I thought about the first phase being planetary unification or dominance, either through military means or peacefully by diplomacy. However, I want to support multiple races/factions/players for each colonizable body, so I thought achieving some sort of dominance in your starting planet (if not starting alone) should be an organic goal anyway. I am also thinking about seperationist movements, so your unhappy and relatively strong colony (or colonies) can just declare independence (i.e. MCRN or OPA in The Expanse). I think I want a fairly detailed political and diplomatical system, but I'll have to think and brainstorm more about those at some point.
One thing I want for sure is to implenent the sheer scale of space. I thought about placing every object in the same scene at first. I loved how you can place a listening outpost in middle of nowhere and spot enemy fleet movements in Distant Worlds. Or not being limited to hyperlanes etc. You can just directly go from one place to another. But I don't think that's a viable option for what I want, considering the floating point limitations. While I don't mind making stars or planets not exactly to scale, I really want to keep the scale of distances between all those bodies, so going from inner system to outer system should take some time even with a fusion powered spaceship. In this case though, making both big systems and placing hundreds of them into the game world is just not possible. So I think I'll have to go for Aurora or Stellaris-like approach where you choose a specific system and load it, unlike Distant Worlds. I might make some kind of behaviour that will load the closest system as you zoom in, and if you zoom in on an empty space and try to put a station or outpost there it'll create a small system in that location, but that's something I should think, experiment and work out as the project progresses.
I tried to find a sweet spot between realism and game mechanics throughout this design. While it is probably possible to simulate or at least imitate some kind of orbital mechanics, I think it just complicates everything. However I know that I don't want a simple movement system like Stellaris or Distant Worlds. So I decided to go for an approach like this: When you issue a move order to a ship, it'll calculate the distance and start burning its engines towards the target. When it is about halfway, it'll turn around and start a retro burn in order to decelerate, something similar to moving in space in real life, assuming you have lots of fuel. Although I might modify this system to some degree since I want bodies orbiting around their parent body and start the game with chemical propulsion. And I am not so sure about how it affects space combat in terms of fun, but I am pretty sure missiles and PDs will be a big part of it.
Just like Aurora, I want logistics to be an important part of the game. Resources should be exhaustable, and you should physically transport them to their destination before they can be useful. Now with ECS, it'll be perfectly possible to spawn hundreds even thousands of AI ships that will extract and transport all kinds of resources to your industrial bases or populations. Exhaustable resources will motivate you to find and gather more, and compete with your rivals. Also, protecting your vital trade routes will be very important as a capable enemy can target them and starve your war machine, just as you can do the same.
I have some other bits and pieces either written on a paper or in my mind, but I believe I should improve, expand and put together all of those details so they are worth sharing. I would love to hear from you, especially about the movement system and how it would fare.