Plan for James W. Hofmann
by abc · 12/12/2005 (11:08 am) · 0 comments
I did an entry for the Ludum Dare 48 hour gamedev competition :) It was fun and I was unusually productive for the duration, even when factoring my long breaks.
http://ludumdare.com/wiki/index.cgi/JamesHofmannFinal
This is the final version.
http://ludumdare.com/wiki/index.cgi/JamesHofmann
This is the during-development log.
Now, the postmortem.
My first thought is that I think I really hit on a good puzzle game idea with this one; had there been more time to flesh it out it would probably have crack-like addictive properties. I had an overnight period to think about the concept(Friday evening before I went to bed, I found out the theme - "growth") and start turning it into a design. My thought process was something like this:
1. I want something growth-related, and I need to keep it simple because I wanted to use C++/SDL and I've never tried using that development environment before. A puzzle game seemed likely since the algorithms and data structures needed are usually fairly simple.
2. I always wanted a version of Tetris where you could "build to infinity." That just seems like a really cool concept to me. When part 1 came along the idea fit pretty well. (this was the lucky break for me) I considered a few other angles for tower-building, but the Tetris-like one seemed the best. That reduced the design challenge to a matter of retrofitting some interesting new gameplay onto the falling block concept.
3. I turned to the real world to come up with possibilities for gameplay. The main one was "how could I make the player build in a fashion that is reminiscent of the real world?" I considered how in skyscrapers, the girders are stacked first in a set of verticals and then horizontals, and how they are first put into place by crane and then welded by the workers. These ideas cumulated in the main gameplay element, the nail and combo-building. In the final game, you try to arrange the girders in a way that favors horizontal direction, because when the nail piece appears and hits a girder it spreads your combo first horizontally and then downwards - the girder arrangement becomes important because it will always follow their contours.
4. Once I had this down, the remaining problem - which I couldn't quite solve - was how to maintain some challenge and tension, since you don't lose through piece placement. I settled on a points-target/time-limit scheme to encourage the player to build both quickly *and* effectively. However, testing reveals that most rounds are finished in one fell swoop with a screen-filling combo, and increasing speed or efficiency becomes very difficult after a certain point; I can consistently reach round 7 and then die there.
Overall, the design was good, and simple, as I wanted - very important for LD48. Thinking back on it I believe the challenge issue could be resolved by replacing the fixed 2-minute time limit with a more flexible one that adds time as you gain points. With that and more tweaking on the piece selection(including corner blocks would change the outcome of most combos significantly) it would probably be a fine game.
The implementation was crufty but went surprisingly well. I could get away with really simplistic ways of doing things(almost all the data was stored in C++ namespaces, or just plain global variables). I had a crash bug that I never figured out, but oh well. Given the time I had the production values were OK, but not quite as good as some other entries. All that remains is to vote and see how I do :)
http://ludumdare.com/wiki/index.cgi/JamesHofmannFinal
This is the final version.
http://ludumdare.com/wiki/index.cgi/JamesHofmann
This is the during-development log.
Now, the postmortem.
My first thought is that I think I really hit on a good puzzle game idea with this one; had there been more time to flesh it out it would probably have crack-like addictive properties. I had an overnight period to think about the concept(Friday evening before I went to bed, I found out the theme - "growth") and start turning it into a design. My thought process was something like this:
1. I want something growth-related, and I need to keep it simple because I wanted to use C++/SDL and I've never tried using that development environment before. A puzzle game seemed likely since the algorithms and data structures needed are usually fairly simple.
2. I always wanted a version of Tetris where you could "build to infinity." That just seems like a really cool concept to me. When part 1 came along the idea fit pretty well. (this was the lucky break for me) I considered a few other angles for tower-building, but the Tetris-like one seemed the best. That reduced the design challenge to a matter of retrofitting some interesting new gameplay onto the falling block concept.
3. I turned to the real world to come up with possibilities for gameplay. The main one was "how could I make the player build in a fashion that is reminiscent of the real world?" I considered how in skyscrapers, the girders are stacked first in a set of verticals and then horizontals, and how they are first put into place by crane and then welded by the workers. These ideas cumulated in the main gameplay element, the nail and combo-building. In the final game, you try to arrange the girders in a way that favors horizontal direction, because when the nail piece appears and hits a girder it spreads your combo first horizontally and then downwards - the girder arrangement becomes important because it will always follow their contours.
4. Once I had this down, the remaining problem - which I couldn't quite solve - was how to maintain some challenge and tension, since you don't lose through piece placement. I settled on a points-target/time-limit scheme to encourage the player to build both quickly *and* effectively. However, testing reveals that most rounds are finished in one fell swoop with a screen-filling combo, and increasing speed or efficiency becomes very difficult after a certain point; I can consistently reach round 7 and then die there.
Overall, the design was good, and simple, as I wanted - very important for LD48. Thinking back on it I believe the challenge issue could be resolved by replacing the fixed 2-minute time limit with a more flexible one that adds time as you gain points. With that and more tweaking on the piece selection(including corner blocks would change the outcome of most combos significantly) it would probably be a fine game.
The implementation was crufty but went surprisingly well. I could get away with really simplistic ways of doing things(almost all the data was stored in C++ namespaces, or just plain global variables). I had a crash bug that I never figured out, but oh well. Given the time I had the production values were OK, but not quite as good as some other entries. All that remains is to vote and see how I do :)
About the author
