Archive for May, 2009

Rapid Prototyping Framework

Wednesday, May 27th, 2009

asteroidsWe’re starting to dip our toes in the waters of prototyping again. One of the first steps was trim down the framework we built for World of Goo and gear it towards a rapid prototyping workflow.  This means two things:

  1. Minimizing the amount of code required to set up a new game
  2. Providing all the basic facilities so as to avoid wasting time reinventing the wheel (2D rendering, sound, input, persistence layer, and resource management)

There’s nothing revolutionary about this framework,  but in the hope that it is useful to others, we decided to throw out the source code.   Download, unzip, and check out the readme.html file for setup instructions.  There is no documentation and we’re not going to support this code.  There are two example projects included, so check those out and hopefully everything will make sense :).

Also, we set up a new board on our forum in case people want to discuss the framework or share their creations.

the world (of goo) wasn’t built in a day — part 7 of 7

Monday, May 25th, 2009

world

the final installment in this series is world of goo at 8 months old (april 2, 2007).

it’s now almost 4 months after we thought we were 3 months away from finishing the game.  we continue to fool ourselves and think we’ve got another 3 months left to go.  the delusion doesn’t stop there.  as you can see in the “world menu” (which would eventually become the main menu) we thought we would have 7 chapters in the game.  riiiight.

probably the biggest change in this revision is the new physics engine.  we scrapped our home grown physics engine in favor of ODE, which gave us a lot more flexibility with the kind of puzzles we could construct.  it stung to toss that code away, but it was the right thing to do.  it allowed us to create a much wider variety of puzzles.

when you play this version, check out the first level (Going Up).  it has been set up as a kind of physics playground to test out different ways to have balls physically interacting with the environment.  you can get it here, and once again, if you played a previous build don’t forget to delete \HKEY_LOCALMACHINE\SOFTWARE\2dboy from your registry before running this version.

there’s also more experimentation around showing progress to the player and the end of level sequence.

and that’s about it! we’ll stop here because the rest of the game’s evolution was much slower.  it happened in baby steps with new levels, new ball types, lots more playtesting and gameplay tweaks,  and within 4 months would become the chapter 1 demo we submitted to the IGF and made available to people who pre-ordered the game.

we hope this made for interesting reading!

THE END

the world (of goo) wasn’t built in a day — part 6 of 7

Tuesday, May 12th, 2009

feb 9, 2007: world of goo is 6 months old.

by this time we’re already doing quite a bit of playtesting.  we’ve got 20 levels in the game but only 5 of them would eventually make it into the final version.  we’ve decided against having one world map and decide to group the levels into islands.

the art style is clearly coming together but doesn’t yet have the pop and polish of the final art.  playtesting was still showing that people who don’t normally play games aren’t getting the game quickly enough to stay engaged.  we first tried to address this by adding a tutorial system that you can see in this revision. it sucked.  it was complicated and cumbersome and we eventually dropped it when we got the connection logic to feel intuitive enough and it was replaced with a single signpost:

another really ugly thing in this version is how levels end.  we struggled with this quite a bit.  we wanted the levels to magically end at exactly the time that the user thinks they’re done.  first we tried ending them when the right number of balls was sucked into the pipe.  that didn’t work because people wanted to suck out more than just the bare minimum.  we thought we might want to end a level when no more balls could possibly get sucked into the pipe, but that wouldn’t work either both because it might take a really long time for the level to end while the player just sits there and because it was too difficult to have the game figure out when no more balls could get sucked.  in this version we tried to have a 5 second timer after the minimum requirement was met before the level ends, which would allow for suckage optimization (the beginnings of OCD!) but people were simply confused.  eventually we dropped the notion of something happening “magically” at the right time and made it a manual process (the continue handle).

you can download this build hereIMPORTANT NOTE: if you played the previous build you’ll need to delete some entries from your registry in order to run the game because the saved data format (which use to be stored in the registry) has changed.  run regedit and delete \HKEY_LOCALMACHINE\SOFTWARE\2dboy before running this version.