Please forgive me, this post is probably going to have a “thinking out loud” feel. I’m just trying to get a handle on what Star Revolution is going to be about and what resources it needs.
The most basic thing Star Revolution needs is a starmap. This will probably be a 256×256 map of cells, each one containing either empty space or a star system of some kind. The color of the star system will be displayed on the starmap. Different star systems will produce different planets – for instance, yellow stars are the most likely to have habitable planets, but hotter stars could have planets with more abundant minerals (for instance).
Upon piloting your ship into a square with a star system on it, a map link will activate and a new smaller (probably 64×64) map will load representing that individual star system. You may then pilot your ship onto individual planets, which will be map links linking to a 64×64 map representing the planet’s surface.
All of this is easily done with tech I’ve already written. The mining of planets with your landing craft (a la Starflight) could be easily done with my “get” code.
Now, if I just created a ship upgrade system, threw in some occasional enemy ships (SPAAAAAACE PIRATES!) and cooked up an interesting combat system, I’d have a viable game…basically a 2D version of Elite. It would be completely plotless, but could still be quite diverting.
So:
- A 2D starmap (with 3D rendered stars, but traversed in a 2D manner)
- 2D system maps (again, with 3D rendered planets)
- 2D maps of planet surfaces
- The ability to get things from the surface of planets (minerals, artifacts, etc)
- The ability to upgrade your ship
- Ship-to-ship combat
- Random enemies to fight
The resources we’d need to create this:
- The starmap
- System maps for every star on the starmap (could be a lot, they’ll probably have to be randomly generated)
- Planet surface maps for every planet on the starmap that can be landed on, which won’t be all of them, but will be a lot. Again, random generation is the way to go here.
- 3D models for the stars (we’ll probably use one model and scale it up or down and put different skins on it for the different stars
- 3D models for the planets (Starflight used an irregular sphere with the points raised or lowered based on the heights on the actual planet surface map, I’d like to do something similar)
- A 3D model of the player’s ship.
- A 3D model for the space pirate’s ship (they’ll all look the same)
We’ll call this Stage 1 of the game. If I published this, I would be somewhat satisfied. It’s a game, and it would probably be a more diverting game than Inaria.
But I doubt if I would be satisfied with that. What I want are for parts of the galaxy to already be inhabited by sentient spacefaring alien races that the player comes into contact with. Some will be naturally friendly, some will be naturally hostile, and some will be neutral and will react to you based on how you treat them. This means a conversation system. While Inaria didn’t really have a conversation system, I’ve written one before for Hit & Myth and therefore I’m not too concerned with writing another one. But I do want Star Revolution’s system to be more robust, with “topics” – things you can ask about that do not necessarily show up until you know to ask about them. This will allow me to make the game much more plotted than Inaria was.
So:
- 2D or 3D portraits for several alien races (I’d want to have at least six)
- Conversation system that remembers previous topics, has hidden topics and allows the user to reread previous conversations
- 3D models and textures for the ship for each alien race (I’ll probably keep it simple and have each race be represented in space by one type of ship)
- The ability to tag parts of the starmap as “belonging” to different alien races. I don’t want these to be hardcoded, because it could help the plot a lot of boundaries change through the course of the game. If the player is in a tagged area, they will run into ships belonging to that race frequently.
- Some representation (probably a 3D model) of cities of a particular alien race on planets they control.
- Variables that track how friendly a race is to you, and therefore what they say to you.
This would give me a framework capable of creating a game at least as big and full-featured as Starflight and Starflight II. The changing boundaries could even give me the ability to replicate Star Control II’s “evil species wipes out all others” plot development.
So that would be Stage 2 – far more ambitious. Doable? I have no idea, I’d have to see how long it takes me to implement Stage 1 first.
As for Stage 3? The only other ideas I can think of are having a fleet of ships instead of one ship, like Star Control II, and perhaps borrowing a few tricks from Master of Orion. Perhaps when the game begins, only the most basic spaceflight and offensive and defensive technologies have been developed, and new ones will come along at a regular pace. But if the player finds habitable planets and recommends them for colonization, the player will not only get a bounty, but will get a small percentage of the wealth the colony generates every game month. The colony will also contribute to research, making more advanced technologies available for purchase sooner. Finding suitable planets for colonization would then be an investment that would really pay off as the game progressed. Ooh, I like that idea. But we’ll implement that only if we do both stages 1 and 2 and have a lot of time left.