DISC ROOM is a small game by Kitty Calis, Doseone and myself. It recently released exclusively for the August Humble Monthly Bundle.

With DISC ROOM we wanted to make something simple: a hardcore dodge-’em up inspired by 70’s science fiction. Players run around a futuristic room, dodge discs, and try to survive for 30 seconds. Something anyone could make with a bit of spare time and a GameMaker tutorial, so we really needed to nail the design to make anything worth playing.

Fun but a bit boring

In the first prototype, the game spawns random disc-types with different behaviour, ramping up difficulty until the player dies. It wasn’t terrible, but the slow buildup meant it took a while for any kind of challenge to appear. The randomness also really didn’t make it a great highscore game: a lucky run would just spawn easy disc-types and let you make it a lot further. We sent the game to a few friends, and this confirmed what we thought: the basics were fun, but a bit boring, getting repetitive quickly. The random disc combinations also really caused more chaos than fun situations.

Time for a redesign: what if instead of random spawns, there were simple hand-crafted levels? The disc spawns and order all hand-picked. The levels could still slowly increase in difficulty, but would start filled up with a good amount of discs to fix the boring buildup.

combined1b

More elegant

Ideas of using a level editor to craft these were scrapped. We did something less time-consuming and way more elegant. Here’s how the first level is stored: “nnn-b–“.
Every disc-type is linked to a letter, and the game goes through the letters one at a time, spawning a disc of that type. “nnn-b–” would spawn a Normal Disc, Normal Disc, Normal Disc, skip a turn, spawn a Big Disc, and skip the two final two turns. The first time the game goes through the letters it goes rapidly, filling up the room, after which it loops through again at a slower pace, creating a reasonable increase in difficulty over time. Something like “n–n–n–n–n–n–n–n” would start out with more discs, but increase in difficulty slower eventually than a simple “nnnn”.

This simple format allowed us to easily design all 25 levels, pace them properly, and create some beauties like “b-cccc–s–“, “—-nnoofnn-“, and the final area, spawning all disk types “nbfcgltsaoh”: Normal, Big, Fire, Curve, Ghost, Laser, Tiny, Split, Attractor, Ooze, and Homing! As an added bonus the handcrafted levels meant that different disc-types could be introduced one by one spread over multiple rooms. A more rewarding way to advance through the game, allowing us to ease players into some of the more devious designs.

Simple mechanics with a lot of variety

It was great to have such a simple solution to a simple game. Designing a level is just a matter of a few seconds of typing, followed by testing and tweaking. The end result is a less boring game with a lot more content, really highlighting how simple mechanics can create a lot of variety!
As an added bonus, here are all 25 DISC ROOM levels:
“nnn-b—”, “f-bnn–“, “fffn—”, “bbbbbbbbb”, “nnnnnnnnb”, cccccccb”, “fcncnc”, “—sss—-“, “b-cccc—s–“, “fccccccccc”, “otottt”, “—-nnoofnn-“, “nnb-n-ll-“, “—olnl-“, “llloccc”, “h—h—h–h–h–“, “fhb-b”, “g-g-g-g-g-g-“, “cccgccc”, “hhhg”, “nnbnnann”, “ccoh-“, “—s-s-s-s-ao-“, “ggglla–“, “nbfcgltsaoh”

  • Timo Radzik

    Thank you for the article. Now I have to figure out how to code that level generation with letters! :)