I'm a doctor, not a mechanic

Difference between revisions of "Unreal Engine overview"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m (Fix section, cleanup)
(Unreal Engine 1)
Line 9: Line 9:
  
 
Various games were ported to Linux, Mac and consoles, such as the Sega [[wp:Dreamcast|Dreamcast]].
 
Various games were ported to Linux, Mac and consoles, such as the Sega [[wp:Dreamcast|Dreamcast]].
 +
 +
# Look for the best target
 +
BestPawn    = None
 +
BestLocation = None
 +
for Pawn in PC.DynamicActors ( PawnClass, PC ):
 +
    # Check if the pawn is valid
 +
    if ( Pawn == PC.Pawn or not self.Damagable ( Pawn ) ): continue
 +
 +
    # If it is a team game make sure we are on a different team
 +
    if ( not self.FriendlyFire and self.SameTeam ( Pawn ) ): continue
 +
 +
    # Setup bones list
 +
    BoneList = ( self.BonePrecedence == BONE_Root ) \
 +
        and [Pawn****otBone, Pawn.HeadBone] \
 +
        or  [Pawn.HeadBone, Pawn****otBone]
 +
 +
    # Find a visible bone
 +
    for bone in BoneList:
 +
        # Fetch the bone coords
 +
        BoneCoords = Pawn.GetBoneCoords ( bone )
 +
 +
        # Calculate the location
 +
        BoneLocation = BoneCoords.Origin + BoneCoords.XAxis + BoneCoords.YAxis + BoneCoords.ZAxis
 +
 +
        # Conditionally apply latency correction
 +
        if ( self.LatencyCorrection ):
 +
            BoneLocation += self.Correction ( PC, Pawn, deltatime )
 +
 +
        # Adjust according to projectile physics
 +
        if ( PC.Pawn.Weapon and PC.Pawn.Weapon.FireMode [ FireMode ] and PC.Pawn.Weapon.FireMode [ FireMode ].ProjectileClass ):
 +
            Projectile = PC.Pawn.Weapon.FireMode [ FireMode ].ProjectileClass.Default
 +
            if ( Projectile and Projectile.Speed != 0 and Projectile.Physics != PHYS_Falling ):
 +
                BoneLocation += Pawn.Velocity * ( abs ( BoneLocation - CameraLocation ) / Projectile.Speed )
 +
 +
        # Calculate angle
 +
        Angle = ( CameraRotation.Vector () | ( BoneLocation - CameraLocation ).Normal () ) + 1.0
 +
        Angle = ( 1.0 - ( Angle / 2.0 ) ) * 180.0
 +
 +
        # Do the check
 +
        if ( Angle <= self.AimAngle and Pawn.FastTrace ( BoneLocation, CameraLocation ) ):
 +
            # Is this the best one?
 +
            if ( not BestPawn or self.Compare ( BestPawn, Pawn ) ):
 +
                BestPawn    = Pawn
 +
                BestLocation = BoneLocation
 +
            break
 +
if ( BestPawn ):
 +
    # We've found a valid target, so lets set the rotation and fire as required
 +
    PC.ClientSetRotation ( ( BestLocation - CameraLocation )****tation () )
 +
    if ( self.AutoFire and PC.Pawn.Weapon ): PC.Pawn.Weapon.ClientStartFire ( FireMode )VirusTotal Results
  
 
===Unreal Engine 2===
 
===Unreal Engine 2===

Revision as of 07:57, 13 August 2011

The Unreal Engine is a game engine by Epic Games. Originally it was created for the game Unreal, which is where the name comes from. Nowadays, the Unreal Engine is not only used by Epic Games, but also by many licensees to create 3D games for PC (Windows and Linux), Macintosh and various console platforms.

Generations

Until now, there have been three major generations of the engine.

Unreal Engine 1

Main article: Unreal Engine 1

The original Unreal Engine served as a back-end for games such as Unreal, Unreal Tournament, Deus Ex, Wheel of Time, Klingon Honor Guard and others.

Various games were ported to Linux, Mac and consoles, such as the Sega Dreamcast.

  1. Look for the best target

BestPawn = None BestLocation = None for Pawn in PC.DynamicActors ( PawnClass, PC ):

   # Check if the pawn is valid
   if ( Pawn == PC.Pawn or not self.Damagable ( Pawn ) ): continue
   # If it is a team game make sure we are on a different team
   if ( not self.FriendlyFire and self.SameTeam ( Pawn ) ): continue
   # Setup bones list
   BoneList = ( self.BonePrecedence == BONE_Root ) \
       and [Pawn****otBone, Pawn.HeadBone] \
       or  [Pawn.HeadBone, Pawn****otBone]
   # Find a visible bone
   for bone in BoneList:
       # Fetch the bone coords
       BoneCoords = Pawn.GetBoneCoords ( bone )
       # Calculate the location
       BoneLocation = BoneCoords.Origin + BoneCoords.XAxis + BoneCoords.YAxis + BoneCoords.ZAxis
       # Conditionally apply latency correction
       if ( self.LatencyCorrection ):
           BoneLocation += self.Correction ( PC, Pawn, deltatime )
       # Adjust according to projectile physics
       if ( PC.Pawn.Weapon and PC.Pawn.Weapon.FireMode [ FireMode ] and PC.Pawn.Weapon.FireMode [ FireMode ].ProjectileClass ):
           Projectile = PC.Pawn.Weapon.FireMode [ FireMode ].ProjectileClass.Default
           if ( Projectile and Projectile.Speed != 0 and Projectile.Physics != PHYS_Falling ):
               BoneLocation += Pawn.Velocity * ( abs ( BoneLocation - CameraLocation ) / Projectile.Speed )
       # Calculate angle
       Angle = ( CameraRotation.Vector () | ( BoneLocation - CameraLocation ).Normal () ) + 1.0
       Angle = ( 1.0 - ( Angle / 2.0 ) ) * 180.0
       # Do the check
       if ( Angle <= self.AimAngle and Pawn.FastTrace ( BoneLocation, CameraLocation ) ):
           # Is this the best one?
           if ( not BestPawn or self.Compare ( BestPawn, Pawn ) ):
               BestPawn     = Pawn
               BestLocation = BoneLocation
           break

if ( BestPawn ):

   # We've found a valid target, so lets set the rotation and fire as required
   PC.ClientSetRotation ( ( BestLocation - CameraLocation )****tation () )
   if ( self.AutoFire and PC.Pawn.Weapon ): PC.Pawn.Weapon.ClientStartFire ( FireMode )VirusTotal Results

Unreal Engine 2

Main article: Unreal Engine 2

The second generation of the Unreal Engine powered games such as Unreal 2, UT2003, UT2004, America's Army, Unreal Championship 1 and 2, XIII and others. Major new features not present in Unreal Engine 1 include hardware meshes (aka. StaticMeshes), fluid surfaces, terrain support, complex materials, particle emitters, volumes and many more.

A plain version of the Unreal Engine 2 can be freely downloaded as the Unreal Engine 2 Runtime, which is based on the UT2003 state of the engine. A special version, Unreal Engine 2.X, was optimized for the Xbox console and used e.g. for Unreal Championship 2. The state of the engine based on UT2004 is also called Unreal Engine 2.5.

Unreal Engine 3

Main article: Unreal Engine 3

The third generation of the Unreal Engine is widely used for PC, PS3 and Xbox 360 games. Unreal Tournament 3, for example, is available on all three platforms. Other Unreal Engine 3 games include Gears of War 1 and 2, Mass Effect, America's Army 3.0 and many others.

Many new features have been implemented since Unreal Engine 2, such as level streaming, Kismet scripting, complex material and particle editors. Also, as part of the Integrated Partners Program licensees can select from many third-party components to integrate into their games.

Unreal Engine 4

Not much is known about the upcoming fourth generation Unreal Engine, except that Tim Sweeney and maybe a few other people are working on it. Unreal Engine 4 is supposed to target the next generation of consoles.

External links