As of today, I have been a hobby game developer for 15 years. It has been a journey full of up’s, down’s and even sideways and stops(with starting again obviously). This is a reflection and recount of how I got to where I am today and where I plan to go in the future.
It was Labor Day 2003, my family had come back from a picnic and we were all doing a whole lot of nothing. I was on my parents computer and my dad and I were watching TechTV(TechTV was later acquired by G4TV which upon further research appears now to have been defunct for 4 years, now I feel incredibly old. Anyway…). They were hosting a Call for Help-a-thon in which they were running episodes of the show “Call for Help” back to back for a good portion of the day. During the 7PM episode they mentioned to stay tuned to learn how to make your own video games.
Make your own video games? I don’t think there was anything more exciting you could tell a computer geek who was in 9th grade at the time. Needless to say I was very intrigued. I have always loved video games, I have been playing them since my brother and I were gifted an NES when I was the age of 4. I could make them? Just a computer is required? I had so many questions. The commercial break ended and they started the segment.
“Would you like to make you’re own video games?” Leo Laporte started speaking. “YES!” I shouted on the inside. “Well you can with GameMaker Studio”. Not only can you but you can do so for free. He and fellow co-host Chris Pirillo went on for a few minutes on how to download and use the software to make your very own 2D games. I immediately dialed up the internet(yep, no broadband for my family at that point in time, just 56k) went to the website and downloaded it to start learning myself.
I played around with GameMaker studio for a few years. I had picked it up the start of my freshman year in High School and eventually moved on to 3D within the next year or two. However, I still played with 2D even after stepping into 3D. Before switching to 3D completely I had built a few neat gameplay experiences(that are sadly lost to time and technology). While using GameMaker Studio I learned sprite animation, how to build intro screens, menus and basic gameplay. I started work on an old school top down shooter, complete with colored card keys (for those that don’t know the original Doom and other classic games used colored keys and locks as staples to control game flow). I even went so far as to have vegetation I could hide in as well as leaves that would rustle/fall when you walked into and out it. However, the tech started to be slow for my increasingly complex demos so I decided to jump to 3D.
After feeling like I was making things too complex for 2D I transitioned to 3D. At the time one of the biggest free game engines that was easy to use was Reality Factory. It wasn’t exactly a new game engine and was built on the older Genesis3D game engine (from the late 90’s/early 2000’s, think Half Life/Counter Strike 1.6). It didn’t matter, it came with a BSP level editor of its own, a scripting language and UV mapping tool. All I needed was my own 3D models if I didn’t want to use the few free ones that came with it. I played around in this engine for a couple of years before realizing that a roughly 10 year old engine wasn’t going to cut it for the 3D FPS I was trying to build.
During this time I learned how to 3D model and texture objects using Caligari’s gameSpace Lite, trueSpace 3 and later trueSpace 7.6. Additionally I read about every article on GameDev.net and Gamasutra(.com) on how 3D game engines work and whats needed to make these models and textures create the beautiful 3D worlds I had explored in games for years. These two sites were packed full of how to’s and explanations of how engines worked back in the day.
I never made a stand alone project though. I had built a few basic levels and completed a few tutorials and spent most of my time learning 3D instead of making a game in 3D. I did learn about 3D performance tuning which is a very valuable skill.
Now I am in college and looking for something a little better than a game engine from the early 2000’s. It was 2008 after all, and tech had changed drastically. I had search all over the net for a free to use game engine but hadn’t had any luck. That is until Unity3D released a free version of their WYSIWYG editor. Free use until you made over $100K in profit from it, then you need a pro license that was around $2k. Not a bad deal. I downloaded it and started to learn the modern way to make games.
Of course while I was working with all these tools I had personal projects. Does anyone pick up game development solely for creating things that aren’t for their own project? I had multiple projects to be precise. My FPS project changed an uncountable number of times during high school and college. I also had ideas for a car combat game (Vigilante 8, or for those more mainstream, it would be like Twisted Metal), a fighting game as well (along the ease of use as Soulcalibur but with my own original characters and fighting styles).
Only a single game type stuck around to be what I would consider my dedicated project. This would be the FPS project. It has gone full circle from being a game with dual wielded weapons(believe it or not I had an idea to do the Halo 2 weapon system before Halo 2 was a thing!). Then something more realistic, then more physics based like Half Life 2. Now it’s more First Person Adventure than pure FPS that one would think of today. However it’s back to being more game like than realism as was the trend and my preference in college.
Nothing to Show, Plenty to Tell
The only issue with any of these projects is that I didn’t head the warning that all new game devs should make simple games. I instead focused on tech demos and POC’s. Although I can say I did accomplish and learn a lot during the past 15 years I don’t have anything finished in a game form to show from it. Actually most of the items I did make are lost to the ever advances of technology, poor file keeping and judicious directory cleanings. Also switching to Mac didn’t really incentivize keeping old exes… never the less, for me none of those old projects matter. It’s the fun and excitement of building it all that mattered and still matters. Which is why I continue tinkering on my FPS project today.
First Person Adventure Project
This FPS project has actually been on track as a first person adventure game since graduating college. With the more I age and the less games cater to my taste, the more I want to simplify and create something that is an updated form of the classics that I enjoyed in my youth. This is what drives me. Although I can’t say I have been diligent about working on it. There were a few years were nearly nothing got done on it while learning how to cohabitate with my my wife, balance work and life and raise 1, then 2 cats, and now 3.
This past year I finally kicked up development again from a long hiatus and have some good progress. (I can interact with objects based on their predefined hit boxes! I made some neat physics based interactions!) As I make more progress I hope I can share some of it on this blog. I am making this game for me, but would like to share it with anyone interested in the future. We’ll see how this actually pans out. Maybe I will get protective of my idea’s and implementation and hide it away for a while.
With all that said though, I would like to wish myself a
Happy Game Dev Anniversary!
So here’s to a happy 15 years of game development! And here’s to another 15 more. I hope I can share some of my future work here and that I will have a number of finished projects in the next 15.
BSP Level Editor – BSP is a type of level format that was once widely used for game development. BSP stands for binary space partitioning and you used “brushes” to build or carve out the level. My understanding is that this was popularized by the folks at Unreal, and they have a great article about it here: https://wiki.unrealengine.com/Basic_Level_Design_BSP_(Unreal_Tournament)
UV Mapping – 3D models are nothing more than polygons or unpainted shapes until you add some texture details. Textures are applied via UV maps. A UV map is a 2D representation of the 3D model. Usually cut up into multiple pieces and the details are painted over top of each section so hands look like hands, faces like faces etc. This then is applied to the model as a texture. A UV mapping tool lets you control how the 3D object is represented in a 2D texture.