Fame At Last!
July 16th, 2010Ok, maybe I’m jumping the gun a bit.
Michael Rose from www.indiegames.com was kind enough to interview me about going full-time indie and Infested Planet. You can check out the interview here.
Ok, maybe I’m jumping the gun a bit.
Michael Rose from www.indiegames.com was kind enough to interview me about going full-time indie and Infested Planet. You can check out the interview here.
Today I’m tackling the topic of micromanagement in RTS games. It might surprise you that I’m working hard to scour all traces of micro from Infested Planet. That doesn’t seem to go well with the “arcade strategy” idea, does it?
I strongly dislike micromanagement in RTS games. Maybe it’s because my fingers aren’t particularly nimble, but I find it to be more of an annoyance than anything else. Consider the history of micromanagement in strategy games.
Historically, most RTS games have had an atrocious user interface. Think of the first popular RTS – Dune 2. You couldn’t even select multiple units together. The player had to command each one of them individually. Into this world came games with spellcaster units. The first Warcraft is a good example of this. Because game designers of that era couldn’t care less about UI, the spell abilities were naturally manual.
This is the real origin of micromanagement in RTS games. It was not a feature, but rather a by-product of the designers’ laziness. The trend continued with Starcraft and was capped off by Warcraft III. By that point, even Blizzard had tacitly conceded that things needed fixing. They added the ability to automate certain abilities.
Let’s step back a bit and ask ourselves why we play RTS games. Surely it’s for the strategy component. Many other games do twitch and reaction gameplay better. You could build an interesting game focusing on unit managment, but that game would have to focus on that single thing. Compared to FPSs and fighting games, RTS micro is laughable right now.
On the flip side, if the game is about being a commander, like Infested Planet, why do I have to babysit my troops?
Because Infested Planet is a Real Time Strategy game, I’m thinking long and hard about the unit management. For example, an early version of the game asked the player to toss individual grenades. After playtesting, I decided that this was way too fiddly. I didn’t want the players to worry about every single grenade toss. I merged the grenade tossing into a general “Heavy Weapons Area” that allowed marines to go nuts with heavy weapons.
This is the approach that I’m taking to the whole game. Your role is to make command-level decisions, not to babysit your units.
I’m a bit hesitant to reveal game mockups, for a couple of reasons. For one thing, the art in the game could change and end up looking quite different. I don’t want to set up expectations and disappoint anyone. Also, the mockups are quite rough. They’re meant to give Carlos and myself an idea of what we’re aiming for. People might look at the art and conclude that the final game is going to look worse than it actually will.
Finally, I don’t know how fair it is to Carlos, our artist. I bug him to complete these things very quickly, so they’re not really reflective of his talents.
That said, I think that you guys understand how things work. We’re doing open-heart surgery on the game right now and it’s not pretty. If all you want to see is the finished product, you should probably check in a couple of months. On the other hand, if you’re curious about the intermediate steps, come along.
Here’s the original mockup that Carlos made for me a month ago:

I like a couple of things about this picture. The interface is much better than the original game. The mockup also shows one of the cool things about the game – huge swarms of baddies. Finally, I like the idea of breaking up background monotony with randomly scattered objects (circles in the picture, but maybe rocks and debris in the final game).
As you can see, the walls and the colours were still being worked on at this point. In fact, we still haven’t decided 100% completely on the final look. Let’s look at the latest mockup:

As you can see, the colours are quite different, and Carlos has removed the outlines to go for a more “natural” look. There are several things that are great about this picture.
I like the internal texture of the rock walls and the idea of having little crystals stick out of the side. The gray “rock” floor adds variety to the background. I’m thinking of how to code it up right now. The red thing in the middle is supposed to be dead enemy blood, but I like to think of it as a wall too. It almost looks like cooled volcanic rock with those spikes.
There are a few things that we still have to figure out in the picture above. The colours still need some experimentation, in my opinion. The plain gray may become too boring over time.
Overall, I really like the picture above. There’s still tweaking to be done, but it gives me a good idea of what I have to code. The next step is to actually implement it in the game.
I try to be flexible when I translate mockups into reality. I like to provide hooks for the artist to play with the art assets. That way the mockup is just a launching point for exploration and not an ironclad specification of how things should be.
Carlos and I just experienced a bit of an art crisis. We were working on the level backgrounds, but all of our ideas just weren’t sticking. We’d create a mockup of what a level should look like, and it would end up being icky. We were spending more and more time on the question. It got to a point where this one problem was encroaching on other art tasks and generally threatening the game schedule.
The difficulty in making art for a game like Infested Planet is that there are so many constraints. It has to look good, but not too cartoony. The background and walls have to be interesting and not have visible tiles. The art needs to emphasise important elements like capture points. We were trying to satisfy all of the constraints and coming up empty.
Thankfully, we managed to slay this particular dragon. Carlos just handed me a mockup for the walls and background with a new, cleaner art style. This means that we have to re-do the existing game art that we have so far. Thankfully, it’s not that many things to change. It’s also going to be a bit tricky for me to code this, since the random maps have to look as good as the campaign maps. Still, I think that it’s worth to put some extra work into this area. I want Infested Planet to look as good as possible.
It’s been one month since I switched to full-time game development. This is probably a good time to look back and reflect.
While I was making games after work, I thought that I would feel very differently if I was a full-time game developer. Turns out that it’s a fairly subtle change. I don’t run around thinking “OMG! I’m a full-time game developer!” The thing that’s been most noticeable to me is that it’s easier to get work done. When you’re to one setting the high-level goals, it’s much simpler to find motivation.
On the other hand, I’m still not happy with how much I get done in a day. It’s a bit of a paradox. For the last few days I’ve used up every spare bit of time for game development. On the other hand, I’m not certain how much “useful work” I’ve accomplished during that time. A lot of it feels like I’m spinning my wheels and kicking up dust.
I originally went into Infested Planet planning for it to be a really short brush-up of AotPZ. In the course of the project, I’ve realised that in order for me to be able to show the game to others with pride, I needed to expand its scope. I’m not sure if this move towards perfectionism is a good thing in the long run, but I’ll give it a shot. I can’t take the same shortcuts that I used to when my games were free.
In the past few weeks I’ve developed a really bad habit of obsessing about the game. Because I’ve made it priority #1, it’s encroached on a lot of other things that I want to do. For example, my exercise routine has become patchy since I started using the time for game stuff.
I feel that this is a self-destructive habit in the long run. The first reason for this is that a lot of the “non-game” stuff contributes to my game development indirectly. For example, exercise is important for energy and general well-being. Another habit that’s been suffering is reading – if I keep skipping it, I won’t be able to come up with creative game ideas any more. The second reason for boxing in the game work is that it tends to consume itself. In the past couple of weeks I’ve lost sense of the greater project goals – the daily work is becoming mechanical.
I feel that a lot of programmers pride themselves in being able to work 80-hour weeks. Maybe I’m just a wimp, but I can’t run a creative business like that right now. I want to use my time well, but in a sustainable way.
I’ve mentioned that Infested Planet is the progeny of an earlier game that I worked on – Attack of the Paper Zombies. What I didn’t speak about is where AotPZ came from.
Two years ago I was inspired by Petri Purho to start making one-week games. All of the free games that you can find at my blog are a result of that effort. Of course, the one-week restriction went away fast. The immediate cause was the game “Tank Brigade”. I was so unhappy with the way that it turned out that I decided to never release a game that I wasn’t happy with.
The result of that choice were longer and longer development times. ”Circuit Breaker” took several weeks and “Pandora’s Gearbox” several months. At that point I fished around for a game to tackle.
After working on “Pandora’s Gearbox” I was exhausted. The game was the largest product that I ever made and I expended a lot of emotional energy creating it. All I wanted at that point was a nice one-week game. I was worried about the ballooning development times and wanted to get back to small games.
I had an engine that I threw together for one of the TIGSource competitions. The game was never finished, but I had code for guys running around on a rectangular grid. ”Here’s an idea,” I thought, “I’ll use the engine and throw something together quickly.” I was vaguely interested in the thought of several people holding off zombies till the dawn. You’d barricade yourself in the house and set traps, then the zombies would come.
I plugged away at it for a month or so, but the game just wasn’t fun. Something wasn’t working and I had no idea how to fix the problem. I was slowly losing motivation to work on the thing. Several months had gone by at this point and I was getting distracted with other things, like iPhone development.
A reasonable person would axe the project at this point and start something new. It turns out that’s not the type of person I am. I have a pathological fear of abandoning projects. It’s the flip side of my 10-year streak of incomplete, half-finished and abandoned games that came before the one-week game effort. Because I disliked the idea of entering that state again, I kept working on the zombie game.
At some point sheer stubbornness prevailed. I kept throwing ideas at the game and eventually some of them began sticking. By that point the game was nothing like my original idea. Gone was the premise of a zombie-filled night or the desperate fight to last until the dawn.
The game that resulted from my efforts was fun and innovative. I’m pretty happy that I managed to hit this particular vein of entertainment. Still, I can’t recommend this method of design to others. It’s a bit like prospecting for gold, failing to find it, but digging deeper anyway. Later on you’ve dug a tunnel to China and decide to build a high-speed transit system.
One thing that I find frustrating about game development is that you often need to create the tools from scratch. It’s certainly gotten better over time, but I still have to hack up level editors and such. I always feel like the tools are barely functional and a huge time sink at the same time.
I’m pulling a semi-clever maneuver with Infested Planet though. For example, I’m working on the user interface right now. Back when I worked at EA, we had Flash hooked into the game, so that artists could tinker with the interface in a program they knew. That’s certainly better than hardcoding it or using arcane XML files. It’s also completely infeasible for a 2-man studio like Rocket Bear. We don’t have a dedicated tools team! How to get the benefits without paying the costs?
Well, I’m fighting back in unorthodox ways by scavenging development tools. For the UI problem, I’ve made the game read SVG files that are produced by the free graphics editor Inkscape.

This way I get a well-designed and stable UI without all of the overhead of making it myself. It’s really simple too SVG files are just XML. Inkscape allows you to tinker with them inside the program.
I’m considering moving my level editor to Inkscape as well. Right now it’s an ugly hack inside the game itself.
Infested Planet is a pretty unconventional real time strategy game. Compare it to something like Starcraft.
A lot of the uniqueness of Infested Planet comes from my underlying philosophy behind the game. It can be roughly put as:
Often when I’m designing a particular feature, I imagine what the game would be like if it was an arcade game. Think of all the things you see in arcade games that you rarely see in strategy games. How come nobody’s made an RTS with powerups or bosses yet? Imagine a platforming game where instead of controlling a single avatar who runs about, it was a team of guys who could build things.
There’s a reason why a lot of the other RTS games are so similar. It’s because they embrace particular assumptions, even if they’re not aware of them.
Most RTS games, starting with Dune II and going forward have tried to be like chess. Specifically, they try to create 2 or more game races that are roughly balanced. That way when you’re playing against the opponent, you know that both of you are playing by roughly similar rules. Strategy games are all about fairness and balancing.
Notice that this is completely unlike arcade games. If I’m playing Pac-Man, I don’t expect to have the same powers as the ghosts. In many ways, the ghosts are pretty unfair! For one thing, there are 4 of them versus one of you. Of course, that’s not a problem. The game’s balanced around that unfairness, so that it’s still fun. Arcade games are all about setting up an interesting environment to play in.
By throwing out the idea that you’re going to fighting an equal opponent, I can adopt the arcade mindset. I don’t have to worry about making a “fair” opponent – I worry about making a fun opponent. This opens up a whole new set of possibilities.
Yesterday and today I spent some time making the game world look better. As I mentioned in my previous post, I added the ability to put textures on walls.
I’m much happier with the new look. Check it out.

This is what the walls looked before I coded in the textures.

This is a quick programmer art texture that I whipped up to test the code. I’m going to let Carlos – our artist – do his magic on this.
Just for fun, here’s another texture on the same map.

The next thing that I’m going to be working on is the background of the levels. The paper texture is just too bland.
If you played Attack of the Paper Zombies, you probably remember the clunky way the map looked. The biggest problem is that the game stored the map as a tile grid. Either a map square was off and you could walk through it or it was on and seen as a wall

That worked ok for the purposes of the game, but it was also kind of boring.
One improvement in Infested Planet that I really like is the vector map. I’ve rewritten the map system from scratch to make it work. Instead of seeing everything as a square, Infested Plant stores the actual contours of the map. This means that the level can be of pretty much any shape.
Here’s an early screenshot of the new map. I’m still not done with the graphics, so it’s not representative of the final game. What I’d like to point out are the shapes in the map.

That was just a randomly generated map that I took a picture of. You can see how the obstacles are much more organic and interesting. That formation on the left looks a bit like a rabbit head. I’m really excited about the things that this new map system allows. I can make a level that’s shaped like a hexagon or a cave. It’s much more interesting than squares, squares, squares.
This week I’ll be working on making the map look even better. One thing that I’m adding is the ability to display fuzzy and textured edges on the walls. I’ll put some screenshots here when I’m done.