Saturday, April 7, 2007

SpaceCute: First round of prototypes and new graphics

The initial round of SpaceCute prototypes are in and results are encouraging. Both basic movement and some initial combat was prototyped. Each one of these guys is a prototyping superstar. It is educational to see all their different interpretations of the starting concept. You can download their glorious efforts here:

New graphics

I've also provided a new set of graphics that include more 'cute' faces and one new ship (inspired by Vorlons.) You can mix and match hair and and accessories to get the look you desire. Download the latest set, complete with PNG and original .design files here:

Answering the big questions
You can think of prototyping as a pseudo-scientific process of experimentation. For each prototype, you are looking for the following:
  • What is the main question the prototype is seeking to answer? Often you'll think you have a good game mechanic, but you don't actually know until you try it. Postulate a question that you hope your prototype will answer. For example "I think using mini-golf game mechanics will make movement in a strategy game more enjoyable and interesting. Is movement fun?"
  • Did the prototype succeed? Test the prototype and answer your initial question! These should be simple Yes or No answers. One of the most common problems with design is that we come up with intricate theories and then fail to test them until the very end of production. Play test early and play test often.
  • Lessons learned: In reality, prototypes goes through dozens of iterations and the designer tests out many different ideas. These lesson help you understand what to keep and what to kill.
  • Opportunities: Were there any interesting opportunities that emerge that cause you to want to make more prototypes and test addition issues? Games mechanics are almost always complex systems that operate on the fuzzy boundary of our limited human ability to predict their behavior. If an unexpected behavior of your prototyped system delights you, it will likely delight players if wrapped in a proper set of feedback and rewards.
With this framework in mind, let's look at the prototypes. Our two big questions are "Is moving fun?" and "Is combat fun?"

Is moving fun?
I think the answer is yes. I spent far too much time flinging space craft around the board despite there being little reason. This is one of our lowest level game mechanics so it is important to get it right.

Moving lessons
  • Harold added sound to the movement. This increased the pleasure of flinging ships about quite nicely. Multi-channel feedback is good for increasing the impact of feedback.
  • Short pull distances that result in long throws were more enjoyable than long pull distances with short launches. It adds a bit of unexpectedness to the actions.
  • Dragging small amounts hides the cursor under the character. Making the ship semi-opaque fixes the problem. So does setting the 0 point past some initial distance from the center of the ship.
Based off the various prototypes, it feels like movement is pretty solid. There was one interesting variation suggested:
  • Pulling back vs. pulling forward. I hear that Bonder is working on a sample to try this out. I'm looking forward to seeing it. This also would solve the hidden cursor problem. You should watch out to see if there are problems interacting with walls.
Is combat fun?
In general, combat is only mildly fun. Ships bonk into one another and slug it out, but player choices don't seem all that interesting. Combat suffers from a typical problem that strikes almost all prototypes at some point:
  • Outcomes are highly predictable
  • Player choices are limited.
  • Riad's simple AI is quite vicious. It pursues you and whacks you at full force. It is a good stub for now. Harold implemented a variation where a random ship is chosen to move each turn. This avoids some of the dogged bash fests that occur when the AI select only the closest ship.
  • Mutually assured destruction isn't fun. When both tokens are hurt in a collision, the optimal strategy is to let the other guy bash himself against the planet. :-) In Ben's model, you don't take damage if you attack. This feels better.
  • Momentum transfer: Harold has also been playing a bit with the elasticity of collision so that when an attacker rams into a ship, you stop and the defender gets most of the momentum. This has promise for creating chain reactions.
  • Planning complex collisions is also hard. You can't see exactly where pieces are likely to collide. I may need to reworks the graphics so that this is more obvious. Ben implements a nice transparent circle that could highlight on those tokens within reach of the selected ship.
  • Folks are using 100% thrust most of the time: There is no reward for using subtly
The obvious step for most of the prototypes is to make combat enjoyable. Folks are building up some lovely engines that are capable of all the basics such as collision, movement and state changes. This is where the engine programmers get seperated from the game programmers since most of the upcoming work deals with very little technology and a whole lot of tweaking of game systems.

I chose the following opportunities for combat based of these two criteria:
  • Give the players interesting choices
  • Introduce surprising complexity into the outcomes.
Add a turn button: I perhaps simplified the initial design too much. It is worth prototyping up a turn button that allows you to move all or some of your units during your turn. Does the players strategic options increase dramatically?

Collisions need a little pizazz: Currently collisions don't let you know that something interesting happened. Having the unit flash red (and fade back to normal) or having particle spit out of the collision point could help. Mordraks particle effects or Ben's floating heart are great ideas that could be extended to the collision feedback. The sound effects help immensely. Is collision feedback delightful?

Every Extend style explosions:
Let's introduce a new type of ship that explodes when it comes to a complete stop. The explosion expands in a radius and damages ships caught within. If the bomb ship hits another ship, the explosion will fizzle. If the bomb ship hits a planet or wall, the explosion does not fizzle. Are skilled placement of shots, including bank shots, useful?

For the explosion, you can use a simple expanding circle with particle effect. Be sure to make the ships give the user feedback when they are hit. Woot, unit type number 2.

Resources and Powerups: One common technique to make a mechanic interesting is to tie mastery to the acquisition of a tool or resource. Imagine that ships spit out stars when smacked. These stars are sucked up by close by attacker ships and act as resources. Get enough resources and one of your ships randomly gets a powerup for a turn or two. Simple powerups include "super mass" that sends enemy ships (and planets!) flying, or perhaps "Astroglide" that lets you zoom extra long distances.

Now we have an interesting opportunity for rewarding combos. When players do multiple points of damage, they get star multipliers. When a ship finally loses all its hearts, it bursts into an explosion of stars. That means more powerups and more interesting choices.

Other notes
  • Folks feel violent combat doesn't quite fit the SpaceCute setting. I was imagining combat in the Mario sense of the word. Stars fly out, not blood. There are some conversation and questing meta-mechanics I'd like to see, but those are or much, much later.
  • The use of a text file for storing all variables was of great use in rapidly testing different configurations. The XML based file used by Riad was particularly promising since it allowed quick and rapid iteration of map design as well. This allowed me to test a 10 enemy scenario with relative ease.
I'm sure you have other ingenious ideas. Go for it! Post them in these threads. If you haven't submitted your prototype yet, no worries. Steal the best ideas from the other guys and try your own twist on the concept. There are tons of options that haven't been tried. And above all, play the is a great opportunity to give some real critiques of games in progress.

As a side note, SpaceCute didn't exist as a search term a little while ago. Now Google has 308 references. I figure I'll just keep making graphics and pimping your prototypes as they come in. My hope is that overtime SpaceCute is only going to get bigger and more pervasive. (Isn't this is a lot of fun? :-)

take care
"Space is cute."

PS: The original challenge


  1. I started off with Mordrak's version and received a Direct Audio initialization error when running it, then an 'unexpected error' after that so it wouldn't load.

    I also tried Harold's prototype which gave a generic runtime error when I attempted to launch a ship.

    Hopefully I'll have better luck should these prototypes be taken any further...

  2. I wanna know more about Harold's. Using Ruby with DirectX and Audiere seems really neat. How are you doing it? Could it be made cross-platform via OpenGL? Could I get working with Java (my preferred language) somehow?

    I've spent the better part of today staring at the code, (as well as Little Coder) trying to divine it's lower level workings...

  3. Hello! It's Hunter.

    I was super-busy last week, so I didn't finish my prototype until today. It doesn't use your graphics (because I'm crazy and don't like to use bitmaps in Flash; it looks like they were originally vector images, though -- can you share those?) and it doesn't have an AI, but it's lots of fun for two players.

    I haven't had a chance to look at anyone else's design yet.

    Anyway, here it is!

  4. Hi Jesse,

    The engine was originally coded straight to the metal in C++. Naturally, there is a lot of lossage involved with trying to code game logic and things in C++ (you need a compiler, static typing is for losers, etc)... So I decided to include an extension language interpreter directly into the engine. The first few versions used Lua. Lua is an interesting language (and fast!) but in the end I prefer to write Ruby code.

    So there is a fair amount of quasi-hairy C++ code to expose the various engine functionality to Ruby. But, now that the hard stuff is done, we can just party all over it in Ruby without having to write any C++. Yay!

    It definitely could be switched to use OpenGL and be made to run on Max/Linux/etc, but I chose to use DirectX in anticipation of porting it to the Xbox360. (which is underway)

    Feel free to mail me if you have more questions. My email is all over the LittleCoder site.

  5. uh, yeah, ignore the part of my comment where I ask you to include the vector files you've already included; although if you could turn them into something more common like eps or svg files, that would be awfully kind of you. :)

    this post was brought to you by the verification word "exomuhzs", which is a gift-giving holiday celebrated by insect-like space aliens.

  6. Lots of cool prototypes there, the collision sounds especially help. Harold def wins on the polish count though. I'd also like to see the ships hover up and down like the planet in Mordrak's.

    Still not too much fun at the moment though since you just whack each other back and forth without many interesting choices.

    There's either got to be a huge variety of ways to attack the other players (like worms) or the goal needs to be something other than destroying your opponents (collecting stars, etc).

    It would probably also help to add individual ship turns or cooldowns between movements.

    Adding in some drift, a turn timer, and completely randomized starting positions (not everyone on one side) would also help to add some tension. Realtime action with cooldowns would also be an interesting thing to try.

    The gameplay just really reminds me of worms right now, but it has the problem of the player having to close in to attack, a really small playfield, and not enough obstacles between players.

  7. Hunty,

    Sweet game! I played a round with my officemate and it is actually quite well balanced. I love the resource model and the main bases. You should turn this into a full game! Give it a bit o' AI and you've got a hit on your hands. :-)

    Re Vector Graphics: You can copy and paste into Illustrator much of the time if you use Expression Design. It is worth a shot of you need to get the graphics out in vector format. You can also export PDF.

    take care

  8. PS: Hunty, it looks like your site is down. (10:12 pm PST 4/9/07)

  9. DanC wrote: Collisions need a little pizazz

    What about making the ships out of flubber, such that collisions are "active", in that it's like a firecracker goes off between the ships whenever they collide? This could make for really interesting chain reactions. Firing into a cluster of enemy ships could result very quickly in a sort of "Dr. Device" way of ensuring that you don't want to cluster your resources too closely.

    For an example of this in a game, check out Rag Doll Masters, where they use that concept to spice up a stick-figure fighting game into something that is a lot of fun.

    On another note, I also like the idea that the shorter you pull, the farther you go. This has the nice effect that putting more power into your shots makes them less accurate, but for more accuracy, you use less power.

    If you didn't want to use that model, another way of motivating players to choose to use more finesse is to add a fuel factor, such that if they are always flinging around at full tilt, they will quickly run out of juice.

  10. By far the cutest combat videogame I have ever played is the venerable Hacha Mecha Fighter, a crazy trippy side scrolling fighter where a seal (I think) fires various kinds of seafood at other animals and collects stars and fruits as bonuses. It was an amazing amazing user experience, like going to Vegas for one thin quarter.

  11. I added Hunty's lovely design to the list of links in the article. If anyone else comes in, I'll post those as well. :-)

    take care

  12. I "cuted up" my version with graphics inspired by (and in some cases traced from) your graphics. Check it out again if you haven't seen the new graphics.

    To quote the Pet Shop Boys, "I've got the brains, you've got the looks, let's make lots of money."

    ...and by "brains" I mean "programming and design skills", and by looks I mean "art and design skills", and by "lots of money" I mean "a version of this for the DS, Wii, or XBLA".

    This post was brought to you by the captcha word "elpcs", which means "games similar to the PC port of the videogame adaptation of the movie 'El Cid'".

  13. Hunty's resource game looks neat, but haven't had a chance to try it out with someone yrt. Playing against myself is kind of weird.

    I can't take credit for the music, just bummed it off of Flashkit. I just got caught up to where I was (mostly), looks like more than two ships works now. We'll see what I can get done by Sunday.

  14. Danc, your designs are adorable!! Keep it up...


    PS> I'm in Utah this week.

  15. I've updated my version of SpaceCute so that it's now playable via IM.

    have fun!

    today's captcha word is "etmvylc", a synthetic fabric that slowly digests its wearer.

  16. Hello Daniel,

    I'm following the SpaceCute: Prototyping challenge topics with great interest and wondered, if one is allowed to use the graphics also for other applications, of course crediting you. If yes, are there any constrains or is a particular license applied?


  17. I was thinking about the game mechanic and thought about some other alternative styles. For instance what if the game was more like dodgeball where you sent little hearts out to opponents players. If an opponent was hit enough times, instead of being destroyed, they switched sides and played for the other team.

    Or perhaps having an othello style board game where if you surrounded your opponents players they converted. (Perhaps even GO style rules)

    I'm also curious if the graphics can be used for other games/uses if attribution is used.

    My captcha is lbsfx -- super heavy weight special effects

  18. Ultimately the 'fun' in a turn based game where the player has multiple pieces comes from what the pieces can do.

    One way is to give each piece the player owns different abilities. These could be ways it moves, how much damage it does, etc... Easy to set that up if you're using an configuration file of some sort.

    Another is to make the positioning of the pieces affect the damage done. For example, getting hit from behind does more damage.

  19. I've made a prototype that uses the SpaceCute graphics, but it doesn't use the original design... at all.


    Check out and let me know what you think. Total hours spent on it is about 13 so far.

  20. Forgot to mention the keys and stuff;

    Movement: Arrow Keys
    Fire Star: Space
    Activate Shield: Control