Report bugs to: unreal224@epicgames.com.
If you're experiencing a crash, please attach a copy of your log
file: \Unreal\System\Unreal.log to help us troubleshoot.
Compatibility
The Unreal 224 patch is compatible
with the following commercial versions of Unreal:
- Unreal 200 (English): This
comprises all boxed retail copies of Unreal in North America.
- Unreal 200-209 (International):
All boxes retail copies of Unreal in Europe, Australia, and Asia
in English, French, Spanish, German, and Italian.
- Unreal 3dfx OEM version 223
(Bundled with 3dfx Voodoo3 boards).
Versions of Unreal bundled with
hardware between version 209 and 221 are not compatible with the
patch.
It's safe to install 224 on top of
previous Unreal patches. The 224 patch replaces any old files
that need updating.
224 should be compatible with all
user-created maps, texture sets, sound files, and music files.
224 is not compatible with past user mods (.u files) or maps which
rely on mods for operation; these mods will need to be recompiled,
as described on the Epic
Unreal Tech Page.
Fixes and Improvements
General
- Fixed new problem in 220 where
users who had performed a partial install of Unreal (with maps
kept on the CD) didn't see any maps listed in the Deathmatch/BotMatch
menus.
- "FOV #" command now
takes effect permanently.
- Minigun and stinger sounds are now
properly replicated to all clients.
- Botmatch skill bug in 220 fixed.
- Lookspring fixed.
- Kevlar vest pickup sound and dead
guy in Vortex Rikers sound fixed.
- Bubbles now float properly on
clients.
- Fixed projectiles not appearing on
client side because local player ran into them.
- Carcasses are now simulated for
smoother death animations, and all the nali and skaarj gibs are
properly replicated.
- Fixed bug where quick taps of fire
button didn't register in network games.
- Slightly reduced damage multiplier
in Hardcore mode (150% instead of 170%), and rocket damage
radius in Classic mode is back to the old value.
- Fixed razorjack sound crash
problem with 3D sound.
- Fixed problem where the editor
light torches were showing up in some levels in network play.
- Fixed client prediction going
through portals.
- Eliminated menu bar when playing
in windowed mode.
- Fixed inability to join a network
game while you are running a non-dedicated server.
Video
- Fixed menu bar disappearing when
switching from Glide to the software renderer.
- Fixed potential crash while taking
screenshots on 3dfx.
- Works properly on Voodoo3. Voodoo3
support was broken in Unreal 209 through 220.
- Supports compressed S3TC textures
(though there aren't any in Unreal 1).
OpenGL Beta Driver
- New, rewritten OpenGL driver.
- Works quite well on the Riva TNT.
Important: you need the latest TNT Detonator drivers from
NVidia's web site for this to work.
- Other cards are in the early
testing phase now. Don't expect a lot. We can't provide support
for getting Unreal OpenGL running on other cards or answer
questions about them at this time.
Networking
- Fixed remote administration
(didn't accept password).
- Fixed administrator "Kick
<playername>" crash.
- Fixed dedicated server potential
crash when player limit is reached.
- Added "userini=<inifilename>"
command-line parameter to set user configuration file.
- Added server-side demo recording -
currently in alpha state. You can record demos in botmatch or on
a dedicated or non-dedicated server. Demos can be played back
from any perspective. To record a demo, type DEMOREC filename at
the console. Stop recording or playback with the STOPDEMO
command. DEMOPLAY filename will play back the demo.
- The Unreal Server Browser (UBrowser)
is included, and is available under Join Game in the Multiplayer
menu.
Scripting
- Fixed "Unreal -make"
lockup with class names over 32 characters.
- The new keyword "native"
is now synonymous with "intrinsic", and the Unreal 1
scripts have been updated to reflect this.
- In network play, on the client
side, static functions are always called locally and never sent
across the network, regardless of the calling actor's
replication statements.
- Fixed compiler logic error which
caused bool variables within structs to appear to always be
zero.
- Removing "abstract"
keyword from a class and recompiling now works.
- Player classes with no mesh no
longer hard-coded to use name "Spectator" in mesh
menu. Instead, the pawn MenuName attribute is used as the
string representation for all playerpawn classes.
- All strings are now dynamically
sized, meaning there is no longer any limit to their length.
Declaring strings with the syntax "string[255]" is now
obsolete; just use "string".
- The Chr() function converts
generates a one-character string whose first character is the
ASCII/Unicode value you specify. Exception: Chr(0) returns a
zero-length string.
- The Asc() function returns the
ASCII/Unicode character code of the first character of the
string you specify, or 0 if the string is empty.
- New array<type> construct
for defining dynamically sizable arrays. This is only
implemented for configuration loading and C++ access; dynamic
arrays aren't accessible by script yet.
- Fixed broken EDITACTOR console
command.
- Actor class now contains
MultiSkins array enabling multiple skins to be applied to
meshes. Not used in any Unreal 1 classes, though. Will be
exploited in Unreal Tournament.
- New string concatenation operator
"@" concatenates two strings (like "$") but
adds a space between them (unlike "$").
- Actors were previously being
ticked (updated) two times between initial spawn and rendering.
Now they are only ticked once.
- Improved "OBJ REFS"
console command not only shows who references the specified
object, but also shows the shortest reference path from the
"root set" to the object, so you can see why the
object isn't being garbage collected. Very useful for tracking
down extraneous objects in order to reduce memory usage.
Installer
- Reduced virtual memory usage (was
unreasonably high).
- Progress window is now updated as
the patch installs.
- New standalone installer.
- Supports selectable groups.
- Supports partial installation.
- Supports mod installation.
- Supports mod uninstallation.
C++ General Changes
- Changed "INTRINSIC"
macro to "DECLARE_FUNCTION", and "AUTOREGISTER_INTRINSIC"
to "IMPLEMENT_FUNCTION" (to follow the convention set
by DECLARE_CLASS and IMPLEMENT_CLASS).
- Changed all occurances of
"intrinsic" to "native" (moving toward the
Java convention).
- Moved FBitReader, FBitWriter
archives to Core.
- Improved generality of
appCeilLogTwo.
- Command-line compiler is now
invoked with "ucc make" rather than the old
"unreal -make". This is now a non-windowed,
command-line application. You can run it as an external tool
through Visual C++, and direct the outputs to the results
window. This is the preferred mode of operation, because the
compiler now outputs error messages in Visual C++'s standard
error format, enabling you to double-click on the error message
in the VC++ IDE and jump right to the error.
- The compiler now generates
warnings when you do things that are dangerous but non-fatal,
for example using "#exec" commands to import non-existant
files.
- All UnrealScript strings are now
represented internally as FString structures, which manage
dynamic, variable-length, infinitey-expandable strings.
This impacts all auto-generated C++ headers such as
EngineClasses.h.
- Static functions are always called
in network play, regardless of their replication and
simulatedness.
- Warning: Strings greater than
approximately 400 characters won't be replicated in network
play. They won't fit in packets.
- UnrealScript interpretter has been
modified, improved, and optimized to handle data types which
need to be dynamically constructed and destructed on the stack
frame, such as dynamic strings (now) and dynamic arrays (coming
later).
- Improved and generalized TMap, a
template for mapping arbitrary keys to arbitrary values.
Considering exposing to UnrealScript later.
- appAlloca works like the ANSI C
alloca. Useful for allocating temporary memory on stack.
- New data compression
infrastructure is under development in FCodec.h.
- New UCommandlet base class for
exposing new "command line applets" through ucc.exe.
UCommandlet supports both C++ classes (see FCommandletMake for
example) and UnrealScript classes (see CommandletHelloWorld.uc
for example). Read the comments in CommandletHelloWorld.uc
for information about how to implement these.
- "ucc master" master disk
builder (not yet documented).
- Localized installer/uninstaller.
- Improved and generalized
"texture detail" options. When importing
textures with "#exec texture import...", the new
LODSET= option specifies which detail set the texture should
belong to: 0=always render at its highest detail, 1=render with
user's "world detail" setting, 2=render with user's
"skin detail" setting.
- Meshes now support full
level-of-detail rendering; see the Level
of Detail Technology page for info.
- New TrueType font importing
support.
- Improved and generalized UFactory/UExporter
object importing and exporting; not currently being used for
much, but will be a centerpiece of the upcoming UnrealEd
rewrite.
- File management is now handled
100% through the GFileManager object; file reading and writing
now is done through FArchive objects returned by
FFileManager::CreateFileReader and
FFileManager::CreateFileWriter. The old appFopen,
appFclose, etc functions have been eliminated. This
extends Unreal's file reading and writing in a very general way;
now all operations dealing with internal and external storage
use the same interface, making modules more interchangable.
Going 100% with this approach could be a painful upgrade for
code which is very external file-intensive, but you can always
#include <stdio.h> and use the ANSI file functions if
pressed for time.
C++ Unicode Changes
- All the C++ code now compiles
under Unicode by default.
- ANSICHAR=8-bit signed ANSI
character.
- UNICHAR=16-bit unsigned Unicode
character.
- TCHAR=Either ANSICHAR or UNICHAR
depending on compile options; currently always UNICHAR.
- All of the Visual C++ projects
define UNICODE and _UNICODE.
- Since Windows 95/98 do not support
most of the Windows API Unicode entry points, there are a lot of
checks of the variable GUnicodeOS which is 0 when running the
Unicode version of Unreal on a non-Unicode OS like Windows
95/98. There are also macros like TCHAR_CALL_OS which calll the
appropriate ANSI/Unicode function depending on OS support.
- ATcpLink and AUdpLink text
exchange functions use ANSI text exclusively.
UnrealScript Windowing System (UWindow)
- The UWindow windowing system is
included.
- The UBrowser (Unreal Server
Browser) provides a good example of how to use the UWindow
classes, should mod-makers be interested in the UT user
interface system.
Unreal Server Browser
- UBrowser filters servers into
various pages based on gametype, and compatibility with 224.
While the majority of servers are of older versions of Unreal,
it might take 30 seconds before you see any servers listed in
the 224 or gametype-specific tabs. Check the "All
Servers" tab to see all servers including incompatible
older versions of Unreal.
- Press your F5 key to refresh the
server list, or right click and choose "Refresh".
- You can disable the Unreal server
browser and use the old multiplayer menus by commenting editing
your Unreal.ini and removing the semicolon at in the line which
reads ";Console=Engine.Console", and adding a
semicolon in the front of the line which reads "Console=UBrowser.UBrowserConsole".
- You can configure which tabs
appear on the server browser (and what they contain) by editing
your Unreal.ini. The [UBrowser.UBrowserMainClientWindow] section
contains all the parameters which describe what appears in which
tab.
- To change the number of servers
which are pinged simultaneously from the default of 10, add an
entry in Unreal.ini like the following:
- [UBrowser.UBrowserServerList]
- MaxSimultaneousPing=5
|