It's about time someone really used the network for something.
We all have our favorite kind of game. Mine just happens to be space combat sims. This doesn't mean I own them all... Just the best ones. For my own personal reasons, I consider the best sims to be Tie Fighter, and Freespace 1 and 2. The Freespace games are not really innovators exactly, though they do bring better-than-usual graphics into the equation, and of course the kilometer long capital ships are just badass. The ship in the original Descent:Freespace with the hole in it that you can fly through is just wonderful.
The other thing that descent is doing right is the internet play, though expansion on such things is what this article is all about. I'm sure everyone is familiar with the big online RPG games, like UO and EverCrack. You might ask how that's relevant in a space combat sim, and it's excellent if you do, because that leads right into my next topic.
Persistence of Change
For those that don't know, it's possible to play Descent:Freespace 2 in a RPG fashion, which is to say, you are part of a group that controls some area of space. You then basically have squad matches (Read: Clan Matches) which determine the results of a battle; You need two members from each squad present to actually have a battle. You have your battle, you gain or lose a system, the map is updated, et cetera.
This is all well and good, and in fact I approve heartily of it, and I think that more games should do precisely that. It should be trivial for someone to implement a Half-Life (or other quake engine) mod that does something similar. However, I'm interested in something a little more complicated than that.
Precisely what am I talking about? I want to see a UO-like space sim in which you have multiple systems. Each system would have a three-dimensional grid; Each grid space would be a certain size. When you were in a particular grid unit, you would be able to see for however many grid units around you; Those grid units would be loaded when you approached them. "Permanent" objects (more on those quotes later) are stored in the grid unit's data, and when you entered a new grid unit the changes (if any) in the "permanent" objects would be sent rather than the entire map, to save bandwidth. In this way, even those with mere ISDN connections (You modem users are going the way of the dinosaur, you know) should still be able to play games in a reasonable fashion. It might be wise to subdivide it further and have you load a psuedospherical collection of map units, then loading additional units as you approach them in smaller blocks than, say, ten kilometers. Note that your radar in freespace works a good long way in most circumstances. Again, I'm just using Freespace as an example here, because it has most of the features I want, and I enjoy it a great deal. See my article on space sim physics for the things it's missing, like all the other games.
Anyway, you should be able to roam space at any given time, and you should have both real players, and AI players. The AI players can be of any sort; Militia, Mercenaries, Mobiles (Wandering bad guys), Traders, and so on. Like UO, I'd like to see it be possible to play as any kind of pilot, whether you're a pirate, or a freighter captain, or just a merc who owns his own fighter craft. It should be dramatically difficult to disable someone's hyperdrive, so that they can generally escape. You should be able to hire AI players (Under the proper circumstances) and employ them defending your planet or station or what have you, or accompanying you on a raid of someone else's territory. Fleets then could be made up of both player ships and AI shops, and the AI ships could be under the command of players, much like they already are in most fighter combat sims. These characters should have their own motivations and limits, varying skill levels, and so on, and they should have a good sense of self-preservation (unless they're religious or patriotic zealots, or something.)
Keeping the Peace
Now, while I would like to see a system in which you can play any role you like, I would very much like to see the game punish people for marauding too evilly. If you are a fearsome space pirate, I'd like to see a sizable bounty on your head. It's also going to be difficult to get repairs made to your ship, you're going to have to purchase missiles and whatnot on the black market at black market prices, and so on. The goal here is to limit people's desire to make things not fun for other players. In addition, freighters and other large ships should have truly wicked shield levels so that it's hard to kill them, and they have time to beg for help.
Part of my master plan for keeping peace in the galaxy is to maintain at least one sort of Imperial Navy, probably two. They would each control something like twenty-five percent of known space at game start, and never more than about fifty percent. In addition, known space should expand as people discover jump points or create jump nodes or what have you, so that there's always room for players to move out. You should actually be able to sell systems to the major powers (or minor powers, if they get enough money), build starbases and/or shipyards which then turn out new craft, et cetera.
Playing With Yourself
Now, a note on single player modes; At least for the combat mode, this is absolutely crucial. People will need to sharpen their skills, and they won't want to do it by getting their asses kicked all over the map. You also need to give people something to do with your game when their internet connection is down, thus keeping them hooked on your game, and interested in it. You don't necessarily need to have a single player story aspect to the game, though that might help out. You could also ostensibly give away just quick and dirty missions with the game, and then for ten to twenty-five bucks sell scenario packs containing a number of far more detailed missions backed by a storyline, some FMV, and so on.
Basically what I'm talking about here is a combination of Star Control, Tradewars, and Freespace. A game where you can play nearly any spacefaring role available to someone who can twiddle a joystick and has a halfway decent net connection. Something like this would only send you the data for your grid units to minimize network traffic for everyone, but there's an awful lot of computation involved. The finer-grained the grid size is, the less network traffic there is, and the greater the amount of computation has to go on, the more memory you need on the servers, and so on. I'm basically seeing this as a gigantic clustering operation, on machines which themselves have plenty of processing power. Deep Blue, anyone?
You could easily implement this as two or three different client games, and one server. One of the client games would only give you the ability to operate in a combative fashion; You could pilot anything, but you wouldn't be able to handle the trade and management aspects of the game. However, this lighter client would have lower disk space requirements and could be sold at a slightly reduced cost. Want to trade? You need the commerce-enabled version. Want to manage a fleet, sustain a shipyard, and so on? Time to go all the way up to the fleet commander model. If you sold the various versions for thirty, forty, and fifty dollars (for example) at launch, it would ensure a reasonable stream of income, and allow people to buy just the functionality they wanted. Then provide an upgrade path later, so people don't feel trapped. This will encourage more people to buy the game (in some incarnation) than would purchase it normally.
Finally, with the inclusion of a good physics model (which is a requirement for any game, as far as I'm concerned) you have a number of ways to keep things fair for everyone. You could even allow people to design their own ships if you wanted to go that far. The things you have to watch here are cost, structure, and mass, not necessarily in that order.
First, let's talk about cost and mass, because oddly enough they're going to go hand in hand. Nothing is going to stop someone from buying as many weapons as they can afford and slapping them all over their craft, and in fact you shouldn't stop it. You should let people do whatever they want with it, as long as they have the money and pay attention to the structure of the ship. Weapons that have recoil are going to need to be mounted someplace sturdy or they're going to do structural damage to the ship and end up tearing it apart; The physics model needs to reflect this. Also, the more weapons you stack onto your craft, the more mass it's going to have, and the harder it's going to be to turn.
My hope is that this would encourage an anime-like variation in craft, where you have hordes of tiny fighters assaulting huge single gunships with one pilot and multiple gunners. Either way, the points cost is the same, there's advantages and disadvantages to either, but it would look awfully cool. This would be an excellent selling point for a single-player game, but it would add even more to the multiplayer experience.
In any case, someone needs to put all this together and get it done. If done right, it would sell like hotcakes and captivate people for years running. Furthermore, if you really get your act together with respect to the physics model, when you come out with a sequel, the new ships can start appearing in old games. Think mesh, think texture, think download. If the physics model is consistent, and the client and server are sufficiently intelligent, it doesn't matter if you have the new game or not. You can just transfer the data around, and no one's the wiser. You're going to need that sort of thing to support custom ships anyway...