Posted by: Morten Nobel-Jørgensen | June 3, 2010

The best and the worst of UDK

Unreal Development Kit (UDK) is a powerful toolset for creating 3D games for the Unreal Engine. In this blog I’ll describe my 3 months of experience with the engine.

I have had the pleasure of getting familiar with the UDK when I was working on the game ParaDime (An student game project created with 5 other students). None of us had any previous experience with UDK, so the project started out with doing a lot tutorials (Video tutorials from 3DBuzz and reading ‘Mastering Unreal‘ series). After 3 months of sweat, blood and magic, we managed to create a beta version of our awesome looking (but rather buggy) 1st person puzzle game.

The UDK is available free of charge, but if you want to sell your game you must share the revenue. UDK comes in a new flavor every month (new features, new bugfixes and new bugs)  – for the ParaDime we used the UDK-2010-03 version. The UDK is huge, so to keep this review at a reasonable length I have picked my top 5 favorite features along with 5 things I hate.

Best of UDK

  1. Performance. We didn’t have major performance problems during the project. Pretty amazing considering the huge amount of polys and advanced materials we threw at it.
  2. Lightning and rendering. Thanks to the UDK’s HDR rendering support and it’s Unreal Lightmass system it is easy to make your game look really good.
  3. Material editor in UDK

    Kismet scripting and Matinee animations. The build in scripting and animations tools makes it really easy for level designers (non programmers) to setup simple scripts to make the levels become more alive.

  4. Material editor. UDK’s shader programming using the visual material editor is easy. You can see how each shader instruction affects the result.
  5. Cascade particle editor. With the built-in particle editor you can easily create some good looking particle systems, and instantly see how they look in your game.

Worst of UDK

  1. Lack of documentation. The auto-generated source code documentation is most often of little or no help. Most often you will find yourself browsing the source code instead – with the risk that you hit a native c++ code block (meaning no source code available). In that case your only change is browsing Internet forums for answers – or try to figure out the problem yourself.
  2. Lack of support for modern file formats. UDK does not understand formats like PNG, JPEG, MP3. FBX support was recently added – a couple of months back the engine preferred 3D models in an ASCII-format.
  3. No project folder. Creating a new UDK installation. There is no clear separation between your files and the UDK example files. This makes things really messy when more persons are working on the same game.
  4. Slow work-flow. UDK does not support hot-swap of UnrealScript code. This means after a code change you have to restart the UDK – this takes around 1-2 minutes.
  5. Poor debugging support. Debugging is often limited to writing to a log file or in worst case not available at all (this is true for animation and shader programming).


So is UDK good or bad. Short answer: that depends.

If you are a level designer, a world designer or simply just want to create your own Unreal Tournament level, UDK is really a fantastic tool. It is still a complex beast, but after reading the ‘Mastering Unreal’ books and watching the first 100 video tutorials you should have learned enough to create pretty much any level you want in UDK.

If you are a programmer things are a bit more rough. Even though the UnrealScript-language is a fairly easy to learn, the architecture and the API of the engine is not very well documented. If you have no prior experience with game engines there is a lot of stuff to learn the hard way. I recommend programmers with no prior game-engine experience to start out with a simpler and more well documented engine like Unity (C#) .

In other words; It is fairly easy to create a 1st/3rd person shooter game (as a mod of Unreal Tournaments), but if you want to create something different it requires much more insight in how the engine really works.



  1. […] Here is our programmer’s perspective. [View with […]

  2. I am actually surprised about the lack of documentation. I would expect that a commercial game engine that sells for a LOT of money comes with some usable documentation, I wonder if they left it out the ‘free’ version on purpose…

  3. i hate how the volumes work, if you later decide to move a block that you have placed earlier, it is impossible, you’ll have to subtract then add it back in and this usually does more harm than good.

  4. Good Review.
    While I haven’t really used UDK – I tried it about a year ago, but development was too slow, and the engine too complex for my taste – I do have extensive experience with Unity, and I do have to say that that latter covers up just about every one of the holes mentioned about UDK above: Unity has excellent documentation, project folders, the debugger is great, and it’s built off of Mono, so it has practically instant code compilation, and hence a very fast workflow.
    UDK is at least theoretically more powerful, and you can build much better looking, more comprehensive games for free with UDK than Unity – if you have the resources. That’s not to say that UDK is necessarily better – with Unity 3, both engines use beast lightmapping, and the same physics engine; their rendering capacity is the same as far as I can tell, and Unity’s mono based scripting engine is quite powerful.
    The main difference is that Unreal 3 has been around for much longer than Unity, and Epic has more resources to devote towards creating examples and tech demos than UT. Ultimately, UDK is probably better for large projects with a lot of resources at their disposal, while Unity is better geared towards indie game development – not that that’s static, but that does appear to be what they’re best at now.
    Just my two cents.

  5. You make a good summary of things I’ve learned myself using Unreal tech. I’ve been on a few commercial games projects (and hence have good programming support) and also actually running through UDK as a unit I’m teaching currently for a course. The fact that the UDK engine is a high performance sort of beast is key. Also that it’s unweildly in terms of being able to dig into code is a good point. Yes it takes some months of plowing through tutorials and such to grasp the basic usage for general ‘levels building’ – and yes it’s directed towards modding the conventional 1st/3rd person game that is UT.
    I think the other strength would be it’s character tools – particularly the performance of the skeletal driven character systems. Something I’d like to dig into more and convey myself.
    A huge drawback is the cluttered, window-upon-window environment.. full of popups, properties, exposed everything !! it’s a huge featured thing – there’s not a concerted effort from the developers to make things more comfortable for the artist. You spend your time popping and sliding windows half the time. It might be the nature of the beast.
    Good luck all digging into the UDK – it’s a fast ride.

  6. 1. Lack of documentation? There’s plenty of documentation for both content creation and programming at And the forums have pretty much any answer the documentation hasn’t.

    2. It supports PNG. The formats JPG and MP3 aren’t supported because they are proprietary formats. Instead, UDK reads the open source equivalent of MP3: Ogg Vorbis. A nice tool for transcoding is “WinLame” (also open source).

    3. Recent versions have this.

    4. Agree.

    5. It does supports full debugging with Visual Studio (including breakpoints, reading variables values, etc etc). You just need to install the Visual Studio plugin, nFringe. There’s a tutorial somewhere on Epic’s documentation.

  7. @Jeff: On 3, you say recent versions have this. Where can I find more info on this?

  8. Nice article. Maybe when this was written the worst parts were actually true but as Jeff said, much of those issues have been solved nowadays.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: