CHAPTER 1: Introduction to Unreal Technology . . . 1
History of Unreal . . . 2
June 1998: Unreal . . . 2
November 1999: Unreal Tournament . . . 3
March-July 2001: The Unreal Developer Network . . . 5
September 2002: Unreal Championship and Unreal Tournament 2003. . . 5
February 2003: Unreal II . . . 7
March 2004: Unreal Tournament 2004 . . . 9
April 2005: Unreal Championship 2: The Liandri Conflict . . . 10
November 2006: Gears of War. . . 11
November 2007: Unreal Tournament 3 . . . 12
Overview of the Unreal Engine. . . 14
Unreal Engine Components . . . 14
The Graphics Engine. . . 14
The Sound Engine. . . 15
The Physics Engine . . . 16
The Input Manager . . . 16
Network Infrastructure . . . 17
The UnrealScript Interpreter. . . 18
Overview of Component Interaction . . . 18
Engine Components at Work . . . 20
Creating Your Own Worlds with the Unreal Engine . . . 21
Game Assets . . . 21
Animations and Skeletal Meshes . . . 25
The Tools of the Trade . . . 26
CHAPTER 2: Overview of Game Development. . . 31
The Importance of Iteration . . . 32
Start with the Idea . . . 32
Story Treatment . . . 34
Considerations for Production Scheduling . . . 39
Communication . . . 41
Have Regular Meetings . . . 41
Make Yourself Heard. . . . 41
Respect Your Teammates . . . 41
Artists Versus Programmers: Round One, Fight! . . . 42
Pick Your Battles . . . 42
Stay Creative . . . 42
Testing and Feedback . . . 43
Ending Production . . . 44
CHAPTER 3: Up and Running: A Hands-On Level Creation Primer. . . 45
Starting Your First Level . . . 46
CHAPTER 4: A Universe of Brushes: World Geometry In-Depth . . . 117
Key Terms and Concepts: BSP and CSG . . . 117
Brush Types . . . 118
The Red Builder Brush. . . 118
Additive Brushes . . . 118
Subtractive Brushes . . . 120
A Quick Word on Building. . . 120
Cleaning BSP Materials . . . 21
Working with Brushes . . . 124
Additive and Subtractive Levels. . . 124
The Almighty Drag Grid . . . 124
Moving with Pivots . . . 125
Brush Order . . . 125
Building to the Proper Scale . . . 126
Primitives . . . 127
Cube . . . 127
Cone . . . 128
Cylinder . . . 128
Sheet . . . 130
Tetrahedron (Sphere) . . . 130
Curved Staircase . . . 130
Linear Staircase . . . 132
Spiral Staircase . . . 132
Volumetric . . . 133
Boolean Operations . . . 134
Intersect Tool. . . 134
De-Intersect Tool . . . 135
Brush Solidity. . . 135
Solid . . . 136
Semi-Solid. . . 136
Non-Solid . . . 136
Brush Manipulation . . . 137
Geometry Mode . . . 137
Selection Modes . . . 138
Toggle Modifier Window . . . 141
Working with Shadows. . . 164
CHAPTER 5: Static Meshes. . . 169
The Importance of Static Meshes. . . 169
Static Mesh Workflow Overview . . . 170
UV Texture Coordinates . . . 185
Considerations When Creating UV Layouts . . . 193
Creating Textures . . . 195
Importing Static Meshes. . . 197
Using the Static Mesh Editor . . . 200
Collisions . . . 202
Creating Custom Collisions. . . 205
Placing Static Meshes. . . 213
Static Meshes and Shadows. . . 216
CHAPTER 6: Introduction to Materials. . . 221
What Is a Material? . . . 222
Materials vs. Textures. . . . . 223
Texture Coordinates (UVs). . . . 223
Material Instructions. . . 224
Thinking About Color in Unreal. . . 225
A Quick Word on Lighting. . . 226
Anatomy of a Material . . . 226
Material Nodes . . . 227
Material Channels . . . 232
Material Expressions. . . 239
The Available Material Expressions. . . 244
Material Expressions List. . . 244
Parameter Expressions. . . 262
Material Creation. . . 264
Surface Properties . . . 274
The Surface Properties Dialog. . . 275
CHAPTER 7: Introduction to Lighting . . . 357
Light Placement. . . . 358
A Word on Building Lights. . . 358
Lighting Concepts . . . 375
Light Maps and Shadow Maps. . . 375
Static and Dynamic Lighting . . . 376
Per-Vertex Lighting and Lighting Subdivisions. . . 377
Types of Lights. . . 378
Toggleable Lights. . . 378
Moveable Lights . . . 378
Point Lights. . . 379
Spotlights . . . 380
Directional Lights. . . . 382
SkyLights. . . 382
Pickup Lights. . . 384
Light Properties . . . 387
General Properties. . . 387
Exclusive SpotLight Properties. . . 389
Exclusive DirectionalLight Properties. . . 389
Exclusive SkyLight Properties . . . 389
Lighting Channels . . . 390
Lighting Volumes . . . 394
Shadows . . . . . 394
Precomputed Shadows (Shadow Maps). . . . 395
Shadow Buffer Shadows . . . 396
Shadow Volume Shadows . . . 396
Shadow Modulation . . . 398
Light Environments . . . 405
Light Functions . . . 410
Workflow Tips . . . 415
CHAPTER 8: Terrain. . . 417
What Is Terrain? . . . 417
Accessing Terrain . . . 419
Terrain Anatomy and Properties . . . 427
Terrain Anatomy (Terminology) . . . 427
Terrain Properties . . . 428
TerrainMaterials and Layers . . . 433
TerrainMaterial Properties. . . 433
Terrain Layers . . . 434
Terrain Editor Dialog. . . 449
The Terrain Editing Dialog Interface Overview. . . 449
Terrain Editing Tools. . . 459
Decorating Your Terrain: Foliage and DecoLayers. . . 483
Foliage. . . 484
DecoLayers. . . 488
Terrain Workflow Considerations . . . 494
CHAPTER 9: Introduction to Unreal Kismet . . . 497
Kismet: The Big Picture. . . 497
Accessing Kismet . . . 498
Anatomy of a Sequence Object . . . 506
Types of Sequence Objects . . . 508
Events . . . 508
Actions . . . 509
Variables . . . 509
Conditions . . . 510
Matinee . . . 512
Kismet Sequence Flow . . . 512
Simple Kismet Sequences . . . 526
Commenting Kismet Sequences . . . 535
Intermediate Kismet Sequences . . . 536
CHAPTER 10: Unreal Matinee. . . 615
What Is Matinee? . . . 615
Matinee Terminology . . . 616
Accessing Matinee . . . 636
The Matinee Sequence Object . . . 636
Inputs . . . 637
Outputs. . . . 638
Variable Links . . . 638
Properties . . . 638
Matinee Data Object. . . 640
InterpActors . . . 641
Mover Kismet Event . . . 641
The Matinee Editor . . . 643
Toolbar . . . 644
Curve Editor . . . 644
Group/Track List . . . 644
Timeline . . . 645
Properties . . . 646
Types of Tracks. . . 647
Anim Control . . . 647
Color Property . . . 648
Event . . . 648
FaceFX . . . 648
Float Material Param. . . 648
Float Particle Param. . . 649
Float Property . . . 649
Morph Weight. . . 649
Movement. . . 649
SkelControl Scale . . . 650
Sound . . . 650
Effects Toggle . . . 651
Vector Material Param. . . . 651
Vector Property . . . 651
Director Group-Specific Tracks . . . 651
Matinee Considerations . . . 652
CHAPTER 11: Level Optimization . . . 705
General Optimization. . . 705
Understanding Overhead . . . 706
In-Game Performance Diagnostics . . . 706
Occlusion . . . 717
CullDistance and CullDistanceVolumes . . . 718
Levels of Detail . . . 719
Optimizing Lights and Shadows . . . 719
Light Maps . . . 719
Light Environments. . . 720
Light Functions . . . 720
Casting Light onto Unlit Materials . . . 720
The Primitive Stats Browser. . . 721
Dynamic Shadows and the Dynamic Shadow Stats Browser . . . 722
Material Optimization . . . 725
Multiple Materials per Object . . . 726
Material Instructions. . . 726
Unlit Translucency . . . 727
CHAPTER 12: Level Streaming. . . 731
Level Streaming Benefits. . . 732
Testing Level Streaming . . . 733
Streaming Methods . . . 733
Persistent Levels Versus Streaming Levels . . . 733
The Level Browser and Scene Manager . . . 734
Map Changing . . . 736
Level Streaming via Kismet. . . 757
Level Streaming via LevelStreamingVolumes. . . 758
Level Streaming via Distance. . . 767
Troubleshooting . . . 777
Level Streaming Considerations . . . 777
APPENDIX A: The Unreal Editor User's Guide. . . 779
The Main Menubar . . . 779
The Toolbar . . . 781
File Options . . . 781
Undo and Redo . . . 782
Far Clipping Plane Distance . . . 782
Transform Tools . . . 782
Search for Actor . . . 783
Toggle Fullscreen . . . 783
Cut, Copy, and Paste . . . 783
Generic Browser . . . 783
Kismet . . . 783
Toggle Brush Polys . . . 783
Toggle Prefab Lock . . . 783
Use Curves Button . . . 783
Enable/Disable Socket Snapping. . . 783
Building . . . 784
Play Level Area . . . 784
The Toolbox . . . 785
Camera and Utilities Area . . . 785
Brush Primitives Area . . . 786
CSG Operations Area . . . 792
Additional Brushes Area . . . 793
Selections Area . . . 794
The Viewports . . . 795
Navigation . . . 796
Viewport Controls. . . 797
Viewport Toolbar . . . 798
Viewport Context Menu. . . 802
The Console Bar . . . 804
Command Line . . . 805
Selection Status . . . 805
Transform Status . . . 805
DrawScale Numeric Fields . . . 805
Drag Grid . . . 805
Rotation Grid . . . 805
Scale Grid . . . 806
AutoSave . . . 806
Browsers . . . 806
Generic Browser. . . 806
Actor Classes Browser. . . 811
Groups Browser . . . 813
Level Browser . . . 815
Referenced Assets Browser . . . 816
Primitive Stats Browser . . . 818
Dynamic Shadow Stats Browser. . . 819
Scene Manager . . . 820
Log . . . 822
Editors . . . 823
Static Mesh Editor. . . 823
Material Editor. . . 824
Kismet Visual Scripting Editor. . . 824
Matinee Editor . . . 826
PhAT (Physics Asset Tool) Physics Editor. . . 826
Cascade Particle System Editor . . . 826
User Interface Scene Editor . . . 828
SoundCue Editor . . . 828
Post Process Manager . . . 828
AnimSet Editor . . . 830
AnimTree Editor. . . 830
Search for Actors . . . 831
Property Windows . . . 832
Actor Properties . . . 832
Surface Properties . . . 833
APPENDIX B: The Curve Editor. . . 835
Animation Curves . . . 836
Controlling Interpolation Curves . . . 838
Auto . . . 839
User . . . 840
Break. . . . 840
Linear. . . 840
Constant . . . 842
Curve Editor Interface. . . 842
Curve Editor Toolbar. . . 842
Curve Editor Curve Key List. . . 844
Curve Editor Graph View . . . 846
Preset Curves . . . 847
Available Preset Curve Settings. . . 848
Index. . . 851