Cool Jams Inc – Making a Pokémon Clone with Crayon Language


Earlier this month, I attended a local game jam called Cool Jams, Inc., which was inspired by (and not necessarily affiliated with) Polygon’s CoolGames, Inc. podcast. The premise of the podcast is to take terrible game ideas from Twitter and flesh them out into a playable game design. The jam’s premise was for people to take random ideas from the show and actually build them, while often adding their own spin to them. The event was hosted at Seattle’s own Indies Workshop, with an page for submissions.

I was really looking forward to this jam, mostly because I knew a lot of people who’d be there and I was looking forward to hanging out with everyone. I’ve participated in tons of game jams before, so I was excited by this jam’s change of pace. In that spirit, I decided ahead of time that I wouldn’t use Unity for this project. I was originally thinking of using Flash and ActionScript 3.0 just for nostalgia’s sake. But then my friend Blake O’Hare jokingly suggested that I use his Crayon programming language, and I thought, “sure, why not?”

Crayon is literally a programming language that Blake made. It’s not a library. It’s not a translated language. Crayon projects run on their own VM which can be exported to a variety of platforms including Web (JS & HTML5), C#, Java, Python (PyGame), and Android (still experimental). I’ve seen Blake make some pretty cool games using Crayon, and the idea of trying it out sounded pretty fun.

Continue reading

Seattle VR Hackathon Project: Disaster Recovery Training Simulator


It’s time for another mini-postmortem! Last weekend I attended the Seattle VR Hackathon, and we ended up making a VR crane simulator. I worked on this project with Sean Siem, Staishy Siem, Maggie Lu, Jae Nwawe, and Matthew Chan.

Download: Disaster Recovery Training Simulator
Minimum Requirements: Windows, Vive, VR-ready specs

The VR Hackathon group has organized several hackathons around the world. This was their fourth time hosting a Seattle event, as well as my second time attending their event. As someone who attends almost every hackathon and game jam that he sees, I can confidently say that the Seattle VR Hackathon is one of my favorites. Few events are this well-run, but there’s also just something about the Seattle VR community and the organizers that gives this event an insanely good vibe. If you get a chance to attend one of these hackathons in the future, I highly recommend it.
Continue reading

TankXP VR: Drive a tank to fight aliens


This weekend I spent 48 hours making a VR game for Ludum Dare #36 called TankXP VR. The theme for this competition was “ancient technology.”

“Oh no! An alien invasion! Time to strap on your Vive and show them who’s boss using your awesome tank. Unfortunately, your tank’s operating system seems to be a little out of date….”

Download TankXP VR for Windows & HTC Vive
*Requires at least the smallest Play Area size (Standing VR not supported)

Continue reading

Six Month’s Worth of Updates, News, and Games


It’s been six months since I’ve updated this blog, so I thought I’d make a mini-post about my decision to leave Microsoft, plus a bunch of updates on the major things that I’ve been up to lately:

1) Leaving Microsoft, Freelancing as a Unity developer

A few weeks ago I left my job at Microsoft to focus on game development full time. Lots of people who make this jump go “full indie” by starting their own studio, but I decided to freelance instead, which frees me up to work on a per-project basis. Specifically, I’m specializing in gameplay programming, which is more focused on implementing mechanics, prototyping ideas rapidly, and iterating on current implementations to make sure they actually feel right when played. It really seems like the most natural role for someone like me who is both super technical and super design-oriented. You can check out my full portfolio at:

So why did I leave Microsoft? Whenever I tell other game developers that I worked as a program manager for an enterprise IT product called Azure Active Directory, they tend to assume that I was miserable there. According to stereotypes, people who make this kind of career jump usually hate their current jobs, or their passion for games is so extreme that it becomes a reason to hate their current jobs. However, I actually really enjoyed my years at Microsoft. I got to work with and learn from some awesomely smart people who are super passionate about what they do. Of course, my main career goals are in the games industry, but I’m not the kind of person who indulges in self-inflicted misery just because “it’s not games!”

I initially applied for the program manager role (which kinda resembles the “product manager” role in other companies) because the list of required skills had a ton of overlap with those for a game designer, skills that I wanted to learn. It also just looked like it’d be really fun since it was a technical, producer-like, entrepreneurial kind of job that had me designing features, talking to customers, prioritizing requirements, communicating and coordinating efforts across the team, studying the market and competitors, landing on implementation details with devs, and generally doing whatever it takes to make our product better. It was pretty awesome.

I pretty much got exactly what I was looking for. I was super motivated to learn and grow, and my understanding of the “manager” skill set changed dramatically. However, I eventually realized that my pursuit towards mastery was driven more by professionalism than actual passion for the skill set itself. I didn’t really want to specialize in program management, and I had a super strong itch to get back into programming full time. This realization was when I realized that it was time for me to move on, and now here I am trying to make a living out of making games. 🙂

Continue reading

#LDJAM Game: Interstate 34


Hey guys, I made a game for Ludum Dare #34 this weekend, and it won the 2nd place prize for single-person entries at the Seattle Indies LD34 event! Here’s the link to the submission, and below is a brief description of the game. The rest of this post has some fun facts on how this game got made.

Beat up cars smaller than you to get points!
Don’t get hit by bigger cars or you lose your combo!

Download & play “Interstate 34” (PC, Mac, Linux)
Download the source code (Unity Engine)

Continue reading

Magnet Ball Mega-Postmortem: How Learning on-the-fly Saved an Ambitious Student Project

basic gameplay

The following is my honors thesis, which is a research paper that I had to write in order to graduate with Honors from the University of Arizona. I had published the first two parts of this paper on my previous blog, but I have never published the full work until now. While I did try to adapt the tone of the paper to be more fitting for online reading, the paper is mostly unmodified, aside from a few major additions made to part four.

I’m going to warn you now; this paper is LONG. One of the goals when I was writing this was to show enough detail so that students who wish to try running a project like this could learn from our process and our mistakes. This project was a ton of fun, and I hope you’ll have fun reading about it.

Table of Contents

  1. Intro
    1. Abstract
    2. The Team
    3. Introduction
  2. PART ONE: Recruiting and Managing People
    1. Starting the Project
    2. Designing the Team Experience
    3. The Recruitment Process
    4. Unfortunately, Our Team was Too Big
    5. Availability and Communication Problems
  3. PART TWO: The Senses Project
    1. A Broken Pre-Production Phase
    2. The First Prototype
    3. The Second Prototype
    4. Turning the Project Around
  4. PART THREE: Pre-Production Done Right
    1. Fixing our Creative Process
    2. Rapid Prototyping and the Creative Process
    3. The Fruits of Pre-Production
    4. Prototype 1: Fighting Blind
    5. Prototype 2: Detonator
    6. Prototype 3: Particle Racer
    7. Prototype 4: Runner
    8. Prototype 5: Magnet Man
    9. Prototype 5, v2: Magnet Ball
  5. PART FOUR: Prototyping until the Bitter End
    1. Our Creative Process during Production
    2. Our Development Process during Production
    3. Thoughts on the Prototype-Centered Process
    4. Things I Would Do Differently
    5. In Conclusion

Continue reading