Archive for the 'Video Games' Category

Tetris Gingerbread House

Tetris Gingerbread House

Meg Blake, John Martin, Peter Martin, and I ported Tetris to the medium of sugar. A full build writeup will soon be a rumbling on John’s new site, rumblings.org.

Update: John’s post is up.

Reflection Rejection: A Pygame Camera Game

Reflection Rejection

Here is another Game Creation Society competition entry I wrote in an evening. The theme was “reflection”, and I took it literally. The game generates a jagged and changing world based on what a webcam sees. This of course, means that it requires a webcam supported by the Pygame Camera module, which should be just about any USB webcam that works in Linux.

In the game, you must steer the heart across the treacherous world without colliding with anything. If you do, you start back at the beginning. If you succeed, the heart gets bigger and you start again. Note that in many cases, the worlds generated will actually be impossible, just like real life.

The game uses the latest Pygame out of SVN, so I compiled it and included it locally for those who don’t have it.

Download:
Reflection Rejection i386
Reflection Rejection amd64

Deep Sheep: A Global Game Jam Entry

Deep Sheep

I spent last weekend at the Entertainment Technology Center (ETC) for the Global Game Jam, designing and programming a game about sheep.  The process of coming up with a game concept in our team of 7 randomly thrown together geeks (though we ended the weekend with 5 [attrition, not cannibalism {though I did get pretty hungry from all the coding}]), was quite a whirlwind.  Somehow we started at a blob of mercury and ended with a dream in which you control an alarm clock being chased and covered by bouncy sheep.  The premise is that you’ve fallen asleep counting sheep, which follow you into your dream.  The sheep try to keep you in the dream forever by smothering the alarm clock and preventing it from ringing.  To win, you must knock all of the sheep off of the clock by ramming into obstacles or falling from heights, and then quickly roll back to the bed before any sheep catch up and reattach.  It plays a lot like a reverse Katamari Damacy, though that was not necessarily the intent.

This is the second time I’ve done a 3d game, and this one came out far better than Robobear Apocalypse, an entry for the Wild Pockets Game Jam.  The engine this uses is Panda3D, another product of the ETC.  It was actually quite nice to learn and use, and I was impressed by how well it worked cross-platform.  It helps that it uses regular old Python instead of proprietary languages that seem to be all the rage in game engines today.   I also learned just how nice it was to have modellers/animators on a game project.  Finally a game that isn’t made up of spheres, cubes, and stock models!

You can download the game on its Global Game Jam page.  The .zip on that page contains the source and a Windows installer.  You can also run the source directly in Linux or Windows if you have Panda3D installed.  It seems most distros have it available in their repos, but if not, there are packages downloadable at the Panda3D site.  It’ll run ok on just about anything that isn’t integrated graphics.   The game isn’t perfect and certainly isn’t bug free, but it is a fun light hearted experience and the result of only 48 hours of work.

RocketPong: Now a Zero Button Voice Activated Game

RocketPong

I wasn’t planning on touching this one button game again, but I have one last improvement:  removing the button.  RocketPong is now a zero button game in which the player’s rocket thrust can be activated by yelling into the microphone.  It feels… kind of right.  I tried making the thrust relative to the loudness, but it felt less smooth.

I did this mainly as a proof of concept for a bigger and better future game idea.  It is a game that will be controlled by voice input and hand gestures.  The player yells into the microphone to recharge his or her ammo and makes shooting noises (pew! pew!) to fire.  The player’s hand, closed into a gun shape, will control the crosshair on screen to target enemies.  The game will probably be quite frustrating to play, but hilarious to watch other people play.

This version of RocketPong uses some code from CShadowRun in an Ubuntu Forums thread.  It requires pygame 1.8 or newer and python-alsaaudio.

Download: rocketpong_voice.tar.gz

RocketPong – A One Button Game

RocketPong

I couldn’t sleep, so I decided to write a quick entry for the Game Creation Society’s One Button Game Compo.

It requires Pygame 1.8, which can be installed through a package manager on many distros, or can be downloaded from Pygame.

The game is a pong clone with gravity. The one button activates thrust on your paddle, which happens to look like a rocket. In theory, there is pixel perfect collision detection, so the angle of the ball against the curve of the rocket should matter. The opponent rocket is controlled by some really really horrible AI. The game would be infinitely more fun with two players, but I wasn’t sure if the one button rule meant per player or total…

Update: I uploaded a better version of it with more accurate collision detection and better AI.  There is also a two player mode that is activated by hitting the right arrow key, which is the thrust key for the second player.  This is the final version for the game competition, and very likely the last time I will touch the code.

Download:
rocketpong.tar.gz
rocketpong.zip