Johnny saves the world
Johnny is a little boy that has to save the world, using only his programmable robot — the problem is, he has to learn more about programming as he goes!
Awards
Scores
Ratings (show detail)
Overall: 2.6
Fun: 2.1
Production: 2.5
Innovation: 3.2
Respondents: 19
Files
File | Uploader | Date |
---|---|---|
johnny_saves_the_world-4.zip
— final
Working version, still w/o sound. |
roberto | 2008/04/05 17:41 |
Screenshot-run_game.py.png
2nd level of the game |
roberto | 2008/04/05 00:18 |
Diary Entries
Ideas
I'm really excited about my second pyweek... while I can hardly wait for it to start, I'm also worried because the last pyweek was a complete lost my work -- I could hardly concentrate on my work, since I kept thinking about my game and how to implement all the ideas I still had to implement. :-)
This time I'm planning to do a 3D game, using pyglet... thought panda3d also looks interesting. I'd like to do something involving either robots or space ships, but let's see (in less than an hour!) what the possible themes will be first.
Anyway, good luck to us all! :)
Finally an idea!
I haven't even started yet, since my girlfriend defended her Master's yesterday. Today I finally had a nice idea, and I should get it started tonight.
I agree that the "robot" theme is too unrestrictive, so I wanted to make a game that was deeply connected to robotics. My first idea was to do something based on the 3 laws of robotics, like walking through a level without getting hurt and without letting humans get hurt, but I wasn't very excited with this.
So, my plan now is to make a game called "Johnny saves the world". It's about a boy, Johnny, who has to (surprise) save the world. He accomplishes this using his personal robot, which has to be programmed to navigate throught a maze. The programming is made using a stack programming language, with tokens that have to be collected in order to build more complex programs.
The game is not unlike my entry for the last pyweek, Galvinball, in which the player could create new rules for the game on the fly. I like to be able to play my own games, so I try to create game mechanics that are open-ended, where the solutions aren't "hard coded". Let's see how this one goes.
Progress
This morning I implemented a simple stack-based programming language (similar to Postscript/Forth) to control my robot. To move the robot 100 pixels to the right, for example, you could write the program:
100 0 MOVE
My idea is to allow the robot to capture tokens in the maze, and push them into its stack. The input will be limited in size, so you could write the following program:
100 0 MOVE 100 MOVE
The robot starts moving to the left (100 0 MOVE), so that the input is now:
100 MOVE
This is not enough for the robot to move, since the stack is now empty. But if the robot passed over a 100, it would be added to the stack, allowing the intruction 100 100 MOVE to be run.
I hope I can finish this basic physics today, and focus on some levels tomorrow. Then art on friday and finish it on saturday! :)
Argh!
Going well
I finished my game interface -- I had to spend a lot of time learning pyglet and cocos, which I had never used before. Tomorrow I will work on designing the levels and polishing the interface a little bit, and saturday I hope to have some free time to improve the graphics and add some music and sound effects.
Expect a first release tomorrow! ;)
First release...
I have the game working with a single level. Now I just need to create 9 progressively harder levels and add sound! :)
Sound and music...
Walkthrough
I forgot to add the SOLUTIONS.txt file to my zip. Here it is, rot13d:
—
Gurfr ner zl fbyhgvbaf gb rnpu yriry -- bgure fbyhgvbaf znl rkvfg, gubhtu.
- 7 0 ZBIR ZBIR
- 4 1 1 ZBIR CBC ZBIR (be 4 1 1 ZBIR EBYY ZBIR)
- 0 2 ZBIR ZBIR FHO -4 ZBIR ZBIR
- -4 0 4 0 3 0 ZBIR ERCRNG
- 0 4 ZBIR -1 ZBIR