Friday, January 23, 2009

Dyson, or When Less is Most Certainly More

That's a lot of seedlings. Do you like Real-Time Strategy games? Do you like theoretical physics? How about The Little Prince? If you’re like me and you’re thinking, “Well gee, I like all three,” then you should play Dyson.

According to the game’s site (where you can freely download the current build), “Dyson is an ambient real-time strategy game with abstract visuals” that allows you to “remotely command semi-autonomous self-replicating mining machines to take over an entire asteroid belt.” Sound confusing? In practice, it’s anything but.

Developers Rudolf Kremers and Alex May created the game for TIGSource’s Procedural Generation Competition in May 2008. They had one month to develop a game whose content was created “algorithmically ‘on the fly.’ ” They managed to place second out of sixty entries. Then they updated it, submitted it to the IGF, and were nominated for the Seumas McNally Grand Prize. Here’s how they got it so right.

First, they picked some fantastic material for inspiration. Dyson takes its name from the adorable theoretical physicist Freeman J. Dyson – whose name also inspired Half-Life protagonist Gordon Freeman (and his brother, I guess). Gameplay centers around a version of the Dyson Tree, which Dyson hypothesized as a genetically-engineered plant that could grow on a comet and create self-sustaining habitats for humanity. The trees in Dyson have nothing to do humanity. Instead, they spawn little seedlings, which function similarly to another Dyson thought experiment built on the work of John Von Neumann: the Astrochicken, a self-replicating automaton designed for space-exploration. I can’t believe I willingly (and somewhat accidentally) learned this much about theoretical astrophysics. Kudos, Dyson.

Maybe if I explore every asteroid, I'll find B612.  I'll give the Little Prince a sheep. Second, they nailed the design. It’s so simple. Each of the five levels is an asteroid belt displayed on an austere white-ish background that beautifully highlights how long it’s been since I cleaned my monitor. The asteroids are abstract; they’re all perfectly circular, varying only in size. You can zoom all the way in to a single fuzzy-edged leaf or zoom out and view the whole belt. As sessions roll on, saplings blossom and sprout countless branches, emulating the mammoth baobabs of The Little Prince. And the ambient music by Brian Grainger is sublime. It shifts slowly under your feet, calling attention to itself only in the most appropriate moments.

Third, they did right by the genre. Most RTS games are a blend of micro- and macromanagement, often divided between base management (construction, recruiting troops, gathering resources) and troop management (waging war, crushing enemies, securing expansion bases). Dyson eschews a large chunk of the former. Each asteroid holds a certain number of trees (usually four or five), which continue to grow and generate seedlings on their own. You don’t have to tell the game you want more troops; your trees never stop growing them. Those trees just won't stop growing.You can grow defense trees, whose limbs brandish spores perfect for fending off invading seedlings (of which there will be many). Again Dyson’s simplicity works in its favor, limiting your choices and distilling the RTS to its most satisfying elements.

Fourth, Procedural Generation. The game is different every time you play it. Yes, there are five levels, each presenting a specific scenario (tree number limitations, find an enormous enemy base, conquer a certain number of asteroids, etc.). But no session, regardless of the scenario, will ever be the same. In Dyson, asteroids and the seedlings they spawn have varying levels of energy (hit points), strength, and speed. Each time you play there will be a different assortment of asteroids with different sets of attributes. I’m convinced I only beat one of the levels because I lucked out.

Don’t let me kid you, this game can be brutal. The AI enemies are relentless, often attacking multiple asteroids at once, aiming for your expansions to trick you into leaving your core asteroids open. I can understand if you feel a little turned off by the difficulty, but the game’s not broken. It’s just challenging.

Go after the enemy before he finds you. In fact, I can only really think of two actual flaws I came across while playing. For one, I have no idea how to move seedlings that are on an enemy asteroid. Thus, I can’t recall troops or asteroid hop past the front lines like my AI opponents. I can issue the order, but they just won’t move. Weird. This resulted in the second glitch I hit. At one point I swarmed an enemy stronghold with upwards of 400 seedlings. After I’d destroyed the enemy trees, my cloud of troops was so thick, no one could penetrate the surface to plant a new tree. I couldn’t beat the level because my idiot seedlings were bouncing into one another. And I couldn’t break up the traffic jam because I couldn’t figure out how to withdraw them. A vicious cycle.

But really, that’s all I can find to complain about. One minor glitch that prevented me from winning once. Having watched these videos, I know this stuff is small potatoes.

In an interview with TunaSnax, Kremers said he “wanted to get as much interesting gameplay from as few as possible factors.” They did just that. The singular principle of procedural generation can be felt at every level of the game, from the self-replicating trees to the spare, “random” asteroid belts. It’s an enormous achievement that such a polished game came out of such a short, focused design process. It’s also a great achievement that the game’s actually fun.