Unreal Technology Features
Tim Sweeney
Epic MegaGames, Inc.
http://www.epicgames.com/
Last Updated: 07/21/99
A Complete Solution
The biggest strength of the Unreal technology, relative to third-party and
homegrown tools, is that it provides a complete solution that has stood the
tough test of real-world game development. While there are certainly some
quality third-party game components on the market, such as QSound,
Motivate!, and Caviar, they all provide only a small part of the overall 3D
game-development equation. The saying "God is in the details" is very
applicable to game engine development: a cool rendering algorithm can only be
exploited if it integrates seamlessly into an engine's collision,
visibility, networking, AI, and file management subsystems. All of
Unreal's components have been designed together; they provide a consistent
programming interface; and they fully interoperate.
As a technology developed in conjunction with a leading-edge, high-detail
game, the tradeoffs that Unreal makes on detail versus realism are fundamentally
sound and taylored to real-world constraints. For example, some people may
criticise Unreal's cyllindrical actor collision system as being low-tech
compared to an IK-based system. However, this decision was made with an
accute awareness of all the ramifications it had on the overall product:
cyllindrical collision makes AI, player control programming, and network
predication much simpler, and it keeps performance up. A collision system
designed in isolation could easily be more advanced than Unreal's, and it would
probably cause countless headaches when making it work with the rest of the
codebase and making it run at a decent frame rate on 1998-1999 PC's.
Editing Tools
- UnrealEd is a realtime level design tool based on constructive solid
geometry, optimized for building realtime 3D environments.
- UnrealEd is fully integrated into the Unreal engine, so the camera views
are what-you-see-is-what-you-get: all lighting, texture placement, and
geometry operations take effect immediately, providing extremely fast feedback
while building levels.
- UnrealEd "brushes," the basic units of CSG, can be unlimited in size: no
limitations on polygon counts or convexity.
- Brushes can be generated within the editor using many built-in tools such
as box, cylinder, sphere, staircase, spiral staircase, and cone.
- Brushes can be imported from .DXF or .ASC files.
- Visual editing of properties of actors and objects.
- In UnrealEd, you are one mouse click away from launching your level for
play testing.
- "Texture browser" tool for easily selection and replacement of textures.
- "Surface properties" tool for easily modifying attributes of surfaces such
as alignment, scaling, panning, and special effects.
- "Actor properties" tool for visual editing of actors, similar to Visual
Basic.
Mesh animation
- All mesh animations (creatures, weapons, etc) can be imported as frames
from .DXF files output from state-of-the-art tools like 3D Studio Max, Alias
PowerAnimator, SoftImage, or motion-capture tools.
- Mesh animations support interpolation enabling perfectly fluid animation
at high frame rates. With interpolation, an animation recorded at 15 fps
can be played back at 40 fps perfectly smoothly.
- Support for "tweening" between disjoint animation sequences, enabling
monster and player animation to smoothly flow between actions.
Rich, organic surface support
- Texture mapping for applying base detail to surfaces.
- Multicolored light and shadow mapping for applying
complex, dynamic, multicolored lighting to surfaces with shadowing and
numerous special effects, including water refraction caustics.
- Fog mapping for applying atmospheric and volumetric
lighting and fog effects to three-dimensional volumes of space.
- Detail texture mapping to add extremely close-up details
to surfaces, such as fine wood grain, pock marks on brick surfaces, or
scratches to metal surfaces.
- Macro texture mapping for adding very large scale detail
to surfaces, for example, adding erosion patterns to an outdoor landscape, or
applying a hand-painted facade to a large building.
- Parametric, fractal, and animated texture mapping support
for creating organic animating materials with endless variety, such as fire,
realistically wavy water, scum, ice, puddles, and so on.
- Translucency, modulation, and masking texture effects.
- Sky portalization enables level designers to build
complex "sky volumes" containing realistic sky, stars, moons, suns, geometry,
etc. and see out of their level into the sky box, as if the sky box is
infinite in size.
- Up to 12 levels of mipmapping.
- Supports texture animation sequences with variable
playback rate and automatic synchronization to one-shot special effects like
explosions.
State of the art mesh support
- Curved-surface rendering support, with an adaptive level-of-detail
subdivision surface rendering algorithm, eliminating polygonization.
This makes organic objects, such as the alien cows in Unreal, exceptionally
smooth and realistic.
- Supports environment mapping and chrome mapping, for reflective objects
like those in Terminator 2.
- Parametric mesh deformation enables meshes to be made fatter or thinner to
add variety to organic objects.
- Character models may be "skinned" with up to eight independent texture
maps of sizes up to 256x256, enabling extremely high-detail texturing.
- Variable translucency, which enables transparent objects, like explosions
and special effects, to fade out smoothly.
- Modulation blending, enabling smooth, colored smoke and darkening effects.
Artificial Intelligence
- Built-in AI support for advanced creatures and bots.
- Bots know how to use all player movement options, weapons, and inventory.
- Bots know how to use switches, and navigate past platforms, and doors.
- Physics based AI makes complex actor movement straightforward.
- Animation system ties into AI via notification system, with animation
playing, looping, and tweening.
- Path node based AI navigation system, with support for complex route
evaluation, alarm points, and stasis states.
- Object orientation makes AI extremely expandable and customizable.
- AI properties are exposed to level editing tool for level designers to
tweak.
Digital Sound System
- Supports 3D positioning via distance attenuation, stereo panning, doppler
shifting.
- Supports software Dolby Surround sound encoding for full 360-degree
panning among the center, rear, left, and right channels (requires a Dolby
decoder).
- Supports rich, ambient environmental sounds which can be fully controlled
from UnrealScript.
- Advanced software mixer supports up to 64 stereo channels of music and
sound, and mixes to a 32-bit buffer internally for maximum sound quality.
- Supports 8- and 16-bit samples using any playback rate from 4 kHz to 44
kHz.
- Dynamic sample interpolation enables high-quality pitch shifting without
distortion.
- Optimized to take advantage of Intel's MMX™ technology, with fallback to
support regular Pentium® processors.
- Supports DSP-style reverb and echo postprocessing on the sound effect
stream.
- Aural raytracing realistically simulates the echo and reverb
characteristics of complex environments. When enabled, UnrealEd
pre-computes a reverb kernel for each designer-specified zone in the level.
- Supports Microsoft DirectSound and legacy WinMM sound output for backwards
compatibility.
- Plug-in interface makes it possible to integrate other sound systems into
the Unreal technology.
- Supports Aureal A3D 3D sound positioning, and the upcoming Creative Labs
3D sound cards.
Digital Music System
- Supports both CD audio and realtime digitally mixed music. Game
designers can mix and match soundtracks in both formats to take maximum
advantage of the speed and quality of CD music and the dynamic music and
Internet portability of digitally mixed music.
- Smooth and instantaneous dynamic music changes for fading between songs,
fading between tracks within a song, fading to silence, and instantly
switching songs.
- Realtime mixing of musical instruments and sound effects.
- Supports volume and panning envelopes for professional composing.
- Supports up to eight octaves per sample.
- Supports all widely used module file formats, including .mod, .s3m, .xm,
and .it.
Lighting
- Multicolored lighting with true colored intermixing of fuzzy shadows.
- Supports raytraced and enveloped lighting.
- Radial, cylindrical, spotlight, searchlight, ambient, spherical, shell,
and 20+ special effect lights.
- Caustic effects such as "fire waver", "watery shimmer", and the like can
be applied to lights.
- Realtime editing of lights in UnrealEd.
- Multicolored lighting supported both on 3D hardware and in all software
rendering modes (with and without MMX technology). This gives designers a far
more consistent look and feel on all target hardware than is achievable with
engines which only support monochromatic lighting in software.
- Supports lens flares and coronas.
Rendering
- Software rendered 16- and 32-bit color with special optimizations for MMX
technology and Pentium II processors.
- Hardware rendered 16-bit color (24-bit coming when supported by hardware).
Technical programming
- Programming APIs in C++ and UnrealScript.
- Complete four-way calling interface between C++ and UnrealScript, enabling
development of complete projects in either language.
- Based on rich, extensible, object-oriented class hierarchy.
- Highly modularized and replaceable, with all Unreal I game code cleanly
segregated from all general engine code.
- C++ interface based on object model similar in style to MFC, the
applications framework used by nearly all non-game Windows applications.
- Supports dynamic loading of DLL's and scripts on demand, for modularity
and efficient memory usage.
- Robust debugging environment, with VC++ debugger support; flexible
assertion system; and try-catch call stack display for tracking down errors
in the field.
- UnrealScript interface based on object model similar to Java.
- Garbage collected.
- One hundred percent portable: UnrealScript code runs on all supported
platforms without recompiling.
- "Everything is an object."
- Safe client-side "sandbox" execution model.
- Fully featured set of of datatypes and operators.
- Native language support for intuitively constructing hierarchical finite
state machines (HSFM's).
- Performance optimization tools.
- UnrealScript profile.
- Comprehensive game, engine, and networking performance counters.
Game programming
- Game programming via C++ or UnrealScript.
- Object-oriented class hierarchy that maps naturally onto game concepts
(players, monsters, inventory, triggers, etc).
- UnrealScript native language support for states and state scoping of
functions, time-based execution and latent functions, and networking. This
includes replication, priority management, reliability, and remote procedure
calls (RPC), enabling developers to easily optimize their content for Internet
play.
- Advanced AI, pathfinding, and navigation system.
- Powerful, fully customizable physics system.
Networking
- Unreal includes the most advanced game networking capabilities of any game
to date.
- Supports both small LAN games and large-scale, server-based Internet
games.
- Gamers can travel between UnrealServers on the Internet much like browsing
Web pages, with teleporters providing a link between servers.
- Automatic downloading of new content (levels, textures, sound, models,
scripts) while browsing the Unreal universe.
- Java-style client-side scripting capabilities enable high performance even
over slow 28.8K Internet connections.
Portability
- Modularization of Unreal's platform-specific code makes the engine fairly
portable.
- Already up and running on MacOS with 3D hardware support and
Mac<->PC networking.
- Portable to high-end consoles systems with 16+ megs of RAM.
Next-generation consoles are appropriate but current systems like the N64 and
Playstation are not feasible.
Scalability
- Built on a highly modular, object-oriented foundation, the Unreal
technology is designed to evolve through many generations of technological
advances.
- There are very few hardcoded limits in Unreal. Scenes and levels of
arbitrary complexity are supported; the only factor that limits complexity is
virtual memory and speed.
- There are no limits on the sizes (dimensions) of polygons, enabling the
creation of large outdoor spaces. Such areas perform quite well as long
as visible polygon counts are kept within reason. This is a significant
advantage over "surface cache" based rendering, which artificially restricts
the size of surfaces.
Realtime algorithmic texture engine
- Wavy textures for producing on-the-fly planar displacement mapped textures
with waves such as ponds, oceans, lava, and puddles.
- Algorithmic field-based realistic fire, explosion, particle, smoke, and
steam effects.
- Animated ball and line lightning.
- All effects are fully customizable with a gigantic number of adjustable
parameters and drawing modes.
- All effects are algorithmically generated in realtime, enabling seamless
animation that never repeats.
Dynamic scene graph technology
Dynamic scene graph (DSG) technology is a natural extension of portal
technology. A dynamic scene graph consists of a root node, corresponding
to the player's immediate surroundings, and a hierarchical tree of child
nodes. Each DSG node has a coordinate system transformation, clipping
volume, and other rendering state associated with it. Unreal's rendering
engine constructs a dynamic scene graph on-the-fly as each frame is
rendered. New scene graph nodes are generated as the viewer's visibility
propagates outward through portals. Scene graph nodes are the basic
building blocks of many realistic effects and special effects, such as:
- Mirror surfaces.
- Semireflective materials, such as marble surfaces which partially reflect
light.
- Non-euclidean, redirectable "warp" portal effects for seeing through
teleporters.
- Seeing through windows into an infinite sky zone in which a sky, planets,
mountains, and other objects are constructed.
- Skies and backgrounds with independent coordinate systems for independent
translation and rotation.
The strength of DSG rendering is that all of the node effects are fully
interoperable. For example, once a mirror DSG node is defined, mirrors
are automatically supported recursively (for hall-of-mirror type effects);
mirrors work with skies; mirrors work with warp portals; warp
portals work with skies, etc.
Unreal's dynamic scene graph technology is a basic building block which will
be extended in future versions of the technology to incorporate such
next-generation effects as seeing between levels, seeing across multiple servers
on the Internet, and refractive water.
Tremendous Extensibility
Most of Unreal's subsystems are designed to be highly extensible, by defining
an abstract base class (such as URenderDevice for a general rendering device) to
expose the general functionality to other modulars, while implementing one or
more specializations of the subsystem (such as UGlideRenderDevice for the 3dfx
rendering code, or UOpenGlRenderDevice for the OpenGL rendering
code). The following are some of the modules which are designed for
extensibility:
- Actor Modules
- Game Types
- Rendering Modules
- Sound Modules
- Data Import Modules
- Data Export Modules
- Console Modules
- Network Protocol Modules
- Network Helpers
- Way More
User interface & localization
- Object-oriented, highly expandable in-game menu system for running in
fullscreen-mode.
- Customizable, hierarchical subsystem-oriented "preferences" setting user
interface in-a-window.
- Native support for localization of text to 8-bit languages, via CODEPAGE
850 and replaceable fonts.
- Built-in UnrealScript and C++ support for externalization of all text,
enabling non-programmer translation to all 8-bit languages.
Deliverables provided to licensees
- UnrealEd and the standalone .DXF importing tools.
- Full, commented C++ and UnrealScript source code for everything.
- All corresponding executables and data.
- Limited documentation.
- All Unreal 1 game-specific content and game scripts. (For example purposes
only. Not redistributable.)
- Updates for the duration of the license period, provided at milestones
during development, which is on average every one to two months.
Licensing & business information
Contact Mark Rein: mrein@epicgames.com.
End