fydle - fydo and ldle
fydo and ldle, together again for the first time!
Awards
Scores
Ratings (show detail)
Overall: 3.1
Fun: 2.8
Production: 3.4
Innovation: 3.2
1% of respondents wished to disqualify the entry.
Respondents: 30
Files
File | Uploader | Date |
---|---|---|
celldoku-1.9.zip
— final
Celldoku |
ldle | 2008/04/05 21:52 |
celldoku-0.9.zip
Celldoku 0.9 |
ldle | 2008/04/02 05:18 |
logo_test1.jpg
Game Logo? This is the (hopefully) final main background too. |
fydo | 2008/03/31 04:09 |
fydleroid_wip.png
Level Editor Complete! With WIP background too! |
fydo | 2008/03/31 02:14 |
Diary Entries
Theory of Celldoku
Celldoku - An introduction to the theory and how it works in the game
Celldoku is based around a area of complex systems research called Cellular Automata. The interest in these systems is the emergent complex behavior that arises from the extremely simple rules that control it.
The system exists as a two-dimensional grid of cells. Each cell has two states, either alive or dead, on or off. The simple rules that control the system are applied to the whole one cell at a time until a new generation or configuration is created.
The rules are applied to each cell individually, and the result of the rule determines whether or not the cell of the same position in the new generation, is alive or dead. Each rule considers the state of the cell which being checked and the state of its eight neightbors. Based on what these values are the rule might determine this cell to either live or die in the new configuration.
Different rulesets cause different behavior to be displayed in the system. One of the most interesting and well known rulesets was created by John Conway in 1970. Despite doing all of his automations by hand on paper he aimed for a truely interesting ruleset and his hardwork resulted in the following three rules:
* A dead cell will birth if it has EXACTLY three neighbors (Nurture)
* A live cell will die if it has 4 or more neighbors (Overcrowding)
* A live cell will die if it has 2 or less neighbors (Starvation)
How does this work in Celldoku?
In Celldoku, each level exists as a broken progression of generations in a Cellular Automata. The player is given an initial configuration on the board and a target configuration is indicated on the board in red. It is up to the player to "fix" the configuration so that when submitted it results in the generation of the target.
In this screenshot the live cells in the player's board are indicated by the dark areas. The target configuration is indicated by redness on the empty cells. If a live cell is currently occupies the target its indicated by a green shading of the cell. A legend:
Clear : Dead cell
Black : Alive cell
Black-Green : Alive cell occupying target
Red : Target
Celldoku is based around a area of complex systems research called Cellular Automata. The interest in these systems is the emergent complex behavior that arises from the extremely simple rules that control it.
The system exists as a two-dimensional grid of cells. Each cell has two states, either alive or dead, on or off. The simple rules that control the system are applied to the whole one cell at a time until a new generation or configuration is created.
The rules are applied to each cell individually, and the result of the rule determines whether or not the cell of the same position in the new generation, is alive or dead. Each rule considers the state of the cell which being checked and the state of its eight neightbors. Based on what these values are the rule might determine this cell to either live or die in the new configuration.
Different rulesets cause different behavior to be displayed in the system. One of the most interesting and well known rulesets was created by John Conway in 1970. Despite doing all of his automations by hand on paper he aimed for a truely interesting ruleset and his hardwork resulted in the following three rules:
* A dead cell will birth if it has EXACTLY three neighbors (Nurture)
* A live cell will die if it has 4 or more neighbors (Overcrowding)
* A live cell will die if it has 2 or less neighbors (Starvation)
How does this work in Celldoku?
In Celldoku, each level exists as a broken progression of generations in a Cellular Automata. The player is given an initial configuration on the board and a target configuration is indicated on the board in red. It is up to the player to "fix" the configuration so that when submitted it results in the generation of the target.
In this screenshot the live cells in the player's board are indicated by the dark areas. The target configuration is indicated by redness on the empty cells. If a live cell is currently occupies the target its indicated by a green shading of the cell. A legend:
Clear : Dead cell
Black : Alive cell
Black-Green : Alive cell occupying target
Red : Target
Celldoku Update
Celldoku is now playable with 6 puzzles. The game keeps track of your progress and the readme contains all the info required for playing the game.
If you manage to beat the 6th level, the game's progression code break and doesn't work anymore. But think sure are looking good!
Celldoku 0.9
If you manage to beat the 6th level, the game's progression code break and doesn't work anymore. But think sure are looking good!
Celldoku 0.9
Final notes
Celldoku 1.9 Final Submission
known issues:
known issues:
- - Can't unzip with 7Zip
- - Graphical Errors on Mac OSX
Okay well its the end of pyweek and I feel its my second success. It was a success for me as a solo programmer because I was able to create something that some have considered entertaining while retaining a high level of polish.
Taking what I learned from my first pyweek and my development with DROID_ on Murmel I tried to set out a strategy that would allow me to at least get a full game submitted by the end.
For me this strategy included a few key points:
- * Stay away from math intensive games -I am not good at collision detecton or math in general so I needed something that wouldn't require too much of that.
- * Create a level editor the first day - Last pyweek, DR0ID_ and I spent the majority of the week working out a very nice engine for our game. We made sure that the classes made sense and that we had good interfaces. However by the time we finished making this engine we ran out of time for a level editor. While the level editor /did/ get finished there were errors and bugs that we struggled with down to the very last minutes. Oh man there were so many MD5 hashes...
- * Get fydo to be my artist - Fydo is a magician. His art is incredibly enjoyable it is probably the biggest asset this game has. My instincts were correct and fydo pulled through will some really great art for this game. Thank you thank you thank you.
A few things I learned this pyweek are:
pyglet is really nice. I can't say that I could really ask for more than what pyglet is offering. The ease in which I could make Celldoku while knowing its all OpenGL in the backend and that I can even use OpenGL anywhere when I was was clutch.
The only thing I really want from pyglet that it doesn't have at the moment is Sound. But as Richard explained its not particularly pyglet's fault, AVBin is just the best available option at this point.
After pyweek started I learned about Cocos a library built ontop of Pyglet which supports the organization of your game into mini-apps called Scenes. This is actually how I like to set my game up anyway and is how Celldoku is implemented.
Basically I use the pyglet window as my engine class. I install various "Manager" classes into the engine class and then make it global. Using pyglet event stacks I switch which scene is running with pushing and popping scenes around. This makes it extremely easy to implement small specialized scenes that use global assets available in the engine. I'm excited to use Cocos because I'm sure they are doing it oh so much better than I am.
Special thanks go to:
Ironfroggy from freenode. He was originally going to be a teamate for this pyweek and Celldoku is really spawned from the talks about a game based off Cellular Automata with him.
ajhager from freenode. When I can't figure something out, ajhager was there to give me a specifically crafted demo to show me how t do what I was trying or explain it in some other way. Thanks guy.
Hope everyone had fun, I know I did. Don't worry if you can't beat Celldoku, its really hard.
Level 14 FIX
LEVEL 14 BROKEN?
If you have been playing Celldoku and are having trouble with level 14, or the 4th Hard level its not because its too hard its because it is impossible.
Sorry about that!
We have provided the fixed level file **here**
Place it in the ./data/lvl/ directory. Thanks for playing Celldoku :)
Sorry about that!
We have provided the fixed level file **here**
Place it in the ./data/lvl/ directory. Thanks for playing Celldoku :)
Har har, I messed up the example
For those of you who may be confused by the example in the "how to play" screen of our game, you have every right to be confused. Because it's wrong!
Here's how it's supposed to look:
Sorry about that! Totally my fault. I apologize if this keeps you from enjoying (or understanding) our game!
Hooray for Pyweek!
Here's how it's supposed to look:
Before: - X - - - X X - - X X - - - - - After: - X X - X - - - - X X - - - - -
Sorry about that! Totally my fault. I apologize if this keeps you from enjoying (or understanding) our game!
Hooray for Pyweek!