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.

Relentlessness

I'm a strong believer that all problems crumble under relentless efforts.  All problems.  

Here are the best new additions to my toolbox:

c# - I didn't realize how much I would come to love this language.  Lisp and Javascript were a great entry for me into code, but c# let's me get things done on a practical day to day basis.  Now comfortable with interfaces, class extension, function overrides and overloads as structures to reduce repeated code over medium to larger projects.  Model View Controllers as an intelligent code organization, and Rx as a way to track events in motion.  

Grids - There is something about procedurally building out a level that is exciting.  I'm currently lost in exploration here, but will continue to invest in this space.

Github check ins and daily pomodoros have helped massively expanded my toolbox and skills over the last few years.

Game Development : Player Story vs. Developer Story

IMHO games that effectively allow a compelling conflict to play out on screen rule the day.  There's been an ongoing debate between Narrative/Story vs. Gameplay/Gamerules in game development that has been just as rich.

I stumbled across this interesting article by hitbox team, that I read as framing the debate as developer story vs. player story:

http://hitboxteam.com/designing-game-narrative

A really outstanding read, and interesting angle.

Unity Tweening : DoTween Rules

Posted above is an animated gif of most of the ease-out tween types that I organized into an array for reference and a/b comparison using HoTween : https://www.assetstore.unity3d.com/en/#!/content/3311.  Here's hoping this is helpful to folks out there.

HoTween Version 2.0: DoTween is relatively new, but is already my go to tool for any kind of value curve changes.  The support and response that Daniele Giardini (Demigiant) has been offering has been amazing : DOTween (HOTween v2), a Unity tween engine: alpha now open .  

And I especially enjoyed following how lambdas are implemented in C#, and applying them in my own code.  I was more than happy to support and sponsor his effort.  Check it out.  The future is looking amazing for Unity Tweening.

As far as I understand, much of the math is based on Robert Penner's Easing Functions : 

http://www.robertpenner.com/easing/

Which was a tremendous resource when I was building UI prototypes during my Research and Development days at Nintendo Technology.


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.