“(R,G,B)” – Ludum Dare 26

“(R,G,B)” is a minimalist adventure game I made for Ludum Dare 26. The theme was “Minimalism”. My goal was to experiment with pure color values and explore the flat 2D space while keeping the game itself very simple. I also created the music within the contest time limit. It scored 42 overall out of 1610 entries and also received 10th in the graphics category! While not my highest overall it is my first time breaking the top 10 in any category so that’s pretty cool.

Continue reading

Posted in Projects | Tagged , | 2 Comments

A Simple Hash Map

Hash maps are used to store a mapping from one thing to another. In videogames they can be used to safely keep handles to objects that could be destroyed at any time. A unique handle is assigned to each game object and mapped to it’s pointer via a hash map. We can keep track of objects using handles instead of pointers so when an object is destroyed it doesn’t have to notify anyone else, just removing it’s handle from the hash map is enough. This is more or less the same method we’ve used on many of the industry titles I worked on (Starhawk, Red Faction, etc). The downside is of course is a longer look-up time, but I’ve found with proper engineering it’s negligible.

Continue reading

Posted in Game Dev | Tagged | Leave a comment

A Rendering Thought Experiment

I recently wrote an article about smoothing out measured time fluctuations and provided a code sample that fixes the issue. I haven’t seen this stuff talked about much before and I’m noticing some confusion about what causes this aspect of stuttering and how we can eliminate it. In a nutshell the problem is that the measured time delta fluctuates around the actual vsync interval. This is not the same issue as temporal aliasing which happens when you have a fixed time step but no interpolation! Here’s an article on AnandTech that explains the issue of frame delta stuttering in great technical detail.

Perhaps a thought experiment can better help explain this aspect of stuttering. I’ll start with an analogy for triple buffering to show how can we trade latency for the ability to smooth out the occasional long frame. We will build on that to show how measured clock time will always fluctuate between frames and why it must be corrected for.

Rodin1

Continue reading

Posted in Game Dev | Tagged , , | Leave a comment

“Squaresville” – EGP Demo

Squaresville is an open world puzzle platformer for Sifteo cubes that I developed for the EGP Sifteo competition. This was a major challenge both optimizing it to run smoothly and also make the design fun to play under extreme limitations. I am very happy with the results, it may be the best game I’ve ever made actually. I hope that players will enjoy it because it’s somewhat confusing but I have added many new features to help with that.

UPDATE: Squaresville is one of the two winners!  Congrats also to One Life Remains, the winner of the multiplayer portion.

Continue reading

Posted in Projects | Tagged , | 8 Comments

Smart Timers

Every game needs some kind of timers to control gameplay related events. A timer works kind of like a stop watch in real life. There are different ways to keep track of time, this method some nice advantages that will make your life easier! Continue reading

Posted in Game Dev | Tagged , | Leave a comment

“Squaresville” – An open world adventure for Sifteo

This months experimental gameplay project was all about making games for Sifteo Cubes. So far I’ve released 2 prototypes, Peong and Twisteo which gave me a good sense of how to leverage the cubes unique capabilities. For my final concept I wanted to really push the limits of what was possible and take it to the next level. Maybe I went a little overboard but honestly I was just having too much fun.

Continue reading

Posted in Projects | Tagged , | 2 Comments

Peong – Part 2

Sifteo cubes are awesome.  They are awesome and they are slow.  The simple 16×16 cellular automata smoke effect Peong uses was dragging my framerate to the ground. It’s just a 16×16 matrix but the update was eating the bulk of my framerate.  I wanted to see how high I could push the fps with some optimization.  I finally got it running at a solid 60Hz on all 3 screens during gameplay but this is all running in an emulator so it’s hard to say how it will look on actual hardware. The emulator reports that the screens themselves are refreshing at a maximum of around 35Hz so that may be the limiting factor.

Continue reading

Posted in Projects | Tagged , | Leave a comment

“Peong” – Sifteo Pong

I’ve been spending a few days experimenting with Sifteo cubes.  One hand Sifteo has extreme limitations but on the other it has capabilities that no other system does which makes it a fun platform to develop for.  There are not many games yet available for the system but in my opinion what they really need is something like Wii Sports for Sifteo.  Using Wii Sports Tennis as inspiration I developed an action oriented multiplayer game that leverages the unique capabilities of Sifteo, tentatively called Peong.

Continue reading

Posted in Projects | Tagged , , , , | 1 Comment

Sifteo Project for Visual Studio

After playing around with Sifteo development for a while I began to grew weary of switching between notepad++ and the command console.  I wanted to work in a cleaner environment and simplify my iteration loop so I cobbled together a solution for Visual Studio Express.  What I’d like to see eventually is more of a cross platform solution with native Visual Studio debugging.  This is kind of a work around but still one step closer towards that goal.  It’s hooked up Makefile configuration type to launch a bat file which builds the elf and runs the Siftulator.

Continue reading

Posted in Game Dev | Tagged | 2 Comments

“Twisteo” – My First Sifteo Game

This month’s experimental gameplay project is to make a game for Sifteo Cubes, a really cool and unique gaming platform.  I was inspired to try playing around with some ideas and spent most of the day implementing a simple puzzle game concept tentatively called Twisteo.

Continue reading

Posted in Projects | Tagged , , | Leave a comment