Ookoobah
A puzzle/dexterity game about a photon lost inside a quantum computer. Your goal is to guide the photon to the terminal pad after activating eight 1-bit flip-flops. But the photon is very elusive and cannot be directly controlled. And hence you are given a set of block of various types that effect the photon's direction in some way.
ControlsThe game is mainly controlled via mouse. Pick a block type from the menu on the left-hand side and place into the game field using a left mouse button. To delete a placed block, right click on it. If you use touch-pad, you may find left click + Shift or numeric keyboard key more handy. You cannot delete a level block, one that you did not place yourself.
Includes a level editor.
Source code: https://github.com/vickenty/ookoobah
Awards
Scores
Ratings (show detail)
Overall: 3.5
Fun: 3.4
Production: 3.8
Innovation: 3.4
Respondents: 17
Files
File | Uploader | Date |
---|---|---|
ookoobah-1.1.zip
— final
Fixes crashes on Windows |
kent_turbo | 2014/05/18 11:56 |
ookoobah-editor.final.png
Built-in level editor |
mvuets | 2014/05/18 10:13 |
ookoobah.final.png
In game screenshot (final) |
mvuets | 2014/05/17 23:11 |
menu-bg.png
title screen |
kent_turbo | 2014/05/17 22:53 |
ookoobah-1.0.zip
— final
version 1.0 |
kent_turbo | 2014/05/17 22:52 |
ookoobah-1.0.tar.gz
— final
version 1.0 |
kent_turbo | 2014/05/17 22:52 |
ookoobah.5th-day.wip.png
5th day, work in progress |
mvuets | 2014/05/16 06:35 |
ookoobah.4th-day.wip.png
4th day, work in progress |
mvuets | 2014/05/14 21:34 |
ookoobah.3rd-day.wip.png
3rd day, work in progress |
mvuets | 2014/05/13 22:52 |
ookoobah.2nd-day.wip.png.png
2nd day, work in progress |
mvuets | 2014/05/13 09:39 |
ookoobah.1st-day.wip.png
1st day, work in progress |
mvuets | 2014/05/11 22:47 |
Diary Entries
We've done it! Meet Ookoobah
Howdy PyWeek'ers!
We are glad to present to you our game Oookoobah.
It's a puzzle/dexterity game about a photon lost inside a quantum computer. Your goal is to guide the photon to the terminal pad after activating eight 1-bit flip-flops. But the photon is very elusive and cannot be directly controlled. And hence you are given a set of block of various types that effect the photon's direction in some way.
Requirements
The game was written and tested in Python 2.7 under GNU/Linux and MacOS X. Besides Python core libraries the game depends only on Pyglet, which is already included in the bundle. Unfortunately, we could not test the game under Windows, but it should just work. If you face any problem with running our game, please let us know.Controls
The game is mainly controlled via mouse. Pick a block type from the menu on the left-hand side and place into the game field using a left mouse button. To delete a placed block, right click on it. If you use touch-pad, you may find left click + Shift or numeric keyboard key more handy. You cannot delete a level block, such that were not placed yourself.
Key | Action |
---|---|
Left mouse button on an empty grid cell | Place a selected block on the grid. |
Left mouse button on a placed block | Rotate the block. |
Left mouse button + Shift; or right mouse button | Delete the block. |
Arrow keys | Move the camera around the grid. |
Mouse wheel | Control camera zoom level. |
Digit keys 1 to 9 | Menu item shortcuts. |
Some gory details, credits, and a little story
We are the group of three Perl developers, none of which is a gamedev: kent_turbo, mvuets, and che. kent_turbo has been participating in PyWeeks for quite a long time and has got quite a good experience in making games with a help of Python. mvuets has never programmed in Python before, but always wanted to try it out in real, so PyWeeks seemed to be an excellent opportunity. che joined us as he was interested in Python and gamedev.
When we had settled on the game idea, we couldn't think of a good name and put this decision off. But we had to have some reference codename for the project, so we resorted to a passwdgen-like program and ookoobah was what we got in response. Sadly or gladly, but we never got around to actually pick a proper name. Ookoobah stuck and became our game name. So in case you wonder what Ookoobah is, it means nothing. But if it does mean anything to you, please let us know, we are curious (-:
All of us have a full-time job, so we were not able to work on the project full day all the week through. Despite that I think we managed to achieve quite a good result. I personally am very happy!
Since the very beginning of the challenge we were using GitHub to coordinate all our code changes. If you are interested, feel free to check it out here: https://github.com/vickenty/ookoobah.
A few words on who did what:
- kent_turbo
- project lead, game as a whole, opengl renderer, gloss, sfx
- mvuets
- game idea, game core/model, food supply (-:
- che
- opengl renderer, level loading and saving, level progression, main menu
Thank you!
We hope you'll enjoy our little pet. Looking forward to hearing feedback from you.
P.S. I'll make and upload a demo video of the gameplay once I figure out how to compile and run a screencast software on my laptop q-: Stay tuned.
Batteries included: the level editor is built-in
kent_turbo just reminded me that Ookoobah is shipped with a level editor! We actually used it to create the content for the game. It's just hidden by default. But here is how you can invoke it...
Starting Ookoobah level editor
To enable the editor, pass an additional command-line argument specifying the level name. If a level with the given name does not exist, you'll start with an empty grid and could make a level from scratch. If the level exists, you could amend it.
Create a new level:
ookoobah$ python run_game.py my-new-kickass-level
Edit an existing level:
ookoobah$ python run_game.py beginning
Once invoked, you'll find a new item "Edit" in the main menu. That's the editor.
Note: the argument specifies a level name, not its file path. Actual level files are available as $GAME_DIR/data/$LEVEL_NAME.level
Using the editor
It looks pretty much as the game itself. Except now you have more options. Namely:
- you can save a level (of course),
- have access to an infinite number of all possible block types,
- and can specify which blocks are locked (level blocks), and which will be moved from the grid to a player's inventory.
Some levels have an optional introductory text that is displayed when a player enters a level for the first time. This text is stored in a file $GAME_DIR/data/$LEVEL_NAME.level.txt and may be edited separately.
The editor wasn't considered an official part of the game, but rather a tool that naturally evolved during a development process. Therefore it may have bugs that we consider low priority and didn't fix. Please excuse us (-:
Playing new levels
To play your new level, simply pass its name on a command-line as shown above and select "Play" in the main menu. If you want to include your level in the standard series, you'd have to add it to the tuple LEVELS in the file ookoobah/game_mode.py.
Contributions welcome!
During the challenge we were very focused on the game itself, and could find time for level creation only on the last day. I should say: coming up with level ideas is hard! Nevertheless we made 15 levels, including 6 tutorials, which should suffice for starters.
But you are absolutely free, even encouraged, to create your own. Please do and share them with everyone. Looking forward to seeing your work!
Ookoobah v1.1-hotfix: Windows crash fixed
Version 1.0 was reported to not work on Windows. Meet a fixed version 1.1: https://pyweek.org/media/dl/18/latitude11/ookoobah-1.1.zip.
Ookoobah demo video published
As promised, here is a short screencast of the Ookoobah gameplay: http://youtu.be/aiXntST983E.