Rush, Boom, Turtle: How to Make an RTS
So let's say you're making a real-time strategy game. I'm going to do you a favor and explain exactly how to do it. Ready? Step One: Make an RTS. So far, so good.
Step Two: Go to Staples and get a big whiteboard and a red marker. Red is better for how much it looks like shouting. I want you to hang this whiteboard in your work area, and on it, I want you to write this across the very top:
THINGS TO PUT IN MY REAL-TIME STRATEGY GAME
Go ahead and use all caps, because, yes, it's that important. Now I'm going to tell you the things that need to go on the whiteboard. Those you don't have to write in all caps, but remember to keep using the red marker. Yes, they're that important.
1) Hotkeys, hotkeys, hotkeys
Seriously, come on. Stop expecting everyone to learn the icons on your tiny little buttons, especially if you're going to have units with special abilities like bloodlust and sandbag emplacements and fireballs. You want me to hunt down my unit, mouse-click some indeterminate button, and then click on a target? Ha ha ha! You might as well just add a Whack-a-Mole mini-game.
And stop leaning so heavily on my mouse. In fact, I should theoretically be able to play your RTS without ever touching my mouse. And please let me configure the hotkeys however I want. There's no standard, yet, among RTSes like there is with shooters using WASD. I'm serious about this one. Notice that it's my number-one point. That says I mean business. Don't make me come over there.
2) Unit stats
One of the quickest ways to kill your RTS is to make me feel like I'm just throwing units around without understanding what they do or how good they are at doing it. If I ever have to ask "What's this one do?" you have failed. If I have to, I will illustrate the point with a LOLCAT image of a cat hilariously missing a jump up to the kitchen counter.
The model for detailed unit data -- actually for almost all of the stuff I'll be mentioning in this column -- is Big Huge Games' Rise of Nations and Rise of Nations: Rise of Legends. They allow you to turn on detailed unit information, which includes stats, indicators for any buffs and debuffs on the units, and tips to about the units against which they're effective. You can even see these details for enemy units.
The anti-model is Supreme Commander, a game with an extremely wonky and mathematically driven economy that gets all coy when it comes to numbers for the actual units. In fact, if you want to know units stats in Supreme Commander, you have to go to a Web site run by a fan, complete with ads. Why not have a cold, refreshing Diet Pepsi along with the damage rating for your Cybran gunship?
Sins of a Solar Empire also fails, presenting flavor instead of helpful info. Under the hood is an esoteric and unintuitive combat system. For instance, fighters are the best way to counter siege ships. Huh? Whoda thunk? That's like attacking catapults with archers. This lack of unit data is huge flaw in an otherwise swell game. Make sure you don't make the same mistake when you make your RTS, or I'll dig up that LOLCAT thing I was talking about.
3) Variable speed
A lot of RTSes are made for hyperactive kids hopped up on Jolly Ranchers and Pixie Sticks. But what about guys like me who are slow and old, as I demonstrated with my outdated Pixie Sticks reference? Work with me, RTS makers. Please. I have more disposable income than those kids who are blowing their allowance on Pixie Sticks.
I like being able to pause the game freely. Similarly, I want the game to slow to a crawl if I need time to think, or even if I just feel like watching for a while. You made all these fancy graphics, so let me appreciate them. If I want to be challenged with fast-paced gameplay, I have plenty of icons on my desktop that'll take me into shooters. Heck, I have entire console systems in my living room for that express purpose.
A single speed is rarely enough. Command & Conquer 3 does its damnedest to just rush past the early stage as if it didn't even exist, which makes big late-game battles an exercise in holding on for dear life. Age of Empires III takes another approach, letting your explorer run around discovering treasure, essentially bribing you with little gifts to persuade you that you're not bored waiting to stock up the 800 food you need to age up. Both games would be better served by simply letting players adjust the speed during the game. I hope you're writing these things on your whiteboard, Mr. RTS Developer. I need you to help me help you have me at "hello."
4) On-screen health bars
I need to know how close I am to winning or losing a battle, and I need to know it at a glance. When I have a healing spell, priests, athelas, bacta tanks or some such thing, I need to know -- quickly! -- exactly where to use them. You must give me an immediate overview of who's got how much health, preferably with a hotkey that can toggle it on and off, because let's face it: health bars are butt-ugly and they mess up your great graphics, but it's information I've just got to have. Please don't pretend otherwise, or I shall address a sternly worded letter to your place of employment. You should see the one I'm writing to the guys at Petroglyph who made Universe at War, an RTS without health bars.
5) Attack Move
The attack move was patched out of Age of Empires III a few months after its release, and it remained that way for several patches. Ensemble barely acknowledged it was a problem, merely noting that the attack move artificial intelligence was "broken." I have no idea how long the attack move was MIA, because I sure as heck wasn't playing.
Every single RTS needs an attack move. This is especially true in a game where moving and attacking are mutually exclusive. If unit range is a factor in comparative advantages -- and when is it not? -- then an attack move is even more important. I need the tactical AI to manage the advantage by stopping and attacking as soon as it's in range of an enemy.
The guys at Petroglyph deserve a special tip of the hat for recognizing that the attack move should be the primary mode of moving your units. In Empire at War and Universe at War, a right click gives selected units an attack move. A double-right click gives a conventional move order, which is great interface shorthand for telling your guys, "Just hurry up and get there!" More RTSes should adopt this convention. Unfortunately, I take back my tip of the hat to Petroglyph and instead give them a "harrumph!" for Universe at War, where units don't stop moving when given an attack move. That's going into my sternly worded letter about the lack of health bars.
There you go. Now you've made an RTS! I look forward to playing it when it comes out, and you can expect an angry post from me -- on your official forums, no less! -- if any of these features are missing.
UNIT OF THE WEEK
Every installment of Rush, Boom, Turtle will include a Unit of the Week, even though the column is biweekly. During the off-week, you'll just have to pick your own unit. I'm sorry if that leaves you in the lurch.
The Unit of the Week this week is the Advent Illuminator, from Sins of a Solar Empire. It sits in the spot for each faction's long-range missile frigates, so you'd think it would be JAMF (just another missile frigate). But, no! This sexy little number, which looks like a cross between the Millennium Falcon and a hot rod, is unique. It's a long-range missile frigate that can't be bothered with simple missiles. Instead, it fires a long-range beam from a radar dish -- and not just one, but three! If you correctly position an Illuminator, it'll attack three targets at a time, whereas the TEC and Vasari missile frigates can only attack a single target at a time. This makes the Illuminator a great ship against big fleets. And with enough Temples of Hostility, the Illuminators learn that age-old RTS trick of making phantom copies of themselves.
So congratulations to the sexy, psionically gifted chicks of the Advent, whose Illuminator wins the very first Rush, Boom, Turtle award for Unit of the Week. Your trophy is in the mail -- but since you're precognitive, you already knew that!