As I originally outlined in my proposal, for my Nature Of Code final I decided to create an implementation of Conway's game of life, and combine it with the classic computer game Tetris. The result was one that, while not terribly fun to play, actually does go a long way in demonstrating that the game of life is more complex than it appears, and despite its simple rules, offers of a large degree of randomness.
I started by trying to discern the basics of the game, and came to the conclusion that I would need to start with some pieces/organisms already on the board. The game of life tends towards decimating populations, so having no starting population lends itself to a quickly emptied (and boring) board. Moreover, given the game's natural tendencies, I decided that I would make the aim of the game to allow pieces to live, rather than to destroy them (as was true in the original tetris).
I took this implementation and coded a simple version that was in black and white and played out a generation of the game of life after each tetris piece was dropped. Once this was complete, I noticed a major problem: Despite my hopes for the contrary, there's little way to discern what will happen in the next round of the game.
To work my way around this, I next tried implementing a "future" system, where the game would calculate the results of your current piece placement ahead of time, and attempt to show them to you in a translucent clear projection on top of the current board. The problem with this is that, while interesting, it's still extremely difficult to tell whether you're creating or destroying pieces.
Continuing on my quest for at least some level of usability, I reached for one final implementation. This time I maintained the "future" board concept, but also colored the tiles more strategically. This time I made tiles that stayed alive black, tiles that died red, and tiles that were born green. In this way, it's easy to try and maximize green and minimize red as you place your piece.
Once the interface was intuitive, I added a scoring system based on how many organisms were alive after each turn, and played the game a bit. The unfortunate result is that it's not very fun. While tetris allows you to create strategies and begin to intuit moves, the game of life is simply too random to be able to do anything but try and pick correct placement on a turn by turn basis.
Despite this fact, I think there could still be room for using the game of life mechanism to make for a fun game implementation. Some cases that still seem to hold water did come to mind: a game where there was a desire to finish with a very specific number of organisms, a game where all the organisms needed to be eliminated in a certain number of turns, or basically any game where the strategy was less about time and movement, and more about specific placement.
In short, the game of life is too random of an algorithm to function desirably in a time and movement based game. I believe it would hold up far better under slower, ore strategic circumstances, and that tetris is certainly not.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment