Back in the day I played quite a lot of VGA Planets. Now I'm thinking, not for the first time, about writing a computer game in the same broad style.
That style of course is generally known as 4X: explore, expand, exploit, and exterminate. The general idea is to start with a single base and a few units, and gain territory, use its resources to build more units, develop (or steal) better technology, and eventually have an apocalyptic fight with one's enemies.
I haven't played any of the Master of Orion games, but I think I probably should before I lock in any ideas. That said, I do have some specific plans (and thanks to David Damerell for helping get these clarified in my mind):
Space-based. You start with one world, and expand via space travel.
Turn-based play. For this sort of game, I'd rather spend ten minutes a few times a week for a month than commit a couple of hours as a one-off event.
Emergent complexity rather than baked-in detail. VGA Planets is a very simple game, but it remains fun because of the way various simple things interact in ways that become complex. If a detail doesn't add to the fun of game play, it shouldn't be in the game.
Completely open data. Server and client are separate programs, and they pass data between them, by email or whatever other medium is desired, using a documented format. (I'm more interested in writing the server than the client anyway.) There should be no information in the data sent to the client that may not legitimately be used by the client. The client sends back a list of orders which are checked for validity before they're implemented.
Automation encouraged. Because of the open data policy, it should be easy for players to write programs to automate parts of their empires. Empire, at least the version I played on the Atari ST, had a basic system for telling any unit that arrived at a city to go to another city, which could be chained together to throw the entire military production of your empire at the battle front; I visualise an extension of that principle, so that players don't have to go through repetitive management operations. As a side effect, much of the same code could be used to write an AI player, which a human player could use as a hint generator.
An interesting tech tree. Some sort of advancement system is pretty much compulsory; I want to make it fun to explore, and to have different directions in which one can develop rather than a single race to the top. (Perhaps tech path A gets you nifty stuff faster, but reaches a dead end sooner than tech path B. Or something along those lines.)
A side effect of that, if it's possible to make it playable and balanced, would be different FTL travel systems: a traditional drive that lets you go wherever you like, a system of stargates that let you travel much faster but only to systems where you've built gates, and so on.
Spaceship design. The tech tree should give you different engine and weapon technologies, not complete new units; you still get to decide how you want to combine them to define your fleet. Some games have the idea of limited design slots: when you want to start building a new ship class, you need to decommission an older one, so you don't end up with vast numbers of different designs floating around. I think I'd rather not; I like the idea of a big obsolete navy with ships gradually coming in for refit/upgrade or replacement. On the other hand, the design system shouldn't be hugely complex.
I'd tend to designate a "class", so that if the player wants to he can supply a list of possible names to be randomly assigned as ships of that class are built. (This is something I loved doing in VGA Planets.)
Huge configurability. As much of this stuff as possible should be in per-game configuration files rather than hard-coded. In fact I think a module interface, allowing server-side extensions to contain executable code, is worth building in from the beginning.
Try to avoid hard limits. VGA Planets has a maximum total number of spaceships in the universe, and advanced players have to care about exactly when they scrap which old ships in order to fill the slot with a new ship of their own. I want to avoid anything like that.
Assumed communications. You are after all issuing orders across your empire which can be implemented more or less immediately. Those channels should mean that technological advances and money can also be moved pretty much freely throughout your domain, rather than needing to be invented all over again on each planet or carried around in a ship's vault.
Reduce positive feedback. The productive output of large empires should not scale up in a linear fashion. Maybe travel time to the capital is a negative factor on worlds' morale because they feel they're backwaters of a big power rather than impressive members of a small one, or the running costs of your abstracted merchant navy (note, I'm not committed to abstracting the merchant navy) go up as planets^1.5 rather than planets alone because there are more worlds they want to trade with and hub-and-spoke only gets you so far. As an overall rule, if you double the size of your empire you shouldn't double the things you can do with it. (Though obviously it should give some benefit; that's the point of this sort of game, after all.)
Tech advances in the same field should be rare enough that you have time to play with one, and indeed to build ships using it, before you go on to the next. Later tech advances probably cost much more to balance the fact that by the time you get them you have a very productive research establishment.
As a corollary to that, there should be multiple paths to victory. Maybe you out-science everyone else; maybe you reach a sweet spot in research and churn out huge numbers of ships that are just good enough to dominate the galaxy; maybe you bluff the other players into accepting you as leader (and they'll get a higher score for having intact economies under your rule than they would by burning themselves out to fight you and lose).
Things I'm still wondering about:
More than one planet in a system. This makes a lot of things more complex. What does it add to gameplay? The possibility of jointly holding a system with some other power. Might well be worth it.
Code written by players to be run on the server (for people stuck with machines on which they can't write their own code). This was one of my original core ideas, but I'm not sure it's worth the security hassles.
Reasonably simple planet management, because spaceships are more interesting than planets. Maybe you just tell your planetary governor how to allocate his priorities (20% to research, 30% to industry). Or if you want to micromanage (perhaps with software assistance) and say "build the exact number of factories that's most efficient for this population level, then put anything left over into environmental cleanup", you can, but then you've got much more work to do.
"Good enough" automation built in, to the point of having a computer player which effectively enforces minimum standards for play.
Are you certain you want to bake the fourth x (EXTERMINATE!) into the game? If so, you should perhaps allow for a Dalek/Berserker civilization to have an advantage for specialising in that sort of thing.
Meself I feel planets are more interesting than spaceships but to each their own. It's the reason I never win conquest victories in CIVILIZATION. Speaking of which, yes you should try MASTERS OF ORION.
A lot of what you're talking about, (the gradually increasing difficulty of research, the problems with managing a growing empire where communication gets harder as capacity grows greater) sounds very like issues you'll face in CIV type games. And it makes me think again of wanting to play with human opponents rather than against the computer.
On the issue of different types of stardrive you should especially consider the possibility of including stargates (ground and/or orbital) either as a surviving 'ancient tech' or as a development. Very useful but very vulnerable to being destroyed.
Realistically (for certain values of that word), communications lag is of supreme importance in comparing the value of various forms of FTL tech but it would clash with one of your design constraints.
You have given me the idea of having a faction that specialises in each of the Xes, which might be an intriguing way of giving them some flavour.
Making planets more important runs into player expectations, but I could certainly see a tech tree that let you optimise planets and downplay the ship side of things. You wouldn't be going out and conquering enemy worlds, but you could snabble up unoccupied ones at a great rate. That could link with ground-based stargates.
One could certainly build communications lags into the system; the worst case would be the speed of ships (and if you don't have an abstracted merchant navy then you could tag a data packet onto each ship: "at date X, planet Y was in this state" or "at date A, these orders were issued to planet B"). Then what gets displayed is the latest available information. Or you could trust the basic "viceroy" automation to handle things locally. If you want to micromanage, you then need advanced comms tech to get real-time information. Ooh, I rather like that.
If there are four areas of tech expansion then the Explorers can have early access to (or a privileged class of) scout ships. The Expanders can have early access to biotech stuff and the exploiters... nanotech? Asteroid mining?
The Exterminators get Blowing-Things-Up-Tech.
And yeah, the FTL-Radio advance should be a big thing.
If you have comms lags, your HQ has to be at a defined point, which means it's subject to being attacked, and can potentially move.
Michael: yes, I think the Exploiters strip-mine planets to feed their orbital factories and shipyards, while the Expanders breed fast (and need to keep expanding, in fact, or they'll outrun available resources).
John: yes, to all points. I don't believe this has been done in a game before (not one I've played at least, though that doesn't narrow things down much). Whether it can be made fun rather than frustrating is an implementation detail.
Comments on this post are now closed. If you have particular grounds for adding a late comment, comment on a more recent post quoting the URL of this one.