As with any job it is important to use the tool that is appropriate for it. UDK provides three ways of giving interactivity to the game world: Kismet, Matinee, and UnrealScript. At this point, you should be familiar with the previous two options. All the three have specific advantages and disadvantages to them, but Kismet is the one that I use most often.

As you expand your research into UDK after reading this book you may see forum posts with people asking about how to do something in Kismet. A lot of people will reply to someone telling them to learn UnrealScript instead. While they may seem arrogant, there are some reasons why they are saying to use that tool. I’ve included a list of pros and cons to Kismet which may help you, afterwards, in deciding if it is the correct tool for what you’re working on.

Benefits of using Kismet

Kismet is a wonderful tool and is a great starting point when first starting out with UDK. Some other benefits associated with Kismet are:

  • Having a lower barrier to entry: No programming knowledge is needed so it is easier to get started and you can start creating games now.
  • Great for prototyping gameplay mechanics: Saying a mechanic is going to be fun is one thing, but no one is going to believe you unless you can show it. Kismet makes it extremely easy to get something up quickly. As a designer, having something to show a programmer will make it much easier for them to translate to code.
  • Great for one-off events: If your level needs to have something specifically for it or only at a specific time or level events like an explosion, Kismet is a great tool to use for it.
  • Easier to see the flow of events: If you are more of a visual thinker or like to stare at something to see the big picture it is a lot easier to use Kismet. The Sequence Objects and colors all mean something specific to make it easy to discern what is going on within a specific scene.
  • Easily extendable with UnrealScript: With knowledge of how UnrealScript works it is possible to create custom Sequence Objects of your own to create actions of your very own. If your game would have a dialogue system, creating a custom “Show Dialogue” action would be possible in Kismet to make it easy to create entire Dialogue trees within Kismet.


However, Kismet is not the be-all and end-all solution for everything that can possibly be done with UDK. Here are some of the drawbacks that using Kismet may have:

  • Complexity issues: As you get more comfortable using Kismet you will probably try to do more and more complex things with it (I know I have). If you are not careful you may have problems reading what your code is actually doing. Basically, the more complex a sequence gets, the harder it is to read.
  • Reiterations: Many times in a game you will want to have the same thing happen if you interact with a similar or identical object, like a door. If you want the same behaviour with multiple objects or multiple levels you have to paste it every single time you want to have that action happen. This can quickly stockpile into a really large amount of Sequence Objects which could be avoided if you wrote an UnrealScript file with the same behaviour and made that object use that file to execute the actions inside.
  • Level Specific: In much the same way Kismet is also specific to just the level that it is created in. For instance, if we wanted to create 10 levels in our game we would have to do the console command event in every single level. With UnrealScript, this would be built into the code base for the game and be automatic for all levels of the game.
  • Kismet can’t do everything you’d like to in a game: The truth is that the game Unreal Engine 3 was created to make a First Person Shooter (FPS) and the further you stray from that path the harder it is going to be to create your game. That’s not to say UDK can’t be used to create other games, it’s just going to be much more difficult as the Sequence Objects in Kismet are meant to create an FPS.
  • More custom behavior requires UnrealScript: Continuing with the previous point most of the time a game does something such as a game mechanic that UDK doesn’t seem to do (like the Scarecrow boss battles Batman: Arkham Asylum, Plasmids in Bioshock 1 and 2, or the jet packs in Dark Void). These examples probably use UnrealScript or C++ code to achieve the desired result.
  • Kismet is slower than UnrealScriptWhile it will not matter with the project that we are creating now, since Kismet is basically prewritten UnrealScript executed in a certain order,Kismet is slower than what could be achieved using just UnrealScript and something that your game will continuously use would best be done with UnrealScript.

Hopefully this will help you when deciding the appropriate tool for the job in your own projects!


1 2 3 5
December 7th, 2017

Unity 2017 Tilemap Tutorial

Content creation is one the most time-consuming aspects of game development. One way you can design levels quicker and easier […]

January 7th, 2017

Visual;Conference 2017

As a part of Visual;Conference 2017, I was invited to give a talk on Game Engines for the development of […]

November 11th, 2014

Unity Game Development Blueprints Released!

My fifth title, and first Unity title, is now out! In this book I took feedback from my previous books […]

May 6th, 2014

Video Series UDK Game Development Released!

My fourth title published by Packt is now out! Unlike previous entries this is a video series and delves into […]

December 17th, 2013

Benefits and drawbacks of using Kismet

As with any job it is important to use the tool that is appropriate for it. UDK provides three ways […]

November 20th, 2013

Types of Collision in UDK

As you may know, a lot of the interactivity from games comes from the ability to have objects interact with […]

August 19th, 2013

Guest appearance on CrunchCast

Recently I had the privilege to talk to Chris Holden on CrunchCast about myself, my books, and Unreal in general. […]

August 18th, 2013

Getting Started with UDK – UnrealScript

This post will be the most useful for those who have already read or are currently reading my latest book, […]

June 8th, 2013

Flash 101: An Introduction

As you begin your project, there may be many new panels and areas that are yours to use.   Stage […]

June 8th, 2013

Setting up Flash CS6 to use Scaleform with UDK

Currently, I am in the middle of writing my third book with Packt Publishing, this book on creating a single project over […]