Monday, August 22, 2016

Video Game Prototyping

Video Game Prototyping is an emotional roller coaster. Two months ago, I started hammering at a totally amazing game idea. Every day was a coding frenzy. I couldn’t wait to get the game in people’s hands.
After a week, the first playable was ready. Players were excited by the gameplay, but wildly confused by the touch screen controls. I took a step back, and simplified the game controls from 8 buttons to 3 buttons. As a result, the game lost some of its strategic depth.
Another playtest took place. Players found the game easier to play, but also less interesting. Feeling humbled, but not discouraged, I set out to find the new fun factor the game needed. I spent days churning out one game mechanic after another. I felt completely in my element, putting all of my skills to the test.
As the days went by, none of the mechanics stuck. I felt this sinking feeling that maybe I can’t figure this one out. Each day became more difficult, each mechanic less fun, and after 8 days I ran out of ideas. My confidence hit an all-time low. Why was I even wasting my time on this?
The next day, an innocent thought popped into my head. The Bullet mechanic was fun, but lacked strategy. The Bomb mechanic was strategic, but too slow. What if… the bullets were also bombs? And a skillful player can strategically detonate them?
My confidence started climbing. This tiny layer of strategy enhanced every aspect of the game. Play time jumped from 2 minutes to 10 minutes. Laughing and trash talk ensued. The game was back on track, and even better than before.
This is an ongoing project. My mind is buzzing with ideas. Hopefully I can share it with you all soon!

Sunday, July 19, 2015

Unity: Rotate a 3D ball using 2D Physics

Unity is an awesome game engine with great 2D and 3D features. While working on a 2D game world with 3D game art, I ran into an unexpected challenge with rolling 3D spheres. Let's frame the problem in the context of a 2D soccer game with a top-down view.

Before (animated gif)
After (animated gif)
GitHub Project

Saturday, August 09, 2014

Crypt of the Necrodancer: Dance Pad Setup Tutorial

Crypt of the Necrodancer is an amazing game. I love the rythm-driven mechanics, and how it lends itself to play on a Dance Pad. While my reflexes are best with the keyboard Arrow Keys, I bought the Deluxe D-Force Dance Pad for a bit of exercise, and novelty at parties.

Sunday, December 04, 2011

Rapid Physics Beta Release

Rapid Physics is a custom Physics Engine that I decided to build in Flash.

Why would I torture myself like that?

There are plenty of industrial-strength physics engines out there, such as Havok and Box2D. They offer complete and robust physics simulations, but they also hide a lot of information from the programmers that use them. This leads to two problems:
  1. Hard limits on authorship control over the physics simulation (lots of code you didn't write)
  2. A sense of helplessness when debugging engine-level problems (lots of code you didn't test)
Effectively, game programmers lose the granularity to control subtle features of the physics simulation, and the ability to do custom collision resolution for gameplay purposes. For games whose physics are integral to gameplay, there is still a place for custom physics implementations.

I designed Rapid Physics to tackle one specific problem that most general-purpose physics engines never attempt to address: Tunneling

Tuesday, September 20, 2011

Rapid Physics

I am building a physics engine called Rapid Physics. It is designed to correctly simulate objects that move really fast. This is difficult problem that is commonly known as the tunneling problem.

Check out a quick demo here:
Rapid Physics 0.25 Alpha

Tuesday, June 14, 2011

E3 2011

A few weeks ago, I received an amazing phone call that would change my life (for a week).

I became an IGDA E3 Scholar!

What's that you ask?

Let's break it down. First, the IGDA is an official support group for game developers. Here is their official About statement from
The International Game Developers Association is the largest non-profit membership organization serving individuals who create video games. We bring together developers at conferences, in local chapters and in special interest groups to improve their lives and craft.
The Electronic Entertainment Expo, or E3, is the largest media gathering in the Videogame Industry. Every major game studio and platform holder uses E3 as a venue to announce their next big thing.

As an IGDA E3 Scholar, I got a pretty sweet deal:

  • Pre-paid E3 ticket ($500 value)
  • Access to the press events from Sony, Microsoft, Nintendo, EA, and Ubisoft.
  • Tours of several game studio booths on the show floor
  • A couple lunches with various game developers
  • Some 2nd floor access
  • A field trip to the CAA, and EALA
  • Doing all of the above in the company of 14 other IGDA E3 Scholars. 
It was the most epic E3 a person could ever hope for. I am extremely grateful to the IGDA for this incredible opportunity to network and learn from my peers. Below, in no particular order, are some of my most vivid memories from the event:

During a developers lunch, I spoke with an EA programmer about game engine architectures. My specific interest was what comes first in a professional GameObject class hierarchy: rendering or physics? To illustrate my question more clearly, would the class inheritance hierarchy look like this:
  • GameObject
  • RenderingObject
  • PhysicsObject
Or this?
  • GameObject
  • PhysicsObject
  • RenderingObject
The professional convention seems to be one of two things: they either both occur at the same level, or an object-compositional model is used, where a RenderingObject owns a PhysicsObject. The latter model is especially useful in games where a 3rd-party physics engine like Havok is employed.

Microsoft made a bunch of Kinect-related announcements during their E3 press conference, one of which was the use of Voice Commands in Mass Effect 3. I was giggling to myself as this was presented, as I had already beaten Bioware to the punch with my Voice Command game, The Bridge. We wrapped up that project last month. :D

For the record, the experience of physically speaking Voice Commands to a game character, and then having that character respond appropriately, feels really amazing. It will be a killer addition to the Mass Effect 3 experience that everyone should try at least once.

Tim Schaffer is hilarious.

Sony had a good press conference. The Playstation-branded 3DTV for $500 looked really damn nice. 

I managed to show my Bullet Time Ninja game in video form to quite a few game developers on the show floor. Reactions ranged from "pretty neat" to "omg that's really awesome!!", so I'm pleased as punch. :)

A few quick blurbs on games that I played:
  • Fruit Ninja for Kinect is everything that I have ever wanted from a Kinect game.
  • Skulls of the Shogan looks like a good Indie game. There are a few game design kinks, but I am optimistic that they will be addressed before release.
  • SkullGirls has the greatest art and animation that I have ever seen in a fighting game. Must buy!
  • Monaco is really fun, but I feel like the current pixel art is holding the game back. I had a difficult time initially learning what was important on screen. Some focused art direction will turn that game from Great to Incredible.
  • I was outright impressed by the new XCOM game. The art style is right on the mark.
  • Kirby Wii is the most fun Kirby game I that have ever played.
  • The Wii U demos were pretty neat. I have high hopes.

Videogames Live had a great show this year. The Chrono Trigger performance was beautifully done. Have a listen:

Overall, this was the greatest E3 experience I have ever had. The IGDA is doing a great service for up and coming students. I hope future generations of amazing game designers get the same opportunities.

Thanks for reading,