The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall

Legacy:Deus Ex/Class Changes

From Unreal Wiki, The Unreal Engine Documentation Site
< Legacy:Deus Ex
Revision as of 12:42, 25 November 2006 by Fyfe (Talk) (Removed link to Class Difference Outline. It was merged witht this page.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

About this Page[edit]

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[edit]

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[edit]

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[edit]

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[edit]

Changes in Unreal Tournament[edit]

  • 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[edit]

  • Botpack
  • Logs
  • NetGamesUSA.com
  • UMenu
  • UnrealShare
  • UTBrowser
  • UTMenu
  • UTServerAdmin
  • UWeb
  • Web

DX Packages/Folders not in UT[edit]

  • 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[edit]

Core package[edit]

Editor package[edit]

Engine package[edit]

  • HUD (DX)
    • no ProcessKeyEvent() function in DX
  • 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

IpDrv package[edit]

  • IpDrv.UdpBeacon (DX)]]

IpServer package[edit]

  • IpServer.UdpServerQuery (DX)]]
  • IpServer.UdpServerUplink (DX)]]

Discussion/Comments[edit]

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.