Harebrained Schemes (2016)
Software Engineer / Tools Engineer

- Worked on gameplay features like stats, traits, combat calculations, input, objectives, and enemy behavior to make them feel unique.

- Made the animation system using Unity's Mecanim and worked with animators and designers to tie together combat data and animations.

- Implemented enemy combat AI and their state machines with some work on their pathfinding and NavMesh.

- Worked on tools for designers to get data into the game.

- Helped with getting some networking features up and running like projectiles and objectives.

- Technologies used: C#, Unity3D, Google Spreadsheets, JIRA, Git




Golem Arcana
Harebrained Schemes (2014)
Software Engineer / Tools Engineer

- Implemented use of Google API for designers to create data into the cloud and then parse into JSON.

- Made the process to automate the creation of paper materials such as the cards and base stickers from data for the print factories.

- Worked on UI of out-of-game menus and in-game menus.

- Helped to implement the gameplay and abilities that Golems, Knights, Relics, and Ancient Ones use.

- Technologies used: C#, Unity3D, JSON, SVG, HTML, Google API, Git



Game Informer - “Golem Arcana is highly expandable for serious miniature enthusiasts, but it’s also just about the best introduction I can imagine into skirmish games of this style. If you’re looking for a fun strategic option, but you’ve been scared of the complexities of tabletop rules, this is the game for you.”

Venture Beat - “Harebrained Schemes has managed to truly enhance the tabletop war-gaming experience and turn it into something that both newcomers to the genre and grizzled veterans can enjoy. Once I got used to the interface and the app, which didn’t take very long, I was pleasantly surprised with how well it worked without interrupting the flow of the game. Having an app manage and enforce all the rules seems like a genius move, and it almost makes you wonder why someone hasn’t tried it before now. 90/100”

Geek Dad - “The bottom line is this: If you look at these images and think it looks fun, believe me, it is. Give Golem Arcana a try. You won’t regret it.”


Shadowrun: Dragonfall
Harebrained Schemes (2014)
Software Engineer / Tools Engineer

- Implemented new features in the editor and in conversation systems.

- Lots of bug fixing in all areas of the game.

- Technologies used: C++, Qt, C#, Unity3D, ProtoBuf, ANT, Git



PC Gamer - “One of the most memorable and complex RPG stories of the decade.”

Rock, Paper, Shotgun - “Dragonfall’s a big improvement on Shadowrun Returns [...] and it pulls off the smart trick of being both a superior starting point and a more satisfying follow-up.”

Hardcore Gamer - “In many ways, Dragonfall is a more complete and sophisticated version of last year’s Shadowrun Returns. The new campaign setting is utterly compelling, the writing is some of the industry’s finest with astounding prose and character development and the added content simply equates to an experience that is only rivaled by the genre’s best.”


Shadowrun Returns
Harebrained Schemes (2013)
Software Engineer / Tools Engineer

- Implemented Google Protocol Buffers (ProtoBuf) in editor C++ and Unity3D game C# for all game data.

- Worked in Qt C++ to help build the level editor, the prop editor, character editor, and conversation editor.

- Worked in Unity3D C# on the sound manager, animation controllers, fog of war, visibility casting, and UI.

- Implemented most of the UI such as conversations, main menu, PDA, store, equip, hiring, level up.

- Technologies used: C++, Qt, C#, Unity3D, ProtoBuf, ANT, Git



Giant Bomb - “I hadn’t touched a strategy game with any serious intent until Firaxis turned my world upside down with XCOM. Though Shadowrun Returns assumes too much about the player’s prior knowledge about the universe and too often skimps over introducing key gameplay systems, getting over the hump is worth discovering the deeply gratifying strategy game within.”

Game Informer - “Shadowrun Returns drops players headfirst into this richly realized fiction, combining classic role-playing storytelling with modern tactical battles . . . running the shadows has never been more fun.”

Hardcore Gamer - “This is one of the most satisfying and complete tactical roleplaying experiences to come out of 2013 and realistically the last few years.”


Strikefleet Omega
Harebrained Schemes (2012)
Published by Six Waves
Tools Engineer / LUA scripter

- Implemented most of the UI, main menu, store screens for iOS and Android platforms.

- Helped on integrating the use of Google Spreadsheets to automatically update game design features and mechanics.

- Hooked up achievements and other mobile device features.

- Worked on various features such as warping ships in, mining, asteroids, touch input, game loop, resolution resizing.

- Technologies used: LUA, MOAI, iPad, iPhone, Kindle, Android, Google Spreadsheets, ANT, Git



EGM - “May very well be the best strategy game available for phones and tablets right now.”

Gamezebo - “A must-download for anyone who enjoys games that require fast reflexes and quick thinking.”

RTS Guru - “It’s like Titan AE and Tower Defense had a baby!”

TUAW - “Strikefleet Omega is an excellent take on line-drawing and strategy, and it’s well worth the free download.”


Crimson: Steam Pirates
Harebrained Schemes (2011)
Published by Bungie Aerospace Corporation
Tools Engineer / LUA Scripter

- Built the entire level editor in WPF and C# that all designers used to make all the levels.

- Level editor can place and edit player ships, place terrain, create locations, paths, flags, and create triggers for game logic.

- Implemented most of the game shell and UI such as main menu and detail cards.

- Wrote much of the trigger-based game logic.

- Worked with Bungie's test team to fix bugs.

- Technologies used: C#, WPF/XAML, OpenGL, LUA, MOAI, iPad, iPhone, SVN



Apple’N'Apps“Crimson: Steam Pirates is an outstanding iPad gaming experience that allows you to dive deeply into the steampunk pirate and sea battle theme. The game just may be the best strategy game in the App Store, and it’s designed so well to fit the iPad. Crimson: Steam Pirates is such a great download for free as you get the whole first saga, and you’ll definitely want the $1.99 second saga after playing the first. Hit the deck, ready the cannons, and fire up the game on your iPad.”

Slide to Play“Crimson: Steam Pirates is like a good book and a game of chess rolled into one. (A) Must Have download.”

Gamezebo“The most fun we’ve had on the high seas since Sid Meier’s Pirates”

AppAdvice.com“The game’s steampunk aesthetic is gorgeous, and almost as enjoyable as the writing’s snarky attitude. The gameplay itself is engaging, and fresh enough to keep the attention focused on the story. Crimson: Steam Pirates just offers a rewarding strategic experience.”

Suite 101“Rest assured, Crimson: Steam Pirates is a top rank title, with excellent graphics and gameplay married to a compelling storyline. This Steampunk-themed adventure belongs in the library of of every iPad gamer and rivals the HD version of Battle for Wesnoth as the top strategy game available for Apple’s tablet computer.”


Go Go Kiddo!
Go Go Kiddo (2011)
Tools Engineer / LUA scripter

- Built various tools and level editors in WPF and C# that designers used to make levels for Letter Launch and Letter and Number Tracing.

- Wrote all of Stickerbook activity in LUA script from UI to touch mechanics to camera features.

- Hooked up achievements and other mobile device features.

- Worked on the tracing mechanics for Letter and Number Tracing.

- Worked on game shell and UI of main menu, stickerbook, cartoons, and piano.

- Technologies used: C#, WPF/XAML, OpenGL, LUA, MOAI, iPad, iPhone, Kindle, Android, SVN



Geek Mom - “…manages to mix education, fun, and creative play in a way that will engage kids for hours.”

Squidalicious - “…a brand-new app from a team that has obviously invested much time observing the apps kids like to play, and using that information to create “Vitamin Fortified Fun.” They did a great job; in fact I think every one of Go Go Kiddo’s activities could be a stand alone app.”



Pitz Blitz
Global Game Jam 2016 - Theme: Rituals
Team of 5
Ancient Sports Game That Incorporates Rituals As Action Sequences

- Made in Unity3D in 48 hours.

- Create rituals comprised of small actions like jump, dash forward, grab, throw into a sequence mapped to one of two inputs.

- Try to grab and throw the ball into the center ring from the opposing side.

- Up to 4 player multiplayer with AI.




Cat Simulator 2014
Joke Project Done in 48 Hours
Team of 1
Cat Simulation Game Where The Cat May Or May Not Follow Commands

- Made in Unity3D in 48 hours.

- Can click objects to queue tasks for the cat.

- Randomly, the cat follows or ignores commands, or queues their own tasks that is loosely based on their stats which are also random.

- With stat tracking and achievements.



Battle Switch Arena
Ludum Dare 27 Game Jam in 48 Hours - Theme: 10 Seconds
Team of 1
10 Second Terrain Switching First-Person Shooter Arena

- Made in Unity3D in 48 hours.

- Every 10 seconds, the world generates a random cave-like level where the walls fall from the sky, then the next 10 seconds the walls drop through the floor and despawn.

- Cube enemies spawn and can either try to run into the player, run from the player, or move randomly.

- The player can shoot enemies to gain score.





Senior Game Project for DigiPen (2009-2010)
Technical Director, Team of 3
3D Driving Arena Action Game

- Built the architecture for the game engine and logic.

- Focused on creating a robust Singleton object-oriented design for the engine to facilitate the work of other teammates.

- Wrote the memory pool-based memory manager and message system.

- Created a level editor within the game engine allowing level editing during game play.

- Assisted in implementing PhysX.

- Implemented much of the game logic using LUA scripts.

- Wrote much of the math utilities such as vector and matrix math, and simple geometry collision detection.

- Technologies used: C++, DirectX, PhysX, FMOD, LUA, XML, SVN


Junior Game Project for DigiPen (2008-2009)
Product Manager, Team of 4
3D Puzzle Game

- Developed the object factory and object management.

- Implemented a template-based particle system so that policies could be written and attached to create various particle systems easily.

- Helped to construct the game engine logic combining the other engines.

- Wrote the sound engine using FMOD.

- Technologies used: C++, OpenGL, FMOD, XML, SVN


Super Water Adventure
Sophomore Game Project for DigiPen (2007-2008)
Designer and Producer, Team of 3
2D Sidescrolling Action Adventure Game

- Created the physics engine with integration, collision detection, and collision resolution.

- In addition to the physics engine, wrote 2D water physics.

- Wrote the sound engine using FMOD.

- Designed the game play, the player, the enemies, and idea of the game.

- Compiled weekly progress reports and made sure the team was on track.

- Technologies used: C++, C#, DirectX, FMOD, XML, SVN



Graphics and Animation Engine
Individual Project for DigiPen (CS460)
DirectX Graphics Engine with .X Model Loading and Animation

- Built the framework from scratch.

- Implemented DirectX for Graphics.

- .X model loading with manual parsing.

- Quaternion math and VQS for animations.



Cloth Physics Engine
Individual Project for DigiPen (PHY300)
Cloth Physics Engine using Constraints

- Cloth Physics using springs and constraints.

- Euler, Velocity Verlet, and RK4 integration implemented.

- Can change various factors such as wind, cloth length, width, and distance, and able to unpin the cloth.



AI A* Pathfinding
Team of 2 Project for DigiPen (CS380)
Experimental A* Pathfinding using Spring-Based Physics for Formations

- Implemented A* pathfinding.

- Use of spring-based physics for formations using constraints.

- Also simple flow field implementation along walls.

- Formations based on .XML templates.

- If constraints are too far apart, the constraints will break and remaining objects will form a new formation and pathfind for themselves.

- Formations will reform if available while objects of different formations are selected.



Bezier Curves, Splines, and B-Splines Editor
Individual Project for DigiPen (MAT300)
Editor for Different Implementations of Bezier Curves, Splines, and B-Splines

- Bezier Curve implementation using NLI-form, BB-form, and Midpoint Subdivision.

- Splines implementation using Polynomial and Spline.

- B-Splines implementation using Knot Sequences.

- Able to move and add control points.

- Able to toggle different debug information such as shells, lines, control points.




Reverse Words
Reverses the words in a text input but not letters

- Written in F# in Visual Studio 2008

- Minimal code and optimized for memory and time.

- Algorithm first splits the input string into a sequence of strings as words with delimiters of spaces and newlines, then uses fold to reverse the sequence, and finally uses a combination of fold and StringBuilder to combine the reversed sequence into a string.



Boggle Solver
Finds all possible words in an n x m Boggle board within the rules of Boggle

- Written in C++ in Visual Studio 2008.

- Includes saving and loading input boards.

- Optional console for debug and timings.

- Changeable minimum letter words.

- Uses the Scrabble Tournament Word List as a dictionary.

- Dictionary implemented as a trie graph for fast prefix lookup.



Links Configuration
Finds a possible configuration of 2 links, end to end, with one end at a target

- Written in C++ in Visual Studio 2008 using DirectX SDK (June 2010).

- Optional console for debug and timings.

- Can move the camera in spherical coordinates around origin.

- Can move target and start point of first link using keyboard.

- Uses a closed-form solution to the link configuration.



Char Distance Checker
Checks if there exists an occurance of firstChar or secondChar in inputString within maxDistance

- Written in C# in Visual Studio 2010 Express for Windows Phone in Windows Phone 7 platform.

- Optimal solution for space and time within C#.

- Implemented automated test case for checking all distances within maxDistance for set inputString, firstChar, and secondChar.



Output Clockwise Matrix
Output a matrix of any size clockwise starting from the top left without any repeats

- Written in C# in Visual Studio 2008.

- Includes saving and loading matricies.

- MATLAB matrix input style.