Saturday, June 28, 2008

Shade: A game prototyping challenge


As a redhead, there's a little game that I play every day in summertime called "Stay in the Shade". The rules are simple: make it to my destination as quickly as possible while avoiding all possible sunlight. This involves hopping from shade patch to shade patch. The cost of failure is the dread Irish Tan. These bizarre antics were inspiration for a game design called Shade.

As with any of the designs you find on this site, I heartily encourage you to prototype it and use it as a learning project. I know that there is a group of you itching to try out the latest 3D engines with sex-a-licious real-time shadows. This is your chance to finally use the technology in a way that produces meaningful game play.

I'll give out the much coveted Bronze, Silver, and Gold Lost Garden badges to anyone who creates a worthy prototype.




Basic gameplay
You play the part of a rugged mushroom rancher who must collect adorable sentient mushrooms living in the shade. All you need to do is run up to a planted mushroom and touch it. It will pop out of the ground and start following you around. Lead it back to the start location and you'll be awarded multiple point based off its size.

Unfortunately, it is a scorchingly hot day. You can meander about the landscape of giant grassy blocks with impunity due to your meglo-awesome wide brimmed hat, but the mushrooms wilt quickly in sunlight. To lead them back successfully, you'll need to keep to the shadows and plot the optimal path home.


Basic Elements
  • Player: The player can move about on a 2D plane using the arrow keys or a joystick.
  • Blocks: Strewn about the landscape are blocks that cast shadows.
  • Planted mushrooms: In the shadows of the blocks, planted mushrooms will slowly spawn over time. If left alone they will slowly grow in size.
  • Mushrooms: If the player runs into a Planted Mushroom, it will pop out of the ground and start following the player's motions exactly. If multiple mushrooms are collected, they will follow in a line behind the player. A mushroom can last in direct sunlight about a second before they expire. This amount of time is cumulative and is shown by slowly shrinking the mushroom as it is exposed to more sunlight.
  • Homebase: This is a spot on the ground that you need to lead the mushrooms back to in order for them to be counted.
  • Mushroom score: In the upper right hand corner of the screen is the HUD. The most important element is the Mushroom score that shows you how many mushrooms you've collected so far today.
  • Day timer: The day slowly progresses from morning to evening over 15 minutes. The shadows change position as the day progresses.
Winning the game
The game is over at the end of the day. Total mushrooms collected is entered into a highscore table.

Technology

We've had lovely real time shadows for quite some time, but very few designs take advantage of the technology. Luckily there are an immense number of cheap 3D engines that can pump out real-time shadows. Some options:
Not so long ago, this tech was the exclusive domain of techsperts like id and Epic. But now there are no excuses. And the very clever folks will figure that you can make this game in a 2D engine with a little finagling.

Art

Since this design is likely a 3D game, I'm not providing art assets. I recommend that you use cubes and other primitives for the various elements in the scene. They are inexpensive, highly effective and can always be replaced at a later point with more advanced models once you've proven out the gameplay.

With this type of game, a good amount of pleasure will come from the motion of the mushrooms following the player and the movement of the shadows over time. Slick graphics can enhance this, but they aren't necessary to find the fun. Again, no excuses.

Advanced gameplay
Once the basic gameplay is in place, there are immense opportunities for more interesting variations.
  • Movable blocks: Blocks that you can push around allow you to create optimal paths for harvesting mushrooms.
  • Muncher: Once a planted mushroom grows to a certain size and it is hit by the sun, it turns into an AI driven creature called a muncher. Munchers find a nearby green block (also known as a bush) and start munching on it. This reduces the size of the block and therefore the amount of shade it provides. Munchers can be stunned and killed by running into them repeatedly.
  • Bush seed: A dead muncher turns into a Bush seed. A bush seed is an object that can be collected by running over it with the character. If you press a button, the bush seed is planted on that location and begins to grow.
  • Multiple days in a row: What happens to the landscape if you let the world run for multiple days? With the inclusion of bushes and munchers, we have a self balancing ecosystem. As you plant more bushes, there is a greater chance that mushrooms will turn into munchers, which in turn reduce the bushes. Can you turn a simple landscape into a mushroom plantation?
Balancing
This is the sort of game that lives or dies based on balancing all the various elements. There are a number of variables that you'll need to mess about with
  • Size of the blocks
  • Number of blocks and shadow area
  • Spawning rate of mushrooms
  • Size of mushrooms
  • Amount of sunlight to kill a mushroom.
  • Speed of the character
  • Size of the map.
  • Size of the viewport onto the map.
I don't have the answers. You'll get the answers by iterating on the basic design dozens, if not hundreds of times. Keep me updated and I'm happy to provide feedback on works in progress.

The Lost Garden Awards
Once again I'm giving out the always desirable Lost Garden badges for any prototypes that result.

  • Bronze Medal: You built an interesting software toy. If you make an attempt at a design and it is interesting to futz about with, you get the Bronze Medal. Most people never get a Bronze medal due to the simple fact that they prefer to sit around and think rather than make something. Simply by doing (instead of not doing), you join an elite club.
  • Silver Medal: You found the fun. You've iterated on your design and have identified a few key elements that make the game enjoyable. There is at least 5 minutes of interesting play. It likely isn't polished and some of the higher order reward loops are broken, but the core is there. If past challenges are any indication, I'll give out only a handful of Silver Medals per challenge.
  • Gold Medal: You made the fun repeatable. The game that you've built is entertaining enough that I'm willing to play it for 15 to 20 minutes. This is a hard level to reach and it is only populated by the most elite cadre of weekend warriors. An entire production team could be seeded by your efforts. To reach this level, you've made some critical design steps beyond the initial concept and built unique and sustainable gameplay based off dozens of game play iterations. To this day, no one has won a Gold Medal. You could be the first.

You need to post a public, playable version in order to be eligible. I'll issue the rewards about one month after the initial challenge is posted. If something comes in after the original deadline has passed, I'll add it retroactively to the award post. If you win a Bronze or Silver, you can still come back later and make an attempt at the Gold. Anyone who gets a Gold medal is an automatic rock star in my book.

What do you get if you win? First off, you get the right to post a snazzy LostGarden medal on your website. Most importantly, you get that warm fuzzy feeling in your tippy-tip toes that stems from a job well done.

Conclusion
Shade is an interesting game design to me for the following reasons
  • Exploration-based play: The joy is in exploring the ever changing landscape and finding mushrooms and interesting paths back home. It is more strategic than action oriented.
  • Simple controls: All you need to play are directional controls and one button. It should be pretty easy to pickup.
  • Non-violent: In general there is very little combat. I like this. I can imagine the title having a very meditative feel.
  • Uses real-time shadows for some unique gameplay. Real-time shadows have been used for sneaking games, but little else. Surely it is time to expand the number of games that use this fascinating technology.
Enjoy! If anyone makes something and puts it online, I'm happy to discuss it on the website in a follow up post.

take care
Danc.

Past challenges
Mockup


39 comments:

  1. Yhis is a great challenge! I wish I had time to prototype a game.
    It reminds me of a German board game named Waldschattenspiel. It's a cooperative game in which the players are dwarves hiding in the shadows of trees, trying to avoid the light of a candle that wanders about the board.
    http://boardgamegeek.com/game/1070

    ReplyDelete
  2. Looks like a great idea. I'm still working on the cute-peas challenge (http://code.google.com/p/cutepeas shameless plug)

    I look forward to seeing how people go with this one though.

    ReplyDelete
  3. Very impressive!

    I have a time and desire to do smth. like that... but it would be more interesting if it is possible to get profit from this challenge. (for example through selling of game)

    How do you think?

    Regards,
    Andrey.

    ReplyDelete
  4. @Mundanemaps: Ooh, Waldschattenspiel! Wonderful idea. Ever notice how games take on the most generic trappings of their creator's culture as their dominant setting? American games are about killing evil things with big beefy marines, Japanese games sport cute supernatural/magical spirits. German (and Scandinavian) games have gnomes. For some reason that is simply awesome to me.

    @travis: Go Travis! It is coming right along.

    @Andrey: Heck yeah! If you make a game that people are willing to pay cash for then you've managed to capture the real 'gold' award. :-)

    take care
    Danc.

    ReplyDelete
  5. Durn it Danc, I'm *trying* to focus on a XNA community game at the moment but this one might be impossible to resist!

    I wonder if you could include night-time into this game -- maybe have the shadows become dangerous to the shrooms. Maybe due to some grue or Vashta Nerada ("Hey, who turned out the lights?") -- sorry some obligatory Dr. Who geekiness.

    ReplyDelete
  6. In January 2006 through March 2006 I was in an intro game design class at the University of California, Santa Cruz and developed a game very similar to this game concept.

    My team called it V.I.P. - Very Important Picnic. In the game you play an ant on a picnic table that must hide in the shadows in order to get across the table to the food.

    There are two stages and in the first one you play a single ant. In the second level you play the same ant but must lead five other ants to the food at the same time.

    You can see a picture of my team presenting our game to the class here. Just click all the way to the end of the slideshow, we're in the last photo.

    We used Game Maker 6 or 7 to create it and it took us one day so it's pretty basic. Here's one link to the actual game if you want to try it out and another link for the page of games that our entire class made.

    V.I.P.

    Final Game Projects

    Update: Sorry but all the games are locked or something. If you would like a copy just send me an email at jrimando@gmail.com and I will gladly send you it.

    ReplyDelete
  7. Absolutely love the idea. If only I had the skill -_-

    ReplyDelete
  8. I'll have to give this a go when I have time

    ReplyDelete
  9. How many time do we have?

    I want to make something, but i cannot see the deadline.

    ReplyDelete
  10. Could you please upload a zip file with the GUI of the mockup (psd's or png's)?

    I like it and im planning on use it for the prototype.

    Thanks.

    ReplyDelete
  11. Interesting idea! I might have a crack at doing this in 2d (with a variation on this method: http://www.gamedev.net/reference/articles/article2032.asp ), is there any chance of getting some 2d assets to use? Some basic sprites for the main character and mushrooms would be greatly appreciated.

    ReplyDelete
  12. Nice design. I'll try to make something.

    I've started a blog to track my entry:
    http://shadebase.wordpress.com/

    ReplyDelete
  13. Ok, I totally failed to finish my last attempt at pea ninjas...

    Anyway. This one seems to be easier... Here's my progress with some screenshots and a playable (well, almost unplayable) build: http://aras-p.info/projShaduShrooms.html

    ReplyDelete
  14. Great challenge!

    I did think of one real-world game that plays with *exactly* this dynamic: Splinter Cell. Basically the whole goal of Splinter Cell is to hop from shadow to shadow and not be seen.

    ReplyDelete
  15. Yaarrrggghhhh...

    I bet you lay awake at night thinking about what kind of technology my engine doesn't have. And then, when you wake up in the morning you post these challenges.

    I'm honored, but right now I'm too short on time to even really give this one a go.

    That's a lie, I dug into it for about 2 hours tonight, but it was total lossage.

    I get the point though, arbitrary drawing is cool.

    I'll be back!

    -Harold

    ReplyDelete
  16. And the challenge is on!

    Go Aras...you've captured the first Bronze award. Thanks for sharing your early prototype. This is already showing some very interesting dynamics that I wasn't expecting. You can push this to a silver with some more effort.

    Some thoughts for future experimentation:

    - Mushrooms creating shadows which in turn grow more mushrooms. When you combine this with slowly moving shadows, I think you could come up with some very entertaining patterns.

    - I suspect that taking mushrooms to the home base will feel better if they automatically travel into the home base as long as you just touch it once. It's a subtle thing, but it give the final collection more of an oomph instead it being spread out depending on how you move.

    - The pace seems a bit fast.
    This is likely due to several things. The screen is relatively small. Movement is quick. Play with larger landscapes, slower motion (or growth.

    - Interaction with the shadows is somewhat simplistic at the moment. 'Tree-like' structures of different heights that are small at the base and large at the top will create a more complex shadow-scape for the user to navigate.

    Things that are proving to work well
    - The following mechanic is working nicely. (especially once you fix your bug) It's like Snake!
    - Mushrooms growing in the shade. Evocative.
    - Using size to show the worth of a mushroom. It might be interesting to try a punctuated loss of size instead of gradually losing size. For example, if you say in the sun .5 seconds, you lose 2 points of size, but if you get back in the shade at .4 seconds, you lose nothing. That may add a bit more tension.
    - The basic collecting mechanism seems to work okay.

    Can't wait to see future prototypes!

    take care
    Danc.

    ReplyDelete
  17. I notice a design flaw, what will happen when midday comes? there will be no shadows at all!!!

    Also I dont find fun the concept, maybe the prototypes will show im wrong. I hope so.

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. For those with Java skills that want to give it a try, there's JMonkeyEngine which provides for good learning curve (for programmers) and off-the-shelf cheap real-time shadows.

    Would not post this, but you mentioned XNA danc, which is (except for the XBox thing) less rich in features...:)

    Cheers

    ReplyDelete
  20. Someone said:
    > I notice a design flaw, what
    > will happen when midday comes?
    > there will be no shadows at all!!!

    Do you live on the equator? Consider that now at the south pole at midday there is no sun at all :)))

    Thank you Danc for your usual great idea. I'll try to develop something. Finally, this time I can use my 3D engine http://apocalyx.sourceforge.net and I hope to reach a higher level than in my previous attemps.

    ReplyDelete
  21. Hi Danc, can't you give us a couple of textures to use in tools like Blender or our 3D tool of choice? You're art style is so fresh and pastel it's hard to duplicate!

    ReplyDelete
  22. Updated my prototype at aras-p.info/projShaduShrooms.html: level is more complex, mushrooms automatically go to base when you touch it, reduced speed a bit, camera slightly further away.

    Still haven't tweaked the gameplay. The speed does not feel right; I think next up is making mushroom shrinking much faster (right now the game is too easy).

    Further plan:
    - Tweak speeds (movement, mushroom growth/shrinking).
    - Don't pile up mushrooms at end of line as they're picked up; instead a mushrooms "waits" until end of line comes to it.
    - Day cycle of shadows.
    - More complex level, and make level buildings be slightly transparent when player is behind/beneath them.
    - Tweak it, tweak it, tweak it!
    - Some of more advanced game elements.

    ReplyDelete
  23. Hey Folks,

    I'm a browser based game developer, so I did some work in Javascript:

    Shrooms, the game!
    http://battleforcesonline.com/shrooms.php

    I definitely did not follow all the rules, but I found it interesting to work through. I'm not sure how much further I'm going to take it. I will clean up the graphics though.

    Sorry, no "shadow" engine for javascript available *grin*



    I'll clean it up and make a blog entry about the code later.

    mobeamer

    ReplyDelete
  24. Sometimes a fella just can't sleep while something is messy.

    I cleaned it up a bit. Total time spent 8 hrs.

    ReplyDelete
  25. Hello! I'm working on shade too.
    Got this so far:
    http://img110.imageshack.us/img110/7751/img0001ma5.jpg
    http://img110.imageshack.us/img110/2492/img0003hf0.jpg

    I'm using my 2D engine built on c# and opengl.
    See you ;)

    ReplyDelete
  26. If there really is a need for textures, you can find some resources in this list of free game related stuff.

    ReplyDelete
  27. Running tally of public participants for this lovely July 4th. 3 weeks left before I tally the results.

    - Lubos
    - mobeamer
    - aras

    They are all looking interesting and are showing some of the early dynamics of the system.

    Some other balancing ideas

    Limiting the number of mushrooms you can carry
    Gathering a long string of mushrooms often means that tail end of the chain is hard to control. This leads to a bit of panic and the urge to rush to the exit as soon as possible.

    What if instead you could only pick up one mushroom at a time? As you advanced there could be powerups that allow you to pick up more. However, learning to manage one mushroom is good experience mastering the skill of walking in shadows.

    The joy of finding the big mushroom
    Right now all mushrooms are about equal and are easily spotted. There are no scarce resources to acquire.

    If you limited how many mushrooms you could carry and increased the size of the maps so that you couldn't see all the mushrooms at once, it becomes more important to find the one big mushroom and then carefully safeguard it.

    You could augment this by having some rare mushrooms grow faster than others and have mushrooms be generally much rarer. Scarcity and variation are your friends for generating value.

    take care
    Danc.

    ReplyDelete
  28. Finally I can show a few screenshots of my Shade implementation: I hope to release something playable before the end of the month.
    To see the shots of Mushroom's Ride visit the following links
    http://www.flickr.com/photos/apocalyx/2674249612/
    http://www.flickr.com/photos/apocalyx/2674249614/

    or the APOCALYX blog to follow further developments
    http://apocalyx.blogspot.com

    ReplyDelete
  29. Finally, I have published my entry: Mushroom's Ride. Download it from SourceForge (1.3 Mb)
    Move the fairy through the stone blocks to collect as many mushrooms as possible. This is only a demo, just to get the bronze award, in fact the gameplay is not complete. For example, the most important request of the design is not accomplished: the shadows does not affect the mushrooms' behavior.
    However the sources are included so users can easily modify and extend the demo at will. In fact, as usually happen in my demos, the script is written in a "*.lua" file, that one can modify with a simple text editor, while the data is included in a "*.dat" file, that is nothing else than a ZIP renamed.
    Many thanks to Danc for his great resources, in particular the "Circle" textures!
    Screenshot1
    Screenshot1
    APOCALYX 3D Engine Blog

    ReplyDelete
  30. Oops! Just a typo in the URL :( Here is my entry: Mushroom's Ride. Download it from SourceForge (1.3 Mb)

    ReplyDelete
  31. I had a chance to work on this a bit; screenshots and a download are here:
    http://www.thewasabiproject.com/shade-and-shrooms/

    I've gone 2D (or maybe "failed to go 3D", I don't know exactly), and used the PlanetCute graphics.

    There's plenty still to do, but there's something playable now and I'm always glad for anybody's feedback!

    (Thanks Danc, as always, for the great ideas and cripplingly cute graphics!)

    ReplyDelete
  32. Thanks for posting these. I keep meaning to start on a side project but wind up not following through. These challenges have been helpful in getting me to actually sit down and write code. So far I've started on this and Play With Your Peas. You can download the installers from the links below. Just unzip them and run setup.exe. I'm currently working on a small project for my wife for work; I'll start on SpaceCute or whatever new challenge you come up with as soon as that's done.

    The Shade prototype doesn't actually do anything with shadows, but I think I found some of the fun in running around collecting mushrooms and trying to avoid/whomp evil red mushrooms. WASD or arrows to control your little dude. Touch mushrooms and lead them back to the basket for points. More points for big mushrooms. Red mushrooms eventually get up and start eating your good mushrooms. Run over the red ones to kill them.

    Play With Your Peas

    Shade

    ReplyDelete
  33. Unfortunately I'm busy with two other projects at the moment, but this is an ingenious game design, so I'm planning on giving this a go when I've got time.

    I love seeing all the work people are doing already on it.

    ReplyDelete
  34. Hey, whole July already passed... I wonder why the time goes so fast, and why I have done pretty much nothing on the game prototype... :(

    Anyway, posted a small update here: aras-p.info/projShaduShrooms.html. Will hopefully work on it more in next few days.

    ReplyDelete
  35. I've packaged up a second version of my Shade implementation -- this one adds some sound effects (among other things), which I always think count for more than most people give them credit for.

    Download link is here:
    http://www.thewasabiproject.com/shade-and-shrooms/

    ReplyDelete
  36. I would like to ask two questions here:

    1 - Is it not too late to join? I have just found it and even though the deadline is already far behind, it could be interesting to dabble in this project a little. If I send some working example, will you spare a second or two to have a look at it?

    2 - What if someone uses your idea to build a commercial indie game? I am not thinking about myself (don't have time nor skills), but you are giving away a pretty cool idea here.

    Cheers,

    Barts

    ReplyDelete
  37. For anyone watching this thread, the Shade awards are now up for this challenge. Good work everyone!

    http://lostgarden.com/2008/08/shade-prototyping-challenge-results.html

    take care
    Danc.

    ReplyDelete
  38. Hello there! This week I participated on a Flash Lite 2.0 game dev course, and by the end of it my partner and I have implemented a shade-inpired prototype! We changed the theme and platform (went for 2D) but the basic mechanics are there. Just click on the image on this blog post:

    http://maracatustudios.wordpress.com/2009/02/20/prototipo-flower-picker/

    :-)

    ReplyDelete
  39. Corrected link to ShadeMockup.ai: http://www.lostgarden.com/ShadeMockup.ai

    ReplyDelete