When I was younger, around my teenage years, I began dabbling in game development. I had always had an itch to make some kind of game before that, be it totally imaginary with toys, or even using buttons in PowerPoint to fake real interactivity. I just had an interest in building games for people to play. When I stumbled upon GameMaker (version 5 at the time), I found what would become a major hobby for years to come.
In just a few years time, I created and "published" upwards of 30 games with GameMaker. They were mostly all terrible, but I found a community of fellow bright-eyed developers using GameMaker at a site called 64Digits. According to my profile on that site, I joined August 6, 2005, meaning I just recently celebrated my 11th anniversary on the site. I was 14.
I still have some of my old titles up on that site. Embarrassing as they are to look back on, some still make me smile. Two in particular stand out: one series, one long-running project.
The series is what came to be known on 64Digits as "The BBQ Series," and featured members of the website as characters, all attending a bar-b-que in my backyard. The player had to complete puzzles and challenges to earn a badge on the site.
The other game was my longest running project, "Elicti." It was a massive (for my age) RPG with very remedial combat and a lackluster, contrived story-line. But hey, it was fun, even just for me to play.
Fast forward a few years, and one of the owners of the website made the crazy decision to let me become a developer for the site. It was a large PHP application, totally homegrown, made by people who were only mostly aware of what they were doing. I knew absolutely nothing about web programming at the time beyond basic HTML, but here I was with direct FTP access to the site (we worked on a strict "hey, don't touch that file, I'm editing it" principle).
Fast forward another few years, and now I'm suddenly all about PHP, in addition to my game development. At this point, my main knowledge of programming patterns had come from learning GameMaker's programming language "GML", and hacking on a messy PHP website.
I took that with me to my first internship at a major corporation, and from there learned more about JS and what it is capable of. I learned about Node and began messing around with some more modern technologies. Over time, that grew into what I thought would be my new passion: web development.
For a time, it was. To some extent, it still is. I love web development, I really do. I enjoy making websites that people can use. At this point, though, I had completely lost focus of my game development.
I had a big website side project freshman year of college. I scrapped that and worked on a website that allowed for music requests to be given to a host machine. I scrapped that and worked on myriad other web projects. I had so many little projects that cropped up in the web development world, but never went back to game development.
<canvas> html tag that everyone was so smitten with. So, I got to work, building out a game engine.
First I needed objects. Of course, right? Gotta have those. I needed a way to make game steps work. Logic has to go somewhere. I made collision detection so you could bash your head into a wall. I added native drawing types, view panning, audio and sprite asset management, everything I could think of to make a game engine. But why? I wasn't going to get a foothold in the polluted JS engine market, and I was a student at the time, I didn't have the resources to manage it even if it did get traction.
Looking back on it now, I know exactly why I did it. I didn't want to make a game engine. I wanted to make a game, but I was too scared to let myself outside of my little web development bubble, so I told myself that I needed to do more web technology work, not waste my time on building a game.
So I scrapped it. Just like the other thousand projects up until then. I never totally scrapped it though. I kept it up on github as if some day I'd come back and breathe life back into it. (Side note: never going to happen, good lord its some bad code).
I got a Job
I got a job. I was lying in bed one morning in college and got a call from a recruiter.
"I saw your github and thought you'd be a great fit. Why don't you come in for an interview?"
I went in for an interview. Nailed it, I guess, because just a few days later, the recruiter called and told me they wanted to extend an offer. I finished out my schooling, got the most expensive piece of paper I'll ever get, and headed off to work.
As a web developer.
It's been a little more than three years since then, and I'm at the same place. I like it there well enough. I like the work that I do. I'm working with exciting new technology (for the most part), making a website building webapp that hundreds of thousands, if not millions of people will use. I've been a key developer on the application since its inception. I even named it and made the initial commits. It's going to be our flagship software. Lives could be changed by it. That's pretty exciting. But more recently, I felt a little different. Something was wrong with me.
I began to realize that I was no longer programming outside of work. I tried to keep that going for a while, keeping programming as a hobby, but when you do web development for a day job, it can be uninspiring to come home and do the same thing, and that's all I had done for years: web development.
Something had to change, so I had the idea to download GameMaker again and give it a spin, just to see how it had evolved.
WOAH BUDDY. You've grown, GameMaker.
Undertale, Hotline Miami, Hyper Light Drifter, Rivals of Aether and more titles that you may have heard of were all made with GameMaker. It has turned from a hobbyist program to a serious studio.
Okay, so what could I do? I'll start working on a game, I guess.
Well to keep this post under 2000 words, I'll skip ahead and tell you that I tried making a few things. They all fizzled out after just a few weeks of development. They weren't keeping me interested. I guess that's normal.
But the rush, oh that rush of starting a project, getting a box moving around the screen, it was all coming back to me.
I am a Web Developer
After three years of full time work capping off about a decade of nothing but web development, I was beginning to notice that I was slowing down. After playing some with my game development, then going back to work and doing more web development all day, I noticed something pretty serious. I was a lot happier with the creativity of game development than the itemized list of work to do in web dev. Sure, I could be exploring more creative web dev outlets, but scratching that itch that I've had since I was a kid just feels right. It gives me a chance to build something I can totally call mine, back to front.
I am a web developer. By trade. My day job doesn't define what kind of a programmer I am, or what kind of a person I am. I thought for so long that I was a web developer. Period. Just "web developer." When people ask what I do, I respond "web developer." It was my twitter bio. It was my defining feature.
That's some bullshit. I'm a web developer by trade, sure, during the day. But, I'm more than that, and recently, I've realized that what I'm truly passionate about is making games. Even if I've never had a commercial release, or even if the games are just for me to enjoy making, I love making games. It's my passion. Web Development could be too, but more and more, I see it as a set of skills I can continue to use to prosper in the field, while I maintain my hobbies and passions.
I am a Game Developer
Building out spells in my game is the most fun I've had programming in years. #gamedev— Michael Barrett (@twisterghost) July 26, 2016
Turns out, I'm a game developer by passion. Turns out, I really, really like to build game worlds and construct something fun to play.
Turns out I'm working on a project, and have been for the past three months. I've been tweeting about it, and even posting here about it a little bit (though admittedly, also posting about aforementioned scrapped projects).
I took a week off of work recently to explore this project and see how I would like to continue working on it. That week was one of the best weeks of my entire life. I didn't go anywhere, I didn't see anyone, I stayed home and worked on something I felt passionate about; truly excited about.
Don't let your day job define who you are as a person. Let it drive you to strive to be great at your job, but don't let it become all-consuming.
I'm excited to talk more about the game project in the (hopefully) very near future. I will be writing all about it in a future entry on this website. I've generally shied away from big game announcements, fearing that I may lose interest once its out there, but I am starting to feel its time to break the barrier and let myself talk openly about what I'm doing. I'm loving it.
Think about what you love to do.
Now do it.