Deus Ex/Class Changes
About this Page
Deus Ex was built with a modified version of the Unreal Tournament engine. Modifications included changes to the base classes as well as new classes to support the game.
This page will attempt to describe those differences.
Analysis Process
Generally, go through and comment the class files so UncodeX can use the Class Wikifier add-in.
UncodeX comments have to be surrounded with /** */, and above the thing they're describing.
Many classes separate members into "sections" with horizontal bars in the comments. UncodeX orders everything alphabetically by section, so this is lost. For these, I change the declaration as if exposing the value to UnrealED, but with a prefix so I know that it's really not.
Like this:
/** hour */ var(_Current Time)transient int Hour;
I use BeyondCompare to find "interesting" classes and members. That is, things that don't behave the way Unreal Tournament does, or things new to Deus Ex.
For now, I'm just commenting everything - I don't know enough about UT to do triage. I'll weed out the obvious stuff later.
Similar Classes
Some classes have differences that aren't important, like spacing, precision of default variables, etc. The differences may be significant if you're using UnrealED 2.0 for Deus Ex, but I'm not sure.
Here they are:
AmbientSound, Ambushpoint, Camera, Carcass, Counter, Dispatcher, HomeBase, Keypoint, LiftCenter, Light, MusicEvent, PathNode
Class Difference Outline
Here are all the classes that are somehow different from UT. This could mean:
- Stuff added to Deus Ex,
- Stuff added to UT after Ion Storm started messing with the engine
- Stuff Ion Storm took out for Deus Ex.
It's hard to tell the difference, since we don't have the same version of the code Ion Storm started with.
All comparisons are to Unreal Tournament build 437
Common to all Packages
Changes in Unreal Tournament
- Many float? defaultproperties are given to six digits of precision in Unreal Tournament, two in Deus Ex.
- Textures and other resources tend to be referenced by their package name. In Deus Ex, just the resource name is given most of the time.
- Several defaultproperties that are raw numbers in Deus Ex are Enums in Unreal Tournament.
- FixMe? Can you give default values for enums as the enum name instead of a number in Deus Ex? Note: try this
- Some changes in the classes suggest that axis directions are different in Unreal Tournament. Can anyone confirm this?
T1: Note, I think these changes are just changes in the Deus Ex version of UCC, or laziness on the part of the programmer.
UT Packages/Folders not in Deus Ex
- Botpack
- Logs
- NetGamesUSA.com
- UMenu
- UnrealShare
- UTBrowser
- UTMenu
- UTServerAdmin
- UWeb
- Web
DX Packages/Folders not in UT
- ConSys - Conversation system
- ConvEdit - Conversation system
- DeusEx - actual gameplay code
- DeusExCharacters - no code, just import execs.
- DeusExConversations - no code, just import execs.
- DeusExConText - no code, just importated text from ConEdit
- DeusExDeco - no code, just import execs.
- DeusExItems - no code, just import execs.
- DeusExSounds - no code, just import execs.
- DeusExText - no code, just import execs.
- DeusExUI - no code, just import execs.
- Extension - contains code for UI, input system, several other things.
- MPCharacters - no code, just import execs.
Specific changes to classes in existing packages
Core package
Editor package
- BrushBuilder (DX)
- [ConeBuilder (DX)]?
- CubeBuilder (DX)
- [CylinderBuilder (DX)]?
- [SheetBuilder (DX)]?
- Formulas are different, divides dimensions by 2 for some reason
- [TetrahedronBuilder (DX)]?
- EditorEngine (DX)
Engine package
- Actor (DX)
- Ammo (DX)
- Bitmap (DX)
- [Brush (DX)]?
- [Canvas (DX)]?
- DX uses a "FontFactory" to import the large font, UT just uses a regular #exec function?
- Console (DX)
- Decal (DX)
- Decoration (DX)
- Fragment (DX)
- GameInfo (DX)
- [GameReplicationInfo (DX)]?
- replication section changed
- [HUD (DX)]?
- no ProcessKeyEvent() function in DX
- [InterpolationPoint (DX)]?
- function InterpolateEnd() changed
- Inventory (DX)
- Lots of new stuff
- LevelInfo (DX)
- [MapList (DX)]?
- Maps() and MapNum() properties are globalconfig in DX, config in UT
- [Mover (DX)]?
- function FinishedClosing() uses different PlaySound() function in DX'
- so does FinishedOpening()
- and DoOpen()
- and DoClose()
- function EncroachingOn() changed
- state TriggerToggle() has new features in DX
- [Mutator (DX)]?
- DX has much less in here than UT. Nothing new.
- [NavigationPoint (DX)]?
- two new properties in UT
- default CollisionRadius smaller in DX, unles using different metrics
- [PatrolPoint (DX)]?
- DX has bugfix in PreBeginPlay()
- Pawn (DX)
- [Pickup (DX)]?
- [Player (DX)]?
- [PlayerPawn (DX)]?
- [PlayerReplicationInfo (DX)]?
- [PlayerStart (DX)]?
- [Projectile (DX)]?
- [RenderIterator (DX)]?
- [ScaledSprite (DX)]?
- [Scout (DX)]?
- [SkyZoneInfo (DX)]?
- [SpawnNotify (DX)]?
- [SpecialEvent (DX)]?
- [Spectator (DX)]?
- [Spotlight (DX)]?
- [StatLog (DX)]?
- [Teleporter (DX)]?
- [TestInfo (DX)]?
- [Texture (DX)]?
- [Trigger (DX)]?
- [TriggerLight (DX)]?
- [Triggers (DX)]?
- [VoicePack (DX)]?
- [WarpZoneMarker (DX)]?
- [WayBeacon (DX)]?
- [Weapon (DX)]?
- [ZoneInfo (DX)]?
IpDrv package
- IpDrv.UdpBeacon (DX)]]
IpServer package
- IpServer.UdpServerQuery (DX)]]
- IpServer.UdpServerUplink (DX)]]
Discussion/Comments
Xhiris: I've changed my process for several reasons. For now, I'm ignoring any differences between UT and Deus Ex, since modders are more likely to work within DX than try to port things over to-from UT. For now, I'm going through and commenting up the class files to let UncodeX work with them. When that's done, I'll go back through each one andpretty it up, adding info specific to DX where needed.