Prototype : 2D Game

Over Christmas break, my brothers(one of which is in the industry) and nephew(who just turned 14) wanted to do some off the books game development.  The above video, steps through the features of our ripest prototype.

What's cool is how my nephew got to experience building something hacker style : Through pivoting and ad hoc problem solving. 

  And the highlights on that roadmap were:

  • Basic control and movement.  Started out with a ball and worked on getting good horizontal movement with acceleration and deceleration.  Then moved on to add jumps and fall along the y axis.
  • To fire bullets, you must first spawn them.  This lead us to discovering this prototypes funnest game element; spawning the satellite weapons.  Realizing this completely changed our mental model: Every object in the game bullets; floor and wall tiles are effectively static bullets that never move.  
  • Collision detection.  We've made many false starts with other development environments(HTML5, Game Salad, Unity..etc), and getting stuck in tiles, or completely missing tiles was always an issue with higher speed transform.  Managed to get good results by incorporating acceleration into the collision calculation, and that got us 90% of the way there.

My nephew was familiar with GameMaker, so that became the platform of choice.   And I was surprised at how articulate of a guide he was in getting me up to speed with GameMaker's inner working.  

We managed to complete about a feature per day.  So within a week and some custom code slinging, we had a fun prototype.

Shaders : Hue Shifting

Nintendo characters tend to emphasize shape and volume over details.  In addition to value attenuation, a complementary amount of hue shifting can really emphasize the simplicity and beauty of this style.  And the shaders I've adapted from this approach can run on a wide set of hardware from fixed pipeline mobile devices to highly programmable CGFX/HLSL environments.  Normals are fundamentally one's best friend for getting high mileage here<g>.