Monday, March 7, 2011

Fairy rings

I recently read The Art of Game Design, by Jessie Schell, for which I should have a review up in the next few weeks.  I picked up the book to try and better understand game development at the highest conceptual level: while it's still a developing idea.  In the process, I became inspired to create a small game of my own.

While driving home from work on a rainy day, I noticed a fairy ring growing while I was waiting at a traffic signal.  The ring I saw was comprised of just a few mushrooms, but they can grow to be quite large.

One section of Schell's book talks about the importance of using your subconscious mind to think of cool and crazy ideas.  There are few things that let your subconscious mind wander like driving home in Houston traffic, and what's more crazy than a giant ring of mushrooms?  I started to think, if the mushrooms in a fairy ring grow from a single point, what if the other mushrooms in the ring could start rings of their own?  Would it just keep growing and growing in a fractal pattern?

I'm not a mycologist, but as the idea took off in my head, I could have cared less about the scientific reality of the situation.  I thought it sounded like an interesting idea for some kind of game.  I got home and immediately started jotting down ideas.  After iterating on different concepts for a few days, I had come up with some better developed notions of what gameplay could be like.  I tried not to think too deep about it, so I wouldn't latch onto an idea and have a difficult time changing my mind if something didn't work.  Here's the minimalist basics, from my notes:

  • mushrooms are growing in a forest
  • the ground starts bare; tap to plant a seed
  • seeds grow until they pop, and spread a ring of mushrooms, which can be popped themselves
  • mushrooms cannot be popped until fully grown
  • there are different mushroom types which have varying attributes
    • fast growth, small burst radius
    • moderate growth, moderate burst radius
    • slow growth, large burst radius
  • tapping on a mushroom selects it; tapping it again causes it to pop
  • mushrooms destroy everything inside their blast radius
  • quiet and relaxing
  • ambient noise: bugs, wind, rain, thunder
  • dark with high contrast colors: environment lit from glowing mushrooms, fireflies, stars, and distant lighting flashes
  • mushrooms glow in different colors, depending on their attribute types
  • mushrooms rings are not perfect circles and all attributes have a slight randomness
  • mushrooms have subtle anthropomorphic qualities so that casual punishment and reward can be incorporated
  • top down view
  • touch interface
  • pinch to zoom in/out
  • touch a mushroom centers and zooms

After reading that outline, you may have noticed something missing: goals and objectives. They're missing because I haven't figured out what they are. I honestly don't know what I could do with gameplay of this type that would be fun: a strategy game, where there's gameplay AI controlling "enemy" mushrooms?; a puzzle game, where you have to cover the ground with spores, similar to Qix?; an abstract game, where all you do is pop mushrooms and form random patterns in your "mushroom garden"? Since I'm not an experienced game designer, it's difficult for me to answer these questions before the gameplay has been implemented.

Some concept art I did in Photoshop for a glowing mushroom and fireflies.  I'm not an artist, so don't be too hard on me.
I think my favorite idea so far is to create a multiplayer game. Since mushrooms destroy everything inside their blast radius, I could potentially do something along the lines of Missile Command, where one player has to destroy the other player's mushrooms while growing their own mushrooms. Playing around with XNA networking services would be a lot of fun, and would be a great learning experience. If I pursue that course of action, I will, of course, be sure to share my trials.

With networked multiplay, one player could have cool-colored mushrooms, while the other could have warm-colored mushrooms.  In this image, the green mushroom on the left has been popped and is launching its spores.
I was able to get very basic gameplay developed in one quick iteration.  This is just a prototype, so the code was not test-driven.  I've discovered that when thinking creatively, I can move quickly and get more things accomplished without writing tests.  If I were to develop this fully, I would start with a clean slate and write my gameplay logic using TDD.

One of the most challenging aspects of designing a game like this, which is essentially a one-button game, is accomplishing what Schell refers to as "balancing." I've experienced the feeling of an unbalanced game during development, but I was unable to articulate or appreciate the problem. I imagine mobile designers deal with this in an attempt to keep their games as casual as possible. Since the player cannot (or does not want to) control the customization of the game as in a traditional PC game, it becomes important for the elements of gameplay (such as my mushroom attributes) to "feel" correct and behave as expected.

Sorry about the FRAPS watermark.  I'm cheap.

This is my first time developing with a touch interface.  I have an iPhone, so I've been using the Windows Phone emulator that ships with Visual Studio.  Because the performance of the emulator isn't optimal, I also have a Windows game project in tandem with the phone project.  My friend and colleague, Jacob Beaudoin, has a Windows Phone, for which he recently began developing games.  He will, undoubtedly, be doing some amazing stuff, so you should visit his website.

While writing this code, I found myself questioning a lot of my design decisions when attempting to decouple gameplay components.  For previous projects that I've worked on, this was never much of an issue.  After speaking with Jacob, I believe the next book I'm going to read is Game Engine Architecture.  The title sounds as inviting as a Junior High health textbook, but it's a topic I could definitely afford to learn more about.  I'd also like to try reimplementing this game in UDK, to get some experience with UnrealScript and the Unreal Editor.  All these objectives would dovetail together nicely.

Writing this prototype was fun, and it was good to feel inspired and excited after the tedium that my day job has become lately.  I will keep developing this only as long as it feels right.  I appreciate other people's opinions, so if you think this is lame or awesome, be sure to give me some feedback.

In the meantime, I'll see if I can incorporate additional...



  1. Harrah's Resort Southern California - MapYRO
    Harrah's Resort Southern California 공주 출장샵 (formerly Harrah's Rincon) is one of the largest, most spectacular entertainment, gaming, 경상북도 출장안마 dining, and shopping Zip Code: 10497Address: 777 Harrahs Rincon Way, 경산 출장마사지 92082Phone: 익산 출장마사지 (760) 751-3247 사천 출장안마

  2. How to Bet on your favorite casino table games - TrickToAction
    Play 스포츠 토토 확률 벳피스트 casino 아시안 부키 table games online. You can also play 토토 결과 casino table games online with online poker, roulette, 토토사이트 제작 벳피스트 blackjack, and 토토사이트 운영 샤오미 other table games for fun

  3. A person nonetheless can't buy a pound's worth of stamps in a slot machine and stroll away. They did not need more "palaces of tradition"—a euphemism for slot machine arcades. There is one factor might be|that could be|which could be} said in favour of the slot machine. It may stem inflation by slightly, if just for the motoring public and a few of the the} slot machine distributors. Immerse yourself in delicate comforts as you play your favorite video games. Think plush seating, non-public washrooms, water views, crystal chandeliers, a leisure lounge, and impeccable service crafted to your needs.

  4. However, you don’t wish to be taking part in} at 2 am and see 카지노 the game crash proper when you’re about to go all in. Thankfully, Café Casino presents five-star customer support 24 hours a day. You can reach them by phone or by email and anticipate a fast response.