A long while ago I stopped posting when I decided I wasn’t getting enough cold hard coding done. After a lot of cold hard coding, I’m back to talk about Bad Bones. Bad Bones is a flash based real-time strategy game that is my first attempt at the RTS genre the way I see it. It still needs work, but it’s doing well.
Bryson is still working on unit art, but here are a couple sketches I sent over to give him an idea of what I was going for with the game.
They’re called Boman and they like to eat and have babies. Stay tuned for more art and the Boman backstory.
I’ll be demoing my early version of Bad Bones at the Independent Game Conference West in sunny Los Angeles (Marina Del Rey) this Thursday and Friday (November 5th and 6th, 2009). If you’re around, gimme a holler and wish me luck on finding a bag of cash to fund my game.
Now I wish to direct your attention to some impressive figures! I expect that I can deliver good performance on map sizes at least as big as 1600×1200, and perhaps as large as 3200×2400. Dimensions like that are generally thought to be impossible in flash, but I tell you it can be done. My proof is that I have seen it! Though it was at about 15fps…Still, it can happen.
I can get in 1000 units if I’m okay with 15fps on a 1600×1200 map currently. After some house-cleaning I expect to run a solid 30 fps with 500 units on a 1600×1200 map and of course I’ll aim for higher.
Bad Bones represents years of pondering over the RTS genre. I might say that the first time I became a hardcore fan of a game was when I got into Warcraft. It was right around the time that Warcraft 2 was coming out that I found out about the series from a kid named Raphael in my 6th grade class. His description gave me a blind faith in its excellence, and at this crucial time in my gaming experience, I was not disappointed. My family had just recently purchased our first computer and Warcraft and Warcraft 2 were an immensely gratifying experiment in PC gaming for my brother and I.
However the suspension of disbelief perpetuated by the fantastic booklet art and its pages of story, the in-game text, cut-scenes, and characters could not last forever. Warcraft 2 was my first online multiplayer experience and I became immediately aware that the name of the game was micromanagement and rushing. The best players weren’t strategists or tacticians, they were factory foreman that knew how to pump out a basic unit fast and deliver it to the enemy encampment.
The player behavior motivated by Warcraft 2 was all wrong, and yet while DOS games were left behind, this definition of the strategy genre remained largely the same. I was pissed. So I kept a mental checklist of what I wanted to see in an RTS.
Here are some of my problems with the RTS genre and how I’ve sought to solve them in Bad Bones:
Micro-management: Micro-management ruined the RTS for me. Why is micromanagement considered a bad thing in a leader, but good in a game about leading?
Solution: Unit inflation. By keeping unit numbers high and making them relatively easy to obtain, an individual unit is worth very little to the player and it becomes very troublesome to click around on single units when you can command the group as a whole–like a decent commander should.
No Tactical use of Formations or Route of Approach: There are a number of RTSes out there that allow the player to arrange their units in formations. It is generally a very limited and ineffective feature despite being of grave importance in actual combat. This is in part because no importance is given to route of approach. In reality, a group of soldiers often must find a way to reveal their enemy’s rear while protecting their own (you can cut the innuendo with a knife), so the attackers route of approach is vital in determining the victor.
Solution: Units in Bad Bones are directionally biased. They have a front with “weapons” and a rear with “vulnerabilities”. If a unit’s weapons touch an enemy’s vulnerabilities, the enemy is destroyed.
That simple design requires a player to deceive his enemy into revealing vulnerabilities by arranging and maneuvering groups of units. In other words, you must use formations.
Your average RTS judges small-scale (1v1) combat based on stats and random numbers. Two units hack or shoot at each other until dice rolls have determined that one is the winner. If the game designer wants to introduce new unit features or rebalance the game, (s)he must tinker with the stats and random numbers. This process seemed too artificial, so I opted for a more stochastic approach which attempts to solve the large-scale problem of integrating formations with what emerges from the small-scale mechanisms of directional 1v1 combat.
I’ve done a lot of testing using classic tactics–different types of envelopments, outward facing defenses, oblique formations, etc–and the results are surprisingly accurate. The stochastic approach also acts to further diminish the usefulness of micro-management and I find that it automatically balances itself as a form of game combat.
No Tactical use of Surprise: Soldiers like to do stuff like hide and sneak up behind people because, as I understand it, if you want to kill someone, you should avoid letting them see you. This concept doesn’t apply so much to your average RTS.
Solution: The use of formations and unit directionality gives a huge advantage to any player that can surprise his or her opponent, but I still wanted to introduce a form of pure deception to Bad Bones.
The most basic way to do this was with camouflage. I’ve included forested areas in Bad Bones which allow groups of units to hide their numbers or remain nearly invisible.
I am frustrated by games like Metal Gear Solid: Snake Eater, which simulate camouflage with simple AI tricks requiring a player to wear a certain outfit to blend in with landscape A and another for landscape B. But I was impressed that it was difficult for even my eyes to identify Snake sometimes, and that’s the experience I wanted to capture. So I chose to place forests as a translucent layer over the units that a player can always see through, but only with great difficulty. Humans and AI alike are required to look closely to spot a band of troops moving through a forest, and both would find it extremely challenging to spot units as they remain still.
“Fog of War” is perhaps the best conduit for surprise in RTSes, but its usefulness is generally limited. I haven’t implemented it yet into Bad Bones, but I look forward to experimenting.
No Tactical use of Terrain: For centuries terrain has been considered the foremost determining factor in a battle, but its presence in the RTS remains underwhelming.
Solution: Maps in Bad Bones are currently divided into 4 terrain types: Mud, dirt, grass, and forest. Each of these effects the rate at which units walking on them move. Furthermore, the map is generated with altitudes and the more quickly a unit attempts to change its altitude, the slower it will move (as it may be moving up or down a steep hill). Because units move most quickly over grass and they can hide in forests, an army is most vulnerable at low altitudes in mud and dirt. What makes things tricky is that all the food grows in the mud.
Artificiality of Bases: Base construction in the common RTS is step 1 and step 2 is populating the base, but this seems counterintuitive. I wanted to demonstrate the organic emergence of a consolidated population. It is important as the reason for organized warfare, why there is generally a defender and an attacker, and why retreating has very limited usefulness.
Solution: Agriculture is credited for organizing and escalating war, and Bad Bones is meant to model that to some extent.
Units in Bad Bones must eat and reproduce. The process requires a unit to eat before becoming pregnant, after which point it must remain defenseless until giving birth. The offspring then remains immobile for a period, during which it must be defended. A player is motivated to consolidate and form bases because they’re simpler to defend, but the investment a player places in any given location is completely up to him or her.
Also, any unit is capable of spawning a new population anywhere else on the map that it can find food and safety. This approach seems natural and flexible to me while the common RTS solution feels artificial and arbitrary.
I used a lot of strange and unique methods to script these ideas into Bad Bones. It was challenge enough to meet the concept’s demands with something that can run in flash, and I haven’t even mentioned pathfinding, procedural map generation, and bit-blitting. How it was all accomplished I will explore in later posts. For now, I hope you’re interested and keep an eye out for me at IGCW.
-Christopher J. Rock