Prototype Boss Fight Gallery

Prototype where polished art are getting integrated with bounding boxes for main player package :

  • iteratively tune animation play back for both player and bounding box transforms to feel "good"
  • tuning input controller to feel responsive
  • background, and boss assets are roughly instantiated and animated to give artist context to tune asset production

Complete gallery can be found at : https://photos.app.goo.gl/o5yDQZDeArgBmhxD8

There was a lot of back and forth with the art team, and generally turn around time was about 2-3 days between deliveries and getting a new build ready for us to progressively iterate towards the next step

This iteration was happening remotely, after work from our actual day job : but the speed and progression gave us momentum to positively move forward 

ECS Prototype Gallery

Gallery of rapid prototype development with white box bounding volumes :

  • Unity 3D
  • Entity Component System

IMHO the bread and butter of prototyping is :

  • visually acknowledging runtime events and physics state
  • structuring it so that's it easy to remix and explore possibilities
  • including polish for animation curves and transitions

Bonus if the with simple bounding volumes already look good prior to actual art polish

Full gallery available here : https://goo.gl/photos/9jAdyFbYVnNUkhr86

This was a fun scratch pad for mapping and logging function and events to UI, and each gif represented about a bus ride's worth of progress ~ 25 minutes

Maya CGFX Shader : Inspired by Guilty Gear Xrd GDC Presentation

Junya C Motomura's gave an amazing GDC presentation of how Guilty Gear Xrd achieved it's incredible 2D look.  And I was inspired to write a variant of what Junya presented as a Maya Cgfx Shader.  Check it out, it's available on Github:

https://github.com/miketon/Maya_Tools/tree/master/Shaders/Toon_xrd

Notable differences :

  * Team Red appears to be straight up using a dot product.  This shader uses a dot product to do a uv lookup on a 1D ramp texture.  Affords more flexibility with changing light-to-shadow palette via texture edit.  Tradeoff is lower perf

  * Team Red actually altered the normals, I'm using vertex color (red channel) to alter the uv lookup.

Future improvements could include other 2D effects such as ziptone and crosshatch shading.


Halo 4 Custom Shader

Digging through my old archive, I found this old documentation for a matcap shader I wrote for Halo 4 a few years back.  Our pipeline was entirely proprietary, and didn't feature any kind of node based editor such as Unity's ShaderForge or UDK's shader editor.  

Luckily my previous experience working on the hardware side at Nintendo Technology Development and interfacing with OpenGL at a low level helped me find my way around our engine.  

Much of my work nowadays doesn't require the level of linear algebra as it used to, but I still find concepts derived from that foundation useful for debugging collision and raycasting logic in my character/camera controllers.  Like anatomy knowledge, linear algebra has a very low decay, and I'm very glad to have invested in adding that to the tool belt.

Data Visualization : Memory Report

Learning to filter and chart tables, csv files, xml/JSON docs has been one of the more interesting problems I encountered working on Halo 4.  It's pure data shepherding.  And when I was doing manually it would take nearly half a day; so I wrote scripts to automate that :

https://docs.google.com/spreadsheet/ccc?key=0Ak0Zu3w86Ux5dEtYZkpuV1Y5dWpfRG1KTTNKSEZ1RXc&usp=drive_web#gid=4


Data once it's filtered for relevancy and visualized as information becomes highly valuable in understanding trends and detecting spikes. Properties that are highly desirable for tracking and reporting memory usage.


Photoshop Tool : stripToLayers.jsx

This tool complements my layersToStrip.jsx.  StripToLayers.jsx takes an existing strip and copy shifts each frame into a single series of layers.  The default number of frames is estimated by dividing width/height.  This works perfectly for frames with uniform aspect ratio.  But will need to be adjusted manually if frame aspect are non-uniform.

Code is available at : 

https://github.com/miketon/Photoshop_Scripts/blob/master/source/stripToLayers.jsx

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.