PacktLib: Unreal Development Kit Game Design Cookbook

Unreal Development Kit Game Design Cookbook


About the Authors

About the Reviewers


Heads Up—UDK Interface Essentials


Installing UDK and folder structure

What content comes with UDK?

Beginning, building, and testing a new level

Deciding on your preferences

UI survival steps

Navigating the Content Browser

Accessing assets in the Content Browser

Creating and managing packages

Importing your own content

Cooking a map in Unreal Frontend

Mobile device emulation

Kismet debugging

Notes From an Unreal World—Constructing Game World Elements


How to handle BSP geometry

Building a hollow room

Adjusting surface properties of BSP

Generating volume from the BSP brush

Handling StaticMesh actors in the scene

Setting collision in the Static Mesh Editor

Creating Terrain, Deco Layers, and Material Layers

Creating a Landscape

Scattering meshes on a Landscape using the Foliage tool

Creating a steamy plume in Cascade

It Lives!—Character Setup and Animation


Installing ActorX and exporting skeletal animation

Importing SkeletalMesh content into UDK

Morph targets and .FBX importing

Setting up sockets

Attachments to SkeletalMeshes without using sockets

Setting up a custom AnimTree

Defining animations in your AnimTree

Configuring your character to use your AnimTree

How to use a single bone control chain to correct an offset crouch animation

Setting up a physics asset using PhAT

Adding limits to physics asset joint rotations

Adding a physics-driven tail to a key framed SkeletalMesh

Enabling the head to face in a given direction for tracking purposes

Setting a LookAt target for head rotation in code

Setting morph weights in code

Calling up SkeletalMesh animation using Matinee

Associating sounds with character moves in Matinee

Sound for non-Matinee controlled animation

Got Your Wires Crossed?—Visual Scripting of Gameplay in Kismet


Kismet UI essentials

Creating a simple enemy Bot

Event-based movement of scene objects in Matinee

Trace actions in a shooting situation

Revealing and hiding scene actors during gameplay

Producing sounds through Kismet

Using Take Damage events to produce explosions

Understanding the usage of Named Variables

Tidying up Kismet networks using Sub-sequences

Tidying up Kismet networks using Remote Events

Toggling Materials through Kismet

Toggling lights through Kismet

Animating PointLights in Matinee to mimic texture animation

Making a comparison following a countdown

Using Integer Counter to count enemy deaths

Controlling node flow using a Gate action

Making Bots follow a path

It Is Your Destiny!—Scripting Complex Gameplay Flow in Kismet

Prefabs including Kismet references

Swapping control of a Bot using Possess Pawn

Ways to stop a recurring loop

Setting up cinematic cameras

Animating cinematic cameras

Obtaining a trigger event off a RigidBody

Creating a firing pattern based puzzle

Allowing the player to pick up, carry, and place an object

Exploring 'following' and 'attracting' behaviors

Creating a regenerative health shield

Creating a per-session checkpoint series

Under The Hood—Configuration and Handy Tweaks for UDK

Groundwork for adjusting configuration defaults

Enabling the remote control for game inspection

Changing the Play in Editor view resolution

Removing the loading hints and similar articles

Editing DefaultEngineUDK to allow 4096x4096 texture compression

Setting the preview player size reference object

Binding a keyboard shortcut to a player action

Adjusting player speed

Creating your own Kismet node for speed

Changing the default player sounds

Replacing the HUD

DrawText and GameType concerns

Handling level content streaming

Spawning objects from a hit impact

Hi, I'm Eye Candy!—Ways to Create and Use Particle Effects


Editing the color graph of a particle over time

Animating particles using SubUV charts

Adding one particle's movement to another

Making collision detection work for particles

Controlling sort order for translucent Materials

Making animated textures using particle systems

Making trails with AnimTrail TypeData

Assigning Level Of Detail (LOD) to a particle system

Leaving a bloody trail

Then There Was Light!—Manipulating Level Light and Shadows


Emissive lighting

Comparison of static and dynamic lighting

Light exclusivity using channels and levels

Adjusting shadows through light environments

Distance field shadows

Penumbras and hotspots

Accessing the main PostProcessChain

Ambient occlusion

Depth of field

Ensuring shadows work with translucent or alpha based materials

Enabling and controlling light shafts

Enhancing sunrays using lens flares

Creating caustics using projected imagery

Translucent colored glass

The Devil Is In The Details!—Making the Most of Materials


Animating a Material Instance Constant in Kismet

Forcing a mesh to always face the camera

A cloth-like effect using WorldPositionOffset

Creating murky liquid

Creating a scanning effect

Quick glass

Creating transitions between Materials

Static Cubemap creation and real-time reflection

Wet surface reflections with dynamic actors

Making a holographic effect using Bump Offset

Interactive Foliage Actors

Getting varied hit impacts off models using a PhysicalMaterial

The Way Of The Flash UI—Scaleform, CLIK, and Flash Interfaces


Setting yourself up to work with Scaleform

Working with images to skin a button

Cursor design and script for cursors

Importing SWF content to UDK

Placing an SWF on a BSP using Render to Texture