• Product description: Free-to-play “Group Decision” game for iOS and Android
  • Release Date: December 2015
  • Website: ModernCoalition
  • Product history/genesis: A startup focused on improving voter engagement
  • Team: Small group, ten total
  • Core Technologies: C# in Unity3D with a .Net based server
  • Most proud of: Implemented majority of project in roughly two months
  • Responsibilities: Client and Server coding

In March 2015 I was laid off from DeNA, just a few days after releasing Marvel Mighty Heroes. This was the end of an era for me, over a decade. I worked my way up from an independent developer porting Windows games to Macintosh, to writing next-gen cross platform games on mobile.

During the previous era, each opportunity was offered to me, without really having to “reach” for them. But this layoff was a hard stop. I had no idea what I was going to do next. I really thought I was out of the game development business. All the work I’d done was remotely for other companies. Where I live, there aren’t any game companies. And, other than the people I worked with, nobody had any idea I existed. I liked to joke “I’m the best game coder nobody’s ever heard of.”

I don’t recall how exactly this startup had heard of me, but we connected just before my layoff, asking only for counseling. They were not a gaming company in a classic sense, but one that was working on solving a problem by making a game. The idea was to make voting on issues into a game. One that you had to earn the right to vote for by playing minigames.

After a few months it became clear that I wasn’t finding reasonable options for non-game work where I live, so I offered my coding services to this startup in hopes that it would lead somewhere. The project itself wasn’t particularly complicated, but I did invest in learning enough server side .net to make the gameserver with it.

Eventually we hit a wall with funding, and it was either “ship it or close shop.” With so much of my own time and money invested, I didn’t want to let it go without a fight. In two months I tightened up what we had and shipped a working game to iOS and Android app stores.

In the end we couldn’t get enough players in the game to make it worth continuing, shutting the servers down a mere three months later. To this day I believe that with the right team this project could soar. Until then, adieu.

Marvel Mighty Heroes (iOS and Droid)

App Icon

  • Product description: Free-to-play four player Brawler game for iOS and Android
  • Release Date: March 31, 2015
  • Website: Marvel Mighty Heroes
  • Product history/genesis: Looking for a new game genre, we attempted realtime multiplayer in full 3D and succeeded
  • Team: Varied, largest team was 20. I was one of 5 client coders for most of the project
  • Core Technologies: C# in Unity3D with a Scala-based server
  • Most proud of: New Asset Bundle system that allowed bundle sharing and downloadable scene replacement
  • Responsibilities: Sole implementor of almost all UI for most of the development time; Tool development and support for rest of team.

A month or two before I came on this project, I was given the freedom to start working on taking existing code from our Hellfire project and organizing it so that we could share that basic code across new projects. While I was successful in starting a shared technology stack, it was clear that much more needed to be done to make it solid for other projects to use in earnest. Part of that stack was the Asset Bundle system rewrite.

In Unity3D, the simplest way to publicly download additional content like models and textures is to add them to a Unity-specific container called an Asset Bundle. This feature worked, but was under documented and difficult to use at the time in Unity3D version 3. We had some strong code for working with these asset bundles that was developed by the Hellfire team before I started working in Unity. However, the code was complicated and did not support the sharing of resources between different asset bundles. My goal was to fix that.

While I was working on that shared technology, it was determined that one of our new projects was going to need more client coder help than was available. Therefore when I was brought in, I was still developing that shared technology at the same time as implementing user interface designs in this project that already had almost a year’s worth of prototype work done on it.

I would end up spending most of the project this way, doing double duty as the only user interface developer as well as adding tools to make production easier as well as creating the new asset bundle system to make this large dataset manageable for devices. It was only three months before release that I was able to complete the asset bundle system.

As it turned out, Unity themselves had the same ideas I had about asset bundles. Not a month after completing my system, I learned that Unity 5 was including a new asset bundle system which did exactly everything I had put into mine.

All that aside, this was the most complicated user interface design I had ever attempted. Early in development I made this statement to our designer: “Go crazy, dream up anything you can think of, and I’ll try it. If I can’t do it, I’ll let you know.” Sure enough, I was able to make happen a lot of complicated scrolling contexts and interactions that had not even been dreamed of for the Hellfire project.

We support both phone and tablet devices, iOS’s few resolutions and Droid’s many resolutions, all using the same scene definitions. Each scene was put together based on virtual screen dimensions that scale the interface up but not let it get too “fat” and then use the “springs & struts” style of automated item layout to fill in the differences in device aspect ratios.

Other major improvements over the previous codebase was a new scene loading system, one that no longer assumed only one scene was displayed at a time. To make that happen I also had to rework how scene transitions worked, as well as seemingly simple things that became very complicated like handling the Droid “Back” button. All of this code written from the start with the idea of adding it to the shared technology set that I started with.

This was my largest project with this company, and sadly, my last. After twelve months of my work and just a few days after releasing to the public, I was laid off along with many other people.

Despite the difficulty of this project, I am still extremely proud of the work that everyone did on it. This is one of the projects where every single member of the team knew what they were doing and worked with each other to make it happen.

Resume List

Want to more “classic” view of my work history? Try these. I have quite the long history, so I’ve organized it based on what your interest might be. Also, each one has multiple file formats, so you can pull the one most likely to work for you.
Games Developer

Application Developer

Whole Enchilada (in case you want to see it’s full glory all in one shot)

Hellfire (iPhone Game)

App Icon

  • Product description: Free-to-play Card Collecting game
  • Release Date: April 9, 2013
  • Product history/genesis: This is the first Unity3d-based title for the company. I was brought on to add new features to the product.
  • Team: Lead Coder, Self, Three Coders, Three Producers, Multiple Artists, QA team.
  • Core Technologies: C# in Unity3D, with native Java and ObjC code for platform specific plugins.
  • Most proud of: Quickly learned Unity3D, and made significant improvements quickly.
  • Responsibilities: Added Special Dungeon features, Code Refactoring and Engine support

Flick Controls Appstore Image
While I had done a little research into Unity3D previously, I did not feel a need to get deeply into it. After my company was bought, they forced a new tech direction, and by the time they allowed for native game engines again, theComplex had stagnated for two years.

As things turned out, it was the best possible situation. The deeper I got into Unity3D, the more the engine resembled the core design ideals of my own. In fact there were a few situations where I was able to guess the internal design of some Unity3D features simply by imagining how I would have written it in my engine.

Deck Edit Appstore Image
While my tasks started small, in the six months leading up to this major release I touched nearly every facet of the game. Adding new user interface scenes, working with downloadable asset bundles, creating asset bundles, and adding to the sqlite data management system.

One of my major tasks was to make scrolling lists act correctly on the new iPhone 5 with its taller screen. Up to this point the game simply stretched the standard 320×480 scene to the larger aspect ratio, and the effect was noticeable. I rewrote major chunks of the scrolling system to support proportionally correct scrolling, while still filling the entire display.

I also was a significant part of creating a new event type, the “Special Dungeon.” In standard dungeons you can choose to play any specific round of the game in a largely static environment. Special Dungeons have a specific progression of rounds that got progressively harder. With each round you would visually “crawl” through the dungeon to face the next foe.

I have continued to make improvements on this title, but now am on to other projects at the company.