I’m moving right along in my journey to become an independent game developer. Seems I’ve gotten to the part of my story where I start looking at what tools I’m going to use to make my games. In this post, I’ll look at the different game engines and editors that I’ve tried, and explain why I don’t just code the whole game myself. It’s a long post, so settle in (skip to the bullet list below if you really don’t want to hear my story. Won’t hurt my feelings. Much).
My first exposure to computers was in the fourth grade, which puts it around 1989 or so. I was a member of a group in school called SEEC. I never did find out what SEEC stood for, and Google isn’t helping. It was either for smart kids, or kids with social problems, or both. Anyway, they had computers, and it was on these that I played my first computer games, and learned how to draw shapes using a programming language called Logo. They also tried to teach me how to type, but it didn’t take. Later, I learned BASIC, and actually wrote my own versions of text adventures. They were sloppy, unfinished, and mostly broken. I also made a two-player tic-tac-toe game, complete with full-screen ASCII graphics. I loved the way the underpowered hardware would slowly draw the giant x’s and o’s on the screen. It looked like animation, and when we got new, faster computers, I put in empty loops to slow the drawing back down.
We didn’t have a computer in our house until I was well into high school. In the meantime, I did what I could at school, which wasn’t much. I did take a class in high school that had something to do with CAD, but I swear they didn’t teach us anything about CAD, and I’m fairly certain the school had not a single license for any sort of CAD software. My brother went to school for computer animation, and when he brought his machine home to do his schoolwork, I was introduced to 3D Studio and Photoshop. I completely forgot about programming at that point.
Fun fact: that computer featured a 120 MHz processor, 16MB of RAM, a 1.2 GB hard drive, and a 2MB graphics card. It cost him around $1,600 when he bought it around 1996.
Fast-forward to just a few years ago. I mentioned in part one my meeting with someone from Volition. In this meeting we talked about how someone like me with no education or experience might break into the video games industry. One of the things he mentioned was that I could tinker with one of the game engines that developers shipped with their games for modders and level-builders. ‘Far Cry’ was mentioned, as was ‘Unreal Tournament’. As it happened, not long after that, I found a copy of ‘Far Cry’ for dirt cheap, so I did indeed tinker with the editor. It crashed a lot though, so I never got very far with anything I was building.
With the idea of making games stuck in my head, I looked around for another avenue. In those days, I still didn’t really know what went into making a game, so I was open to learning any skill that I thought would help. I had made some good progress doing 3D art (I’ll cover this in part five), so I once again turned to programming. I started with XNA, because I thought it would be cool to have a game on Xbox Live among the Indie Games. At the time, I had no idea what a crowded place XBLIG was, but I probably wouldn’t have cared much. I focused on learning C# and the principles behind object-oriented programming. As an exercise, I set out to clone the table tennis game from my Magnavox Odyssey 300, the oldest thing I own.
It was an ambitious undertaking. I planned for days using block diagrams on the big whiteboard in my home office. I wrote the whole thing from scratch, incorporating a title screen, scoring, sound effects sampled from the Odyssey itself, and even an impossible one-player mode (the CPU paddle would start to move into position using the Y coordinate of the ball once it crossed the center line; you could score once against the computer, but that was it). It was played using two Xbox360 controllers. I called it ‘Table Tennis’, and while it was unfinished and a bit rough around the edges, it was a decent imitation and, in terms of my self-education, a glorious triumph. It took several weeks to finish, and I really wish I had the source code so I could share it (if the first rule of software development is “always back up your work,” the second should be “always remember where you put your backups”). If I ever come across it, I’ll stick it on my DropBox for the world to see.
In the process of making ‘Table Tennis,’ I learned that coding an entire game from scratch was never going to happen. Though I might have had some of the skill, I just didn’t have the time. It can definitely be done; check out this Kickstarter project (of which I am a backer) created by Psychotic Psoftware, a one-man development team. He’s doing the whole thing in XNA and it looks great.
So I went back to tinkering with commercial game engines and editors, and here’s where things got interesting. It really started to seem possible to create an awesome game with a minimum of coding, as long as you were able to create (or buy) art assets, music, and sound effects. And provided, of course, you had an awesome design in mind. In short, it’s a hobby game developer’s best friend.
So what’s a game engine? Check out Wikipedia for an in-depth explanation. What I’m mainly talking about here are the editors that are available for these engines that allow basically anyone to produce something playable. Here’s a list, in no particular order, of all the ones I’ve tried, and my thoughts on each:
- CryEngine: The engine behind ‘Far Cry,’ the editor that shipped with the game, CryEditor, was my first taste of game editing. I loved the way you could simply drop yourself right into the level you were creating. I remember how relaxing it was to create a beach, then drop in and run around, then drop back out to add some trees and rocks, maybe a waterfall. Then it would crash (in its defense, my computer was overclocked in those days and I wasn’t running the latest version of anything). I never did anything in terms of gameplay scripting in the CryEditor, just basic world-building. Later iterations of the CryEngine added more graphical power and more complexity, but I’ll always remember running around those early beaches. The current version of the CryEngine can be licensed a number of ways, and they even have special terms for small independent studios.
- Unreal Development Kit (UDK): This is the free version of the Unreal Engine. At the heart of such games as ‘Borderlands,’ ‘Shadow Complex,’ and ‘Batman: Arkham City,’ the Unreal Engine has proven to be a versatile engine. It features its own scripting language called UnrealScript, and has support for Perforce asset management. Graphically, the Unreal Engine is a powerhouse, and the sorts of worlds you can build with it can be as photorealistic as you have time for. The free version can be used to make anything you don’t plan on selling. Beyond that, the engine can be licensed for commercial games for the PC and iOs.
- Game Maker Studio: A cross-platform development package designed to be easy-to-use but powerful. I’ve heard of developers using Game Maker as a prototyping tool. Personally, I liked the interface, but I was turned off by their DRM scheme which destroyed users’ assets if it believed they were using a pirated copy (a scheme that destroyed the assets of paying customers as well due to a bug – read about it here). Many profuse apologies later, I still don’t trust them, so I won’t be using it. Their gallery page has a lot of games that are apparently for sale, but I’ve never played any of them.
- Construct 2: Another one geared towards ease-of-use, this one was actually fun to use. It exports your game in HTML5, so if you want to make browser based games, this one’s for you. Yes, the website says it supports Android and iOs, but what it seems to do (via a third-party) is wrap your HTML5 game in a standalone, platform-specific HTML5 viewer. I like this one a lot, and I think it’s got great potential. Licensing is pretty straightforward; the free version is limited but functional, and you can use it to release games for free.
- Source: The engine behind ‘Portal.’ Also ‘Half Life 2,’ ‘Portal 2,’ ‘Team Fortress 2,’ and a few others. I’ll admit, I didn’t get very far with the Source SDK. I own all the Valve games on the PC, and I have a few versions of the Source SDK on my computer. So far, the most I’ve been able to do is extract a few 3D assets from ‘Portal’ and import them into Blender (you’ll have to wait for part five to see what I did with them). Game programming is done in C++, so that leaves me out. There’s quite a few examples of cool stuff you can do with the Source SDK, but as far as licensing, all that stuff’s kept under wraps (“discussed under NDA” is what the page says).
- GECK: The Garden of Eden Creation Kit, released with ‘Fallout 3’ and ‘Fallout: New Vegas.’ I don’t really think you can make an entire game in the GECK, but I did build an entire movie theater in it using prefabricated pieces from ‘Fallout 3’ (I used it to block out panels for a graphic novel project I was working on but never finished). This seems only useful to people who want to make mods to the aforementioned games. Still, it’s fun to make your own little piece of the Wasteland.
Of all of these, the one I feel is going to serve my needs best is the UDK. Yes, that’s right, we have a winner. With its approachable scripting language, its impressive graphical capabilities, and tons of online education available, UDK is what I’ll be using to create my first game.
So now I just need to figure out which asset creation tools I’ll be using, then figure out how to get those assets into UDK. That’ll be the next few posts, starting with 3D model creation.