Getting Started with the UDK
It’s been a long time since I’ve written anything. Almost as long since I’ve done any design work. My sister recently passed away at 31, and it makes doing even simple tasks difficult. After some time for healing, I’ve realized that through such a horrible experience, I see how devoted I am to doing game design; Writing about it, learning the programs on my own and developing some actual material. There are still days that are difficult, sitting in front of my computer for long hours trying to be productive with nothing but my thoughts to listen to. But I’m sure anyone reading this has had similar experience, or will at some point. Life is going to keep throwing hurdles at me and I’ll never achieve my goals unless I clear them. To get back into writing, I’ll have to do a little backtracking. There were actually 3 or 4 weeks of productivity before the tragedy and I don’t want my readers to miss any of the important details.
In April, I downloaded the Unreal Development Kit (UDK). It meant trying my hand at the Unreal Engine for the first time since working on Unreal Engine 2 for Unreal Tournament back in 2003. That was the last time I did video game level design before my eight-year gap. This is where things get a little confusing, and there might be some inaccuracies in the previous posts in regards to Unreal. Epic produces UnrealEd, Unreal Engine, and the UDK, all of which are different things. (I know it sounds strange, but I’m forcing myself to say “the UDK.”) I didn’t know that they were separate entities until researching it a bit more. If you own any of the the pc video games in the series, they come with an editing program specifically for that game called UnrealEd. The program includes all the objects, characters, weapons, textures, etc. that are used to create every level in that game. It even lets you open and edit existing levels and explore around in them. That’s what I was familiar with and used back in 2003.
Unreal Engine is the long, compiled list of gibberish code written in some programming language I don’t understand. It powers the physics and rules for the game and its editor. Each new Unreal Tournament game is powered by a better version of their engine. Right now we are in anticipation of UE4 which may or may not ever be released. For the latest rumors on UE4, check out this article on Gizmodo. The current version of the UDK runs on a beta version of 4 that—to me—isn’t much different than 3.
The UDK is Epic’s mega-version of UnrealEd. It is an editing program available to game developers and amateurs—like myself—free of charge. I read that if you are trying to do level design, just use the UDK because it is capable of creating entirely new games and content, whereas UnrealEd only makes content for Unreal Tournament. The UDK can even make content for iOS and Android mobile devices. Whenever you see a game that has a startup screen that says “powered by Unreal,” it was probably made with UDK. The program file is available directly from Epic’s website. Last month, they released the May “build” of the Unreal Development Kit. I don’t really understand how to use any of the changes from the previous build yet. But, if you want to download the newest version, you can do it here.
I started out running the March build on my laptop: A MacBook Pro with a 2.3GHz Intel Core i5 processor and 4GB of 1333 MHz DDR RAM and an Intel HD Graphics 3000 GPU with 384MB of VRAM. I’ve been running the UDK on Windows 7 64-bit with boot camp. Im giving specifics because I want you to know that this is barely scratching the surface of enough power to run this program. Also, beware if you have a slow internet connection because the install file is 1.2GB. (It took about 4 hours on my wireless here in Japan). I found a wonderful FAQ that lists the actual system requirements for Epic’s own level designers. It would take about 8-12 of my laptops combined to equal the computing power of one of their systems. Keep this in mind if you want to break into level design. You may need to end up spending upwards of $1200 on a new PC.
After installing the mandatory updates, I was expecting familiar sights. But when I first opened the UDK, it was like staring at a foreign language. There are some nice graphically intuitive windows that make navigation easier, but the program’s reach is so vast that it would be impossible to self-teach like in the old days of DCK and War2Edit. Tutorials were my best friend. I’m still in the process of exhausting my online resources, which is always the best thing to do when researching a subject. I’ve watched and run through about 25 different tutorials so far, and I’m maybe 0.1% through the amount of videos and blogs that exist on the subject.
So now I have the program, but I have to trudge through learning to use it. I Googled “UDK tutorials for beginners” and found tutorials, blogs, and entire websites devoted to teaching us how to learn it. (Check the bottom of the page for links.) There are plenty of developer aids out there to get us started and help as we advance. “Developer” is another industry term for anyone who is using a game engine to make new games or game-related content. At first, getting started means learning what all the buttons do, and there are tons. This is what the screen will look like:
The UDK launches a template with a platform, a cube, a light source, and a spherical skyfield. This can be a nice jumping point if you want to play around. Or you can go to file>new and select a different time of day (lighting) or a blank canvas. The first thing I wanted to tackle was learning how to move around in the viewports with the mouse. Movement requires all the mouse buttons, including the center wheel and can be a bit cumbersome. If you can get past the funny accent the guy has, watch this tutorial to learn how. In a previous post, I talked about the difference between additive and subtractive modeling. Using an editable wireframe box thingy (“builder brush”) and the four viewports in the UDK, you can sculpt a geometric environment using either method. Channel the power of the red builder brush! Just learning to do that well takes some time. I spent my first 8-12 hours reading FAQs, watching beginner’s tutorials, and tinkering around with the controls as I cycled through them. There are three main components to building an environment in this program: BSP, Static Meshes, and Actors. At first, I just used the preconstructed template provided because it has all the actors and static meshes you need to get started. That removed the need to worry about anything but BSP for days, maybe weeks. During that time, I was forced to use this little portable USB mouse I have for traveling. I tried to use my Mac AirMouse, but the sensitivity settings in Windows 7 through bootcamp make the scroll wheel jump all crazy. Later, I invested in a decent laser mouse with a good center scroll wheel (trust me, you’ll want one).
But then I learned something unexpected. Every tutorial I read told me the same thing: don’t use a lot of BSP. The acronym can either stand for Binary Space Partitioning or Bespoke Geometry. Knowing that doesn’t really help understand it any better. So what the heck is BSP and why am I not supposed to use it much?
BSP brushes are 3-dimensional shapes made up of planar surfaces most commonly arranged in the shape of a cube. Like the gym in my old high school, it’s just a big empty box. They are also rendered as solid surfaces in-game that block sound, light, and movement. When you make one, it shows up covered in a mesmerizing pattern of blue and white checkers. By arranging them around in a void, you can make just about anything. They are only limited by their inability to represent true curves. What I mean is if I tried to make an arch, it would actually be a series of diagonal planes, rather than a single curved surface—and that frustrates the hell out of me. Why the programmers couldn’t include bezier curve handles on the corners of their BSP vertices is a mystery. (Pardon my vernacular.) To see my obsessive compulsive frustration, see below.
Despite that, it is easy to quickly render quasi cones, cylinders, and spheres with BSP. But to achieve a true curve, you have to import something called a Static Mesh into the level. Static Meshes are a whole other animal. Static Meshes are premade objects like pipes and doors and railings and light fixtures. An external program like Maya is used to model the shape and apply textures (“skin”). They are capable of much smaller details (and true curves). They can also be trimmed down to fit exactly in a space, which reduces excess memory usage. Static meshes are imported into the editor where they can be resized and duplicated any number of times without recreating them. Unfortunately, a Maya license costs around $800 and is even more of a beast to learn than the UDK. But the industry swears that any commercially viable level will be about 80% Static Meshes and only 20% BSP. I am of the opinion that, unless you have enough time to split between learning the UDK and a 3D modeling program like Maya, don’t worry about it. In fact, I only used BSP to create my entire first environment. There are a handful of static meshes included with the program, but they aren’t incredibly versitile. Most of them are very large chunks of buildings or structures that don’t fit together well with BSP unless it’s intentional.
Don’t worry, it will be a long time before we are “commercially viable.” Remember, baby steps. We are not trying to clear the hurdle all in one leap. Instead, let’s get out our screwdriver and read some tutorials on how to take the hurdle apart. Tip #2: start with an interior space. Forget about living things for now. Organic shapes and lifelike objects resembling grass or trees or water look great and are wonderful environments to explore, but they are a nightmare to create. I’m not that good yet. I started with planar structures like boxes, and more different kinds of boxes. Things that could be built out of stone, drywall, 2×4’s, metal, concrete, and brick. For inspiration, I thought about warehouses, factories, castle interiors, science labs, and haunted mansions from movies. These can be created in the UDK using 95% BSP. I’ll save the other 5% for mandatory lighting and player start position actors and maybe some cool-looking static mesh clutter or fixtures after the environment is complete.
Since I am still lingering around this stage of the process, I’ll have to do more work before I can give any more advice. I’m done learning the basics, but need to put them into practice. After working on my first level for a week or two on my laptop, I hit a roadblock. Every time I added a new BSP, the camera control slowed down dramatically. It never recovered even after reloading the program. I just didn’t have the computing power to do any more. But, flying home to America in May held a blessing in disguise. I was able to retrieve my desktop computer and fly it back with me. I am currently resuming work on my level on a Dell Studio Quad Core with 8GB RAM and a GeForce GT 220 GPU. In the next UDK article, I’ll show you what I’ve been building and describe a bit about the process. At the end of the article, make sure to check out my source links. I sifted through lots of junk to find some of the best tutorials, articles, and videos on the UDK for beginners. They cover everything from installation to navigation. Make sure to memorize the mouse movement tutorial as it is vital to your sanity while using the program. I’ve arranged them in a sort-of order to make your progression as painless as possible.
World of Level Design has the best tutorials. Start by reading these.
Then watch these videos. This is the direct link to the embedded files.
UDK Basics 2/3 (This one has the camera-mouse controls)
Then dive into BSP’s with these. Read first.
To make make your level testable.
Light & Test (Read)
Light & Test (Watch)
For some inspiration & eye candy.
Tor Frick’s Cliffside Village (Watch)
Tor Frick’s City Slum (Watch)
Tor Frick’s Computer Brain (Watch)
UDK Award Winner: Antichamber (Watch)