Art is Art and Water is Water

May 16, 2010

May Game + RedditGameJam

Filed under: Month Games — foone @ 7:15 pm

Journey To The Surface (712k) (4.1m)

It’s pyglet+OpenGL, it’s a small FPS with a story (and a twist! really! a crap one, yes, but a twist)

Since it was made for a 48-hour game jam (and I only get to use about 20 of those hours), the code is five kinds of crap.
There’s a bunch of places where I went “God, this is so, so wrong” but kept on hacking because I needed to get it done in time.

To play it, you should just need Python 2.6, NumPy, and a video card that can do OpenGL. I’ve not tested on Winders or OS X, but in theory it should run just fine.

(I did do an April game, but I’ve not bothered to write about it yet) EDIT: It’s up, now.

EDIT EDIT: put up win32 link. Finally.


April Game: IRC scramble + pank

Filed under: Month Games — foone @ 7:03 pm

<Foone> bot: game scramble
<bot> Unscramble this word: holelwob
<Foone> holebowl
<bot> Here's a hint: b.......
<bot> Here's a hint: blo.....
<Foone> blowhole
<bot> Foone: You got it! (blowhole)

For my April game, I added game support to my IRC bot. I’d been meaning to do this for a while, to replace a word scramble game that had been on a retired bot.
Instead of hardcoding the game (Which would have been a mess) as its own module, I wrote a generic game-playing module to abstract away some of the annoyances of IRC and the IRC bot framework I used. This’d let me write games in a very simple style, without having to care much about how the framework worked. The main annoyance with using the framework as-is is that it is designed on a very simple stateless almost-CGI style. You get a function call when someone says something that matches a regex, and you need to return fast because if you don’t you’ll prevent other handlers from running. Not exactly optimal for a long-running game module which does things like waiting for 30 seconds for a user to say something.
So I wrote a framework, where a game can be started and this creates a new thread. Anything said while the game is running goes into a buffer, and the running thread simply waits on new input from the buffer (with easy specifications of timeouts, to make things like “quit if no one answers in 60 seconds” very easy to implement.

I implemented a simple word scramble game and a bastardized version of Blackjack (called “pank” for some reason) on top of it. I also added centralized score storage, so you can get your lifetime score at descrambling words.

Create a free website or blog at