Game Development Tools: UDK

March 12, 2013 1:46 am

Tags: 3D, Game Development, Gaming, UDK, Unreal

You may know that I got into game development a couple of years ago. Since then, I’ve noticed that those who are new to game development have troubles choosing what game engine to use. I plan on writing a series of articles related to game making tools, to give a broad idea of what tools are out there. Keep in mind these are not actual reviews (just overviews), and that I will not go deep into all the different engines because that would require deeper knowledge of the different tools.

This time I will be discussing UDK. UDK is Epic’s Unreal Development Kit, a “lite” version of the widely known Unreal Engine 3. UDK is pretty much comprised of two different sides: the underlying programming side, and the content side, and, unlike other engines, you can’t work on both sides at the same time (meaning you can’t add or edit code while you work on a level and see the changes on the fly).

On the programming side, it uses its own native language, known as Unreal Script. As you may know I am not really a programmer, so I can’t really give examples of other languages similar to Unreal Script. Working with US is about creating or extending “classes.” Each class has its own set of instructions/functions, and you can use those functions into “child classes.” For example, there’s a class that defines how a first person character works, and you can create a child class extending that other class, and change the character’s behavior.

UDK does not ship with a “programming editor,” so you need to either use Notepad to edit your classes, or use a third party text editor (I use ConTEXT, but others use more specialized tools like Visual Studio). For this reason, there isn’t a way to actually edit code “inside” the engine (there is no script editor, or similar). This is related to the way UDK works, because you’re supposed to edit the script files, compile them, and then launch the engine. Then, if you need to make a change, you need to edit the script files again, compile them, and then relaunch the engine so changes are reflected in the game (you can’t compile if the level editor is open).

As you can imagine, doing this can be time consuming, especially if you simply want to try some functionality (for example, if you’re trying to tweak how fast the character runs), and I believe this is one of UDK’s most notable weaknesses.

The content side is the actual UDK software. There you can create your levels, add automated events (called scripted events), import 3d models, textures and sounds into the game, and make in-game cinematics.

Every time you import 3d models, textures, sounds, and so on, they are placed in the Content Browser. The Content Browser in UDK displays the contents of all the different content packages of your UDK installation (as well as the ones you manually import, of course). This is a very convenient tool because it makes it very easy to use different assets in your level.

I previously mentioned how you need to close the software every time you need to code. Fortunately, you don’t need to program level-specific things (although you can). For example, if you need to set up a door, an elevator, or a puzzle, you don’t need to program functions that will handle those elements, because you can use Unreal Kismet for that. Unreal Kismet is a visual scripting tool in UDK. Basically, all you need to do is connect different nodes so objects in the level do what you want. Working with Kismet is pretty similar to working with the node-based editors in Maya, Cinema4D or Softimage. You can make different kinds of routines, from simple elevators to very complex puzzles with specific conditions.

In UDK you can also animate objects to create in-game cinematics, using Matinee. This is a very basic keyframe-based animation system that lets you add motion to almost any object in UDK (some objects cannot be animated). You can even use it to animate characters, but honestly, it’s too limited for that. That doesn’t mean you can’t get some very nice results using this tool, but it’s better to use specialized tools when you’re animating characters.

Using UDK as a modding tool is free. However, if you want to make commercial games you need to buy a license. For more information, you should check the UDK licensing page. In UDK you can compile games for Windows, Mac and iOS (if you’re a Linux gamer, or you’re interested in making games for Linux, UDK is no good, unless you use Wine).

Visually, UDK uses the same rendering engine as Unreal Engine 3, so games made in UDK can look pretty good. Just like any other application, this does not mean it doesn’t require work to make nice looking games or to change the default “Unreal Tournament look.”

I think UDK’s biggest strength is Unreal Kismet, because it allows you to easily set up different routines that would take too much time via programming, and you’d be surprised what you can do with Kismet alone. On the other hand, having to relaunch the software every time you change the code, can be very inconvenient.



UDK licensing:

Unreal Developer Network:

UDK forums:

Sergio Aris Rosa [nemirc], is Sr. Staff Writer for the Renderosity Front Page News. Sergio discusses on computer graphics software, animation techniques, and technology. He also hosts interviews with professionals in the animation and cinematography fields. You can follow him on Twitter, and if you want to see what he's up to you can visit his blog.




March 13, 2013

Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.

Related Articles:

Article Comments

infinity10 ( posted at 3:34AM Tue, 12 March 2013

Thanks ! Useful insights !

Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.