Archives

Quiet but Busy, Prototyping and Game Jamming

Well here is every blogger’s obligatory post about being too busy to blog. I’ve been working hard on the game engine for quite a while, but haven’t made many posts as there’s not too many visually interesting things going on. I’ve been testing out a lot of technology in the game engine and working on robustness. Here’s a short list of the things I’ve been up to since the last post:

I added, then removed a GUI using TweakBar.

The camera class was fleshed out and support for camera tweening and flythroughs.

It’s now possible to aim trajectory of bullets using the cursor position in screen space.

The input class was abstracted to support both DirectInput (which is pretty outdated and nasty to use) and SDL.

Similarly, the windowing system was abstracted to allow native windows or SDL.

The engine can now toggle fullscreen on the fly.

There is now a decent mechanism for doing something on collision detection.

OpenAL was integrated to add full 3D audio support, although currently it’s just set up to play stereo background music.

I’ve tried to add whatever is necessary to allow prototyping of a game in a short amount of time, without compromising the structure of the engine. I’m quickly realizing that I’d like another layer of abstraction between the engine and the scripting system that contains just gameplay logic. For example, the engine might handle rendering assets and simulating physics, but the gameplay layer is responsible for describing the notion of a “player” or an “enemy”. This is further abstracted into a scripting system that allows rapid level creation.

So to test out the engine, I decided to try to make a quick game for the Global Game Jam 2012. The point of the game jam is to make a game in 48 hours. This year, the prompt was simply an image of .

The Global Game Jam 2012 Prompt

I interpreted the snake eating itself as a prompt for recycling, revolution, reincarnation. So I started working on a type of “Jenga” game, using my particle system to place blocks in the shape of a tower. The objective is to pull blocks out of the tower and place them on the top to make the tower taller, without falling over. The tallest tower yields the highest score. I worked as a single person team, and did all of my work from home. The game isn’t finished, but I’m fairly happy with the result after just a couple days work.