A couple of the key ideas:
- Everything is highly customizable, working on a sort of template system. One thing I like in games is the ability to manage as much or as little as I want. So I'm hoping to strike that balance by making everything highly customizable, but with defaults that essentially make those choices invisible to the casual user.
- There is only a semantic difference between what a base is (on a planet, or a space station) and a ship.
One thing I wish more games had is the ability to have large capital ships be mobile bases. i.e., I'd rather have fewer bases and more large ships that can do things like build/launch/repair smaller ships, etc. I think I can achieve this by making bases and units essentially composed of "modules" that break down the functionality to the lowest level. Then the size and abilities of a base or ship are just determined by the number and type of modules on board.
For example, a planetary base might have a ton of modules, ones for resourcing, building units, research, etc. Meanwhile a fighter ship might only have one or two modules for their weapons.
Hopefully organizing things this way will make it possible to have ships really run the gamut of functionality just by re-using the same code that runs the bases.
- I said the game was a 4X type game, but I guess thats sort of a lie. It's going to be single player only, and while it will play at times like GalCiv II and the like, I want there to be more emphasis on the story and actual missions. Not just like, take over this small star system, then take over this bigger one and we'll tell you some story along the way. I'd rather have the missions involve specific tasks that work into the story in a more natural way.
On the technology end of things, I was really hoping to use C#, call me crazy but I think it's a great language. Unfortunately, I couldn't seem to find any graphics engines that will work with it natively or without losing some features (Irrlicht seems to be the closest to having something usable, but there are key features missing that I need). So I'm going to have to stick with CPP, and I'm thinking to still use Irrlicht. I've been working on mocking up a map so I can see how it would work, so we'll see how that goes.
I'm still not 100% holding myself to every starting/completing this, as I have a tendency to get bored with things, but it's still swirling around in my head.