It was love at first sight
I remember my first encounter with Game Programming. Me and my cousin Tony were flirting with the idea of writing our first computer program. Actually we were just typing code directly from a programmer’s magazine, exactly as it was written, curious to see the end result. It should have been an awesome game themed around “The Hound of Baskerville”. The language was BASIC (that’s not an adjective, that’s the actual name of the language!).
Of course, we weren’t succesful at first try. The program had a bug, due to a typo from failing to copy word for word from the the magazine. The main hero, some dude supposed to run away from a dog, was not running away from the dog!
Tony kinda lost interest in the program (and that’s why he ended up marrying Medecine!). But I persisted! Eventually, after adding the missing ‘$’ at the end of the word ‘INKEY’, the program ran smoothly! The stick figure like dude was moving around, trying to avoid the badly drawn figure representing the dog.
With that, I learned my first coding concept: the syntax for getting input from the keyboard!
The younger years
I wasn’t about to let go my newly discovered passion so easily. With the ability to create things, I made my first game: World of Turtle!
Of course, the World of Turtle now isn’t the same as the first version, which was all in ASCII art, with a turtle that looked like this:
Oô ' <= What? Doesn't this look like a turtle to you?
└┘
I spent my nights writing programs, and my days in school designing levels for World of Turtle.
My interest in game programming grew steadily as I was making more and more small games, with little experience but a brain eager to be filled with knowledge. The first half of Game Programming had already seduced me, but I now wanted to know more about the second half: Programming.
The breakup
As I was learning more about programming, my interest in algorithm did grow to its peak, but I found myself spending less time making games. The only thing I remember doing was porting World of Turtle to JavaScript.
Somehow, being a software engineer at a big company wasn’t what I had envisionned for my life. I felt that something was missing, something very important, which had to do with fun and creativity.
The way I interpreted my disatisfaction was obious and simple: I was sick of programming!
With that in mind, I made a bold and reckless move. I quit my first fulltime job and decided to end my career as an engineer, by abandoning programming and starting a career as an artist. Basically, I just decided I didn’t want to become an engineer anymore. Instead, I would begin the journey to become either a great movie director or a great animator.
My chances with Game Programming pretty much vanished at that point, since you cannot make games without programming!
Missing my first love
Things went well with my new passion for a while. I was a beginner again, a student of art. I was drawing, learning about film history, learning to make films and even acting, taking all the fun classes that I skipped in college because I deemed them useless. After a year of producing short films, I joined the Academy of Art as an animation major.
I wasn’t getting the best grades, but it felt easy, because I was doing something fun. Watching animation, drawing animation, rigging animation…
It didn’t feel like work at all.
But then, I found myself doing something I didn’t expect. I was sneakingly programming during the 3D animation lectures, the same way I used to sneakinly drawing levels of World of Turtle during biology lectures in High School. The animation class was difficult to understand, and despite a background as a computer programmer, I had trouble building 3D models in Maya. Not that every programmer knows how to make 3D models, but I would expect it to be more natural for me than drawing frame by frame animation, yet it wasn’t the case.
After being constantly distracted with programming in my animation lectures, I got a grade so bad that it forced me to retake that class the next semester. Soon, both my finances and my grades hinted me to perhaps try something else, something I’m better at.
Without much notice, Game Programming just showed up and came back into my life, begging me to take her back! (No I’m lying, I was the one doing the begging). I managed to get a job as a game programmer in a tiny startup, thanks to whatever knowledge I scraped from learning Flash and ActionScript on my own when I was an artist.
An unstoppable passion
The startup was a blast, but didn’t last forever. A year later, things went downhill. I got a job as an engineer in a big company… AGAIN! But this time, things were different. I didn’t felt that resentment for programming I used to have, and this is the explanation: I did not stop making games!
With what I learned from the startup and thanks to game jams, I kept making games independently, like a machine! From that, grew Dobuki Studio, the place where I hold all the treasures of my indie game developer era…
Fear of commitment
Somehow, I managed to keep myself excited about my “job as an engineer in a big company” by relating everything I was working on to gaming. It worked for a while, and becoming a better Software Engineer did mean becoming a better Game Developer. I worked on real time communication so that I could do real time multiplayer games, I learned mobile development at work and mobile game development at home…
Yet, there comes a point where enough was enough. I couldn’t really delude myself anymore that every elements of a business application can be shoved into a game. Eventually, I was out of the job, and forced make decisions about what to do next.
The obvious course of action would be to apply for game companies (which I did), but there was another option on a side, one that was also very attractive. An opportunity to work as an engineer in a BIGGER COMPANY!
And that compagny was Facebook. Basically, I reached the final round of interviews, and just had to make a final push to the finish line.
For me, working at Facebook would mean two things:
As an engineer, working at Facebook is like reaching the elite of engineers (the only other company that qualifies for that is Google). I thought I would be in a company I would no longer have to think of leaving. Best of all, I would be among some of the smartest engineers on the planet.
That also meant leaving Game Programming behind. Of course, I could still make indie games on my own, like I used to. But in reality, each year spent working outside of the game industry greatly reduced my chances to work inside of it. This meant that my relationship with Game Programming would never mature. It would always be something I do on a side, it would always be only… a hobby.
I came to terms with that, because working at FB was really what I wanted at that time. Making games on the side like I used to was a perfect compromise for me, as long as I worked at one of the best software companies on the planet. I practiced for FB more than for any interview I had before, determined to get what I want.
So, that was it. I was ready to say good bye to my big dream of becoming an amazing game developer. Gamedev was going to be the one who got away, the one that I told we’re just friends, the one I’d only hang out with once in a while during the weekend…
Then something magical happened.
I FAILED FACEBOOK!
Now, you maybe thinking that it’s a bit presumptuous of me to think I couldn’t fail the FB interview, but it’s not that.
I was ready to fail if I had to, but I left the interview thinking that everything went great! I felt that I did my best and could hardly imagine doing any better. The interviewers were very nice and in a good mood, so I thought they were satisfied with me. I know my coding performance was not absolutely perfect, but from the vibe I got, I thought it went very well.
So the rejection from FB came as a surprise to me. That meant basically that what I thought was great by my standards was considered mediocre by their standards, and I guess, what was good enough for FB, would be what I’d consider as perfect!
Failing Facebook was a hard pill to swallow at that time. Perhaps I underestimated how hard the interview would be. Yet if I knew it was that difficult, I wouldn’t even think I had a chance in the first place!
But guess what. Things actually turned out for the best.
Aside from Facebook, I only had interviews lined up for game companies. At that point, Game Programming had won. There was no other path for me than to go for the game industry. I was pretty much told by FB that I didn’t have what it takes to be among the elite of programmers. Not being part of it, I had no other interest than making games.
Game Programming was looking at me, laughing her heart out, and I was looking back at her, my one and only doomed destiny.
Inside of me, I was truly happy.
Eventually, I got a job at a game company, a company I might never want to leave. And if I was ever to move on, it would be to another game company (maybe my own game company!). It was pretty much decided at this point. I would stick with Game Programming until the end of time, till death do us apart.
Yet did I deserve her? I was ready to leave Game Programming behind, treat it just as my passtime, the one pal I’d go to when I was bored. How could I do that? How could I desert my one true passion? And how come I still ended up with her?
The way I see it
I can see now that following my passion is a better outcome than working at Facebook. When I think about that interview I so gracefully failed, many interpretations come to mind:
Did God had something to do with it? Perhaps he saw that I wasn’t destined to follow the paths of engineers, so He somehow decided the outcome of that interview…
But for those atheists out there, that is of course not a valid explanations. Perhaps that passion of mine I was trying to fight, subliminally, made me fail the interview without realizing it. After all, I had to lie to myself to convince me that making games was not my number one priority as a software developer.
There’s another interpretation I do like. I think of it as that Tiger Story in Life of Pi. The fact is, I never tried to hide my passion for making indie games. It’s in my resume, my linked in, my Fireside articles, my eyes… Perhaps, the Facebook engineers, in their infinite wisdom, looked at the way I expressed my passion for gaming during the interview and saw further than I expected. They were so touched that they decided to give that passion a chance. So, being even smarter that I imagined, they rejected my candidacy because they believed I would achieve greater things as a game developer. I cannot disappoint them.
Of course, the most likely story is that I was truly oblivious to the fact that I am not that great at solving algorithms! After all, I always felt I was different from my coworkers at my previous company. They could talk great lengths about technology, a conversation I could not easily hold. There was always this level of interest about coding that I was never able to match and found almost “nerdy”. It was also possible that there was something other than technical skill that hinted the interviewers to the fact that I wasn’t a great fit (which is probably true!). Perhaps it was that gamedev aura of mine that revealed my bad coding practices and lack of discipline!
At the end, it was all Game Programming’s fault. My passion was too strong to be contained, so it spread out and pushed all the magical little forces in the universe. It caused a small nudge that made me study a itzy bitzy less for the coding interview. It added the tiny bit of bias that made interviewers wonder why I wasn’t pursuing my passion for games. It revealed that tiny vibe of insecurity when I had to show more interest in FB than any other game company.
Because my heart is set on game programming, I can never escape it, even when my brain tells me to.
Now a message to you readers:
“If you ever have such passion, there’s no need for me to advise you to follow your passion.
Rest asured, that your passion, will always, follow you.”
jacklehamster
12 comments