From Webdev to Gamedev, Part 3

This is a continuation of my first and second posts detailing my journeys as a programmer. This final post will be about returning to the land of Gamedev, and once it’s done, I hope to write more about games that I love, and what makes me love them.

In my last post, I explained how I went from a junior sysadmin to a Sr. Technical Yahoo working on one of the most exciting social web projects in a matter of 5 years. It’s dizzying to think of how quickly I ended up with so much responsibility, but I learned to ride a wave when it’s there for you, and do your best to get up on your board again when you fall down.

At Yahoo, I had to re-humbleize myself, as they do business at a scale that is unimaginable until you’ve actually seen some of it. You can’t imagine what it’s like to prepare for gigantic mainstream audiences. Think Grand Unified Theory of n00bs, but having to prepare for that from the very beginning.

It took about a year, but I was able to get up to speed and lead the technical side of a transition from small, good ol’ Upcoming.org to Upcoming.yahoo.com, ready to bring in a much wider audience and handle substantially increased traffic. We continued to be a tiny team, and making it all the way to a yahoo.com subdomain was a big accomplishment for us.

While attending SXSW in 2007, I got kind of bored with the insider-ish web panels where nothing substantial was being discussed, and instead I headed over to the gaming panels to see what that was about. I ended up being wowed by the content, and inspired by the conversations that were both foreign and familiar. The gaming industry was going through many of the same transformations to handle the networked expertise of the new generation, and it was fascinating to see how they were trying to incorporate participatory media into games. It inspired me to go deeper and analyze game mechanics more deeply. I ended up writing a well-received three-part analysis of avatars in which I tried to sort out the orthogonal components of social representations of ourselves that we use on the web and in games.

Because of that interest of mine, I spent part of my time creating an achievements platform for the web at the internal incubator called Brickhouse. It was intended to be an XBOX Live-style achievement system where anyone could make an achievement for anyone else, but I eventually realized that it wasn’t the right time or place to do the Bravonation experiment and nurture it for three or four years until it could grow. Andy had a great writeup of it here. Part of the concept – the platform API for achievements and recognition – seems validated by the achievement platforms operating for iPhone games such as AGON Online, but the other part still hasn’t really been accomplished yet.

I resigned from Yahoo! in March of 2008, two and a half years after starting there. I had come in as a social media programmer, and the trajectory I was on when I left was leading me towards the intersection of social websites and games. I was kinda burnt out, and I spent a good amount of time just playing games again, in a way I hadn’t really done since middle school. I did some consulting work for great clients, and kept myself afloat that way. Actually, because of my love for Halo 3, I ended up meeting some really interesting people, and started renting studio space from the Flight Comics folks.

It was here that I started developing some game prototypes, such as Skybox and the work-in-progress Monster Boxing title. It’s going to take some time to really transition my skills, but the availability of Javascript-like Unityscript in the Unity3d game engine is helping me get going quickly. Right now, Apple devices are my target of choice, and it looks like it’ll be that way for a few more years at least. It’s impossible to tell what the future holds, so it’s time to just hustle my way to building games, websites, and software that helps people out. Thanks for reading, and I hope you’ll stay tuned for blogging that will be less about myself and more about actual games. :)

From Webdev to Gamedev, Part 2

This is a continuation of my first post – you can read it here.

When you work on a project in your own time, on your own terms, you learn what it means to create something new. It’s the second most important thing you can do to advance your skills, and the only thing more important than that is finding sensible and well-rounded people to eat lunch with on a daily basis. Actually,  it can endear you to a special set of people who also create new works, and thus, you can more easily convince them to eat lunch with you. In my last post, I mentioned that I spent 5 months of unemployment working on a web application that I intended to run as a business if I didn’t find a job, but ended up putting it aside permanently when I got my first “real” job at a software startup as a sysadmin. A few years later, I received a referral from a friend for a programming position at a financial company in Santa Monica by the name of Dimensional Fund Advisors. The hiring manager was Andy Baio, the author of one of the most influential linkblogs on the Internet, waxy.org.

It turned out that the thing which interested Andy most was the project I’d worked on during those 5 long months of halfhearted job searching. Although it was unfinished, I showed him and his boss the demo, and they were impressed to see another person who works on personal projects on the Internet with no outside pressure or motivation. Well, I suppose they were impressed, because I got the job. Over the next couple of years, I took on some seemingly insurmountable programming challenges corresponding to complex business needs, and I also got to know a wonderful cabal of lunch partners at Dimensional.

All of that was pretty great and lucky by itself, but it got even greater and luckier when I started helping Andy work on Upcoming.org in his free time. It was a small, niche web 2.0 collaborative event calendar, and I could see some areas where I could assist in getting features online quickly. I was once again burning the midnight oil working on a project outside of work, just for the joy of seeing programming make things better. It was through this lucky break that I ended up becoming a co-founder of Upcoming, which was acquired by Yahoo a month after I’d finished my major daytime work project and resigned from Dimensional in good spirits.

The amazing thing about this part of my story is that I’d never really made anything of that personal project for years, but that seed that was planted bore far more fruit than anything else I’ve done in my programming career thus far. I was headed into one of the big Internet companies of Silicon Valley as an entrepreneur, and I was about to be humbled, adapt, and then grow once again as a programmer.

To be continued in Part 3…

Post, First: Jumping from Webdev to Gamedev

It’s been an interesting ride the past 7 months, making a transition from programming Internet-scale web applications to creating and publishing games for my iPhone. When I resigned from Yahoo in March of 2008, I wasn’t really certain what laid in store for me next. To bide my time, I picked up consulting gigs here and there, and also tried to take some time off to relax for the first time since graduating from USC and consider where I’d been and what I’d like to do. Looking back at my life thus far, I owe much of my career success to two passions of mine: games and programming. This is the first in a series of blog posts to try and write a story that goes much further back than that, but may be of interest to young programmers or IT people who aren’t really sure what will come of the seeds of knowledge and experience that they regularly sow.

If it weren’t for games, I’d probably have never started programming in the first place. I caught the programming bug in 9th grade, when I had a TI-81 calculator and a lot of spare time. It was way more interesting drawing pixels on the screen that would entertain my friends than it was to be the captain of the high school math team. Everyone’s first steps are amateurish, but I seriously consider mine to have been downright idiotic. I made a frogger clone, a Star Wars trench run clone, and finally, a simple ASCII character chase game called BAM. Of all of those, BAM taught me that a simple mechanic done well outdoes all of the graphical work you can try to do in a game.

My interest in learning more programming skills didn’t really abate, and when I found myself without work for 5 months in the midst of the tech bust in 2002, I tried to make my first web application, a collaboration suite for graphic designers called PadTie Proofing Site. I convinced myself that names didn’t matter, and plowed forward creating a frame-based way for designers to upload proofs, collect feedback and approvals from clients and sponsors. It wasn’t necessarily a leap of faith that I was taking, and luckily I got hired before I had to try and market the product with that atrocious name. When you don’t have a job, and nobody’s hiring, it’s important to still make some magic happen and build your skills, even if it’s not a “success” per se. The only time you’ll truly push your limits is when you feel like you’re working for yourself, so taking on a personal project when you’re out of work gets my Good Hustle seal of approval.

As it turned out, I got a referral to a Sysadmin job at a local startup, and it was there that I learned important lessons about how to not to run a business by having a front-row seat to a doomed company. I ate a slice of humble pie and learned how to script in bash, ksh, batch, and more. I took on as many responsibilities and as much work as I could, and tried to make sure to be of as much service as I possibly could. Later, when the company folded and I got laid off, my past would come back to reward me in ways that I never expected.

I’ll continue onwards in my next post, because it looks like Skybox 1.1 was just approved, and I’ve got to stop reminiscing and get my efforts oriented around that instead. :)

To be continued in part 2…