I’ve been terribly bad at keeping information on my games posted on my blog, so I’ve created a “Games” section where you can see what I’ve been working on! My latest game was an entry to Ludum Dare 28 called “Aggrogate”. It did extremely well, getting 8th place in innovation! I will do my best to keep the game page up to date with the latest builds of my games, the latest videos, and links to the original Ludum Dare competitions.

Games

Aggrogate

Also, GDC is next week! I will work on making a nice informational post about one of the many research projects I did this year, as I’ve been meaning to post more technical information on this blog.

And in another hardware related update, I also posted my recent 120Hz monitor overclock conversion.

Monitor Overclock

March 13, 2014 Games, Hardware

Zero Zen Logo

Today I showed off Zero Zen, a game I made in 48 hours for Ludum Dare, at the Portland DrupalCon. It went great! For those interested in downloading the game, you can download the original Ludum Dare entries here:

Download Zero Zen for Windows
Download Zero Zen for Mac OSX

The original Ludum Dare page with extra information can be found here:

Zero Zen on Ludum Dare

There will be a proper post discussing a postmortem of the game, but for the time being take a look at this nice gameplay video!

May 23, 2013 Games

I just recently got picking working using the Bullet Physics Engine. Picking is a way to “pick” an object via a primitive (triangle) using a cursor from the camera’s perspective. Hovering your mouse cursor for example of a window and clicking on an object is a very intuitive way to interact with a scene. However, it’s not as intuitive to program, because the location selected is in 2D screen coordinates, and not 3D world coordinates. The difficulty in picking really lies in somehow determining the 3D coordinate space of the object to select. First, lets see what I’m talking about.

Read More…

February 13, 2012 Games, Physics

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.
  • Added a basic flat shading model (native D3D9) in addition custom shaders.

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 .

Ouroboros

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.

February 6, 2012 Games

I’ve been conspicuously quiet the last couple of weeks and this is why. I have been evolving my rough particle system into a (very targeted) game engine. From a design standpoint, the particle system was a learning project where I tried to leverage as much as I could from the natural mechanisms of C++ to develop an object model for what I planned on turning into a more general purpose game engine. I decided to try and model my game objects using an inheritance structure. I felt that in the real world, nearly everything falls into some sort of classification, often with distinct parent-child relationships. However, as I began adding game specific objects to my engine, I realized that not only is it prohibitively difficult to try to model the real world (the way I felt it should be modeled) due to the sheer volume and complexity, but game objects are simply an approximation of real world occurrences, and as such they tend to “cheat” to achieve a certain effect. Objects in a game can chose the be invisible, or defy the laws of physics. This basically breaks whatever elegant classification structure I had planned. Luckily, this can be addressed by converting to a “has-a” object model, where objects will contain pointers to optional collections of data and functionality.

Read More…

April 21, 2011 Games