Feb 6, 2018
Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.
Hackathons, mixers and contests like the Qualcomm® Snapdragon™ VR Dev Challenge are great ways to hone your coding skills, break new ground and swap ideas with your peers. And they’re even more fun when you win. Just ask E McNeill, who took first place in the competition we sponsored to create a mind-blowing Extended Reality (XR, including AR and VR) experience powered by Qualcomm Technologies.
E really had his ducks in a row for all phases of our Dev Challenge, which Machinima turned into a five-part video series that shows you how competition among three XR pros can run the gamut from grueling to glorious. We’ve asked E to write the following guest post summarizing the lessons he learned about goals, constraints, organization, focus and especially his demo presentation at the end. Take heed and stay tuned for more developer contests here at Qualcomm Developer Network.
As a nerd who works alone in front of a computer, I didn’t imagine that I’d ever participate in a reality show. Even now, it sounds like a recipe for disaster. Yet somehow, the VR Developer Challenge turned out to be one of the coolest things I’ve ever been a part of, and I think the biggest reason is that it featured a strict time constraint (just one month!) and forced us contestants to focus on the most important aspects of game development.
This sort of time-limited game development contest is usually called a “hackathon” or “game jam”, and I’ve always found it to be a useful exercise. Not only does it teach you how to work quickly, but it illuminates which parts of the development process are the most critical. Most of the games I’ve launched were first prototyped in game jams, and along the way I learned a few lessons about how to make the most out of these events:
1. Determine your goals
What are you hoping to accomplish? When there are prizes involved, there’s a ready-made answer: to win! But your goals could go beyond simply taking home a trophy. For instance, you might want to learn a new piece of technology, or to build a showcase app for your portfolio, or to just have fun.
In my case, I usually want to build a prototype that can be expanded into a commercial game if it turns out well. For instance, in the VR Developer Challenge, I struggled to decide which game idea to pursue for over a week. Eventually, I decided to build a strategy game because I felt it had more potential than my other ideas in the long run. It might not have been the easiest to execute in a short time, and it might not have been the best-suited to impress the judges, but it was the one that felt right to me.
Beyond that, you should put some thought into what sacrifices you are (and aren’t) willing to make. In my case, I knew the contest would put pressure on my personal life. I did my best to manage and prepare for that, but I also set limits ahead of time. I made sure to carve out time to hang out with my girlfriend (now wife) Nicole, and I was always willing to stop working if something truly critical came up. I wanted to win the competition, of course, but I didn’t want to lose the other important things in my life.
2. Understand your constraints
Every game jam imposes its own rules and limits. How much time do you have to finish your project? What kind of help can you get along the way? Are you allowed to buy assets, or to re-use old work?
The VR Developer Challenge had an especially strict set of rules. We could buy assets under certain conditions, but we couldn’t re-use anything from previous projects. We could get outside help, but only from one other person. We had 30 days to work, but a significant portion of that time would be taken up by the process of filming the show. I took careful note of these rules before the competition began.
You also should take your goals into account. In fact, you can almost treat them as if they’re a set of constraints in their own right. Whether your goal is to impress the judges, to use a certain technology, or even just to enjoy yourself, you can design your project with that in mind.
3. Organize your resources
Now it’s time to strategize. Given your goals and constraints, how are you going to deliver a successful project? I tend to view this problem through two lenses:
First, figure out how to get the best bang for your buck. Try to find places where you can get surprisingly good results without spending much time or money. For example, I chose to make a game with procedurally-generated levels. Since I could change the algorithm’s settings and gradually increase the difficulty, that meant I could offer “infinite” levels right off the bat. I also saved time by using a simple low-poly “holographic” art style, by buying most of my sound assets, and by featuring large swarms of very simple 3D assets instead of relying on more complicated custom-built models.
Second, wherever possible, turn your weaknesses into strengths. Take whatever seems like your biggest disadvantage and transform it into an advantage. Despite all my efforts, I knew that I wouldn’t have time to make a big game. Although I was trying to make a deep and complex strategy game, I couldn’t afford to include lots of unit types or complicated base-building or sophisticated AI or any of the other pillars upon which big-name strategy games are built. So, instead, I designed the game around bare-bones mechanics, and I made that a selling point. It’s simple, yet deep! Easy to learn, impossible to master! Complex, but elegant!
Essentially, you ought to figure out what your advantages are, and you ought to keep an eye on efficiency from the start. Once you’ve done that, it’s time to execute the plan.
4. Be focused and flexible
Obviously, when you’re working under a punishing time limit, you need to put in a lot of effort if you want to succeed. It’ll be hard work. There’s no avoiding it.
However, you also need to be flexible. If you never take your eyes off your work, you might not notice when you make a wrong turn. You have to be able to step back, evaluate where you’re going, and change paths when appropriate.
In the world of game development, this requires playtesting. You’ve got to put your game in front of other people, let them play it naturally, and watch their reactions. As illustrated in the show, this can be a painful process. Nevertheless, it’s necessary! If your game has issues (and it always does), you want to discover them early, while you still have time to address them.
When you’re in the middle of a project, it might feel like focus and flexibility are contradictory opposing values, but you need to do both if you want to do your best work.
5. Put effort into presentation
The work is not done when your game is complete. You still have to present it to the world! Most goals are hard to achieve unless you share your project with other people, and that requires a whole new set of skills.
It’s common to run out of steam after the time limit is up, but your work is all for naught unless you put some effort into the presentation. Set up a tutorial or some other way to welcome new players. Take some good screenshots, get some nice video, and describe your game in a way that communicates why it’s special. Think about why people might be interested and do your best to capture that interest!
For the finale of the VR Developer Challenge, we were told that we would have five minutes to pitch our game to the judges before they tried it out. That’s not what I’m used to, and of course I was nervous. I wrote a draft for my pitch a few days beforehand, rehearsed it in front of other people, revised it, and practiced it over and over. When the time came to deliver the pitch, I was still nervous, and I stumbled over a few words, but overall it turned out much smoother than my first draft! The practice paid off.
I felt like my pitch helped to shape the judge’s impressions, and I believe that the effort I put into the pitch served to highlight the amount of effort I put into the game itself. That is, it wasn’t just about what the presentation said. It was also about the implicit message hidden within the presentation.
The wider lesson
If you’re doing a game jam or hackathon, I think this is all good advice.
If you’re NOT doing a game jam or hackathon, I STILL think it’s good advice.
The reason I love game jams is because the time limit forces me to focus on what’s really important. And all those things are still important when the time limit is removed! No matter what project I’m working on, it’s vital to understand my goals and constraints, to strategically consider my advantages and disadvantages, to work hard while staying flexible, and to remember to present it properly when it’s finished.
I don’t always succeed at following my own advice. But when I start losing sight of my goals or getting lost inside a big project, I try to imagine that I’m halfway through a game jam. Once it feels like my time is precious and resources are scarce, all the unimportant things fall out of view. Finally. I can see what truly matters to me, and I love that feeling of clarity. I encourage everyone to give it a try.