Unreal Development Kit
What is it? An all-inclusive development suite for making 3D games in the Unreal Engine 3.
Price and licence: £60, no royalties on your first $50,000 in revenue, 25% royalty afterwards. Free for non-commercial use.
Makes games for: Almost everything – PC, Mac, iOS, Android, Xbox 360, PlayStation 3, Flash (web), WiiU, PS Vita.
Tutorial: Epic Games official tutorial
Case Study: Waves
Developer: Rob Hale
How long does UDK take to learn?
UDK is tricky because you aren't just getting an engine but an entire game framework. You're always building on top of how Epic like to make and structure their games, and this can take a long time to get used to.
The result of this means you'll spend the first few weeks finding out where everything is and how it works. It's almost always the case that if you want to do something then Epic have already done it, and it'll be in the code somewhere, but it's down to you to find it and figure out how to use it. That learning process will continue for years - I'm still finding stuff after working with the engine for over ten years now.
But you can be up and running and making something simple very quickly maybe within just a couple of hours and be relatively competent in a few weeks.
What prior knowledge or skills are helpful?
Any previous programming experience is very helpful, but be prepared to swallow your pride and do things the "Unreal Way". I've worked with a lot of very experienced programmers who wanted to rewrite every line of code in Unreal because they felt they could do it better, and every time the result was worse than how they started. This is Epic's engine and they've been making games with it for over a decade, so if it seems odd or counter to how you would do it, there is always a good reason behind it.
Other than that, you can pretty much learn as you go. When I started in games back in '01, I was modding Deus Ex and knew absolutely nothing, and I've taught myself everything I know along the way.
Any skills in making art, sounds, models or programming are going to be helpful and will get you working quicker but everything you need to use the engine is documented really well (far better than when I started) and the community is very helpful.
What can't you do with it?
Anything that involves changing the terrain in real time, and voxel worlds like minecraft. UDK is designed for very pretty static art-led worlds divided into levels, but that's pretty much the only hard limitation. The scripting language isn't very fast to execute, so anything involving thousands of objects moving around and interacting with each other every frame is also out. But there are ways you can get close to that with clever programming.
How long did you think the game would take to make, and how long did it actually take?
I thought Waves would take a couple of months to make originally, and if you asked me during development how long I thought I had left to work on it, I would always say "A couple of months".
That's got far less to do with the engine, though, and far more to do with my not having a firm idea on what I was making. Waves never had a design document, and was always a case of experimenting with different mechanics, and keeping what worked and ditching what didn't.
I think I was pushing back against my AAA background, where everything needs to be designed up front, and if an idea sucked, you often had no time to figure out how to improve it. Ultimately I worked on Waves for about 9 months in total, but I wasn't doing 40 hour weeks or anything, so the total time completely eludes me.
How much of the development time was enjoyable?
There were a few times when working on the game was a chore. Specifically getting the user interface and menus done was the most soul crushing part, because while you need all that stuff in order for people to play the game, it doesn't feel like you're working on the game. All of those indie game trailers that show the menu system exist because the developer spent weeks on those menus and by god they're going to get some of the limelight because nobody else cares about them.
I will say that if you don't enjoy solving problems and being faced with mysteries on a daily basis, then don't get into games development. The majority of the time at the end of a project is spent debugging, and that tends to be a case of 8 hours of headbanging frustration and swearing followed by a huge Dopamine surge and dancing for 3 minutes when you finally solve the problem.
Ultimately though I was making a game I wanted to make, how I wanted to make it, and for me that's the reason I get up in the afternoon.
How much did it cost you to develop, and what did that money go on?
Living expenses and music. I had about £6k saved up when I quit my job and went full time, and I spent every penny of that finishing the game. I was lucky in that I had no dependents or mortgage to worry, about and my parents let me move into their spare room so I could save money while I got the game out. UDK only has an upfront fee of $99, but you don't need to pay anything until you're ready to release, and all of the tools to make a game are available for free - unless you really need Photoshop or Maya.
Hiring in any freelancers is always expensive, because there are very few that will work for a profit share. Generally the minimum hourly rate is around $15, those hours add up really quickly, and they need to be paid before the game is making any money. The only thing I couldn't do myself was the music, and I knew I wanted a good original soundtrack for the game, so I bit the bullet and paid for it. Fortunately that gamble paid off in the long run.
How well has it done for you financially, on a scale from 1-10?
I'd rate it as a 6. I can afford to make another game and I even have a little bit extra so I can pay some freelancers, but if I don't get another game released inside of a year then I'll be in trouble.
If you could give your past self one piece of advice before starting to make the game, what would it be?
Don't call it Waves! Nobody remembers the name and you can't find it on Google.
UDK is the thing to learn if you ultimately want to be making big, shiny, multi-platform games. It's harder to learn than Unity, and you'll need to be very versatile or form a team to make something that looks good. But it's also great experience if you want to join an established developer, since Unreal 3 is the most commonly used engine in mainstream games.