Unreal Mac Version 224b7 Release Notes IMPORTANT- This is a public beta of Unreal Mac. While we hope it fixes many bugs, it has not been through the normal full testing procedures so there may be problems with it. If you are only playing single player Unreal, it is recommended you continue to use version 1.0 from the original CD. To report bugs (not ask questions on how to get the game running or how to play) send email to unrealbeta@westlakeinteractive.com. Westlake can not provide tech support for Unreal, so please send only bug reports. If you have trouble getting Unreal to run, check the Unreal Troubleshooting page for some tips: http://www.westlakeinteractive.com/unrealtrouble.html If those tips don't get the game working for you, contact MacSoft for further tech support (their contact information should be in your Unreal manual). Please do not email bug reports or Unreal questions to other Westlake email addresses. Contents A) Installing 224b7 B) 224b7 Specific Changes C) Known Issues/Troubleshooting D) Change History (prior to 224b7) E) Rave Advanced Options F) Copyright notices A) Installing 224b7 The 224b7 update requires a previously installed version of Unreal 224. If you don't have some version of 224 installed, you need to download the full 224b1 version first! Check http://www.westlakeinteractive.com for links to the original 224b1 update. Before installing 224b7, make a copy of your current Unreal application. Save games from before 224 will not work. If you don't like 224b7(or it doesn't work right), and didn't back up your current Unreal application, you'll have no easy way to get back to the previous version. To install the update, drag the "Unreal" application from the "224b7 Update" folder into your Unreal folder (where your old Unreal application was). The new Unreal application should be in the same folder as the Unreal.ini and User.ini files. Check the section below (Known Issues) for answers to many of your questions about why things work (or don't work) in 224b7!! The section after that (Fixes & Improvements) lists all the things that have been fixed in 224b7 (and all earlier versions). B) 224b7 Specific Changes - B7 has no code changes from B6, it has simply been rebuilt and repackaged to fix some problems a few people had getting the B5/B6 working. This should resolve problems for people who had B5 or B6 crash immediately on launch. C) Known Issues/Troubleshooting - If you try to load a save game and get a "server at capacity" error, open Unreal.ini with SimpleText, and in the section Engine.GameInfo, increase MaxPlayers from 16 to 32. - If you have a Rage Pro 3D accelerator and are running in RAVE mode, and have all the screen turn into blue & green textures at random times, try installing the ATI drivers that come with Apple's OpenGL 1.0 download (available from Apple's web site). Currently there is a bug in the 4.0 ATI drivers on Rage Pro chips that causes textures to be corrupted. - The demo recording and playback commands (demorec and demoplay) do not work on the Mac, and have been disabled. These commands are in a alpha state on the PC, and so can not be supported on the Mac. - The new Internet server browser (Mutiplayer/Join Game) is only used for TCP/IP games. If you want to play over an AppleTalk network, you need to switch to the old style Join menu. To turn off the browser and go back to the old style Join menu, in the Advanced Options dialog under Drivers, for Console select "Standard Unreal Console". Or you can open Unreal.ini file and change the line "Console=UBrowser.UBrowserConsole" near the top of the file to "Console=Engine.Console". Quit and restart Unreal for the change to take effect. - Support for .umod files is available with a separate application for Unreal Mac. Go to the downloads page at http://www.westlakeinteractive.com to download the umod installer. - The "favorites" menu in the old-style Multiplayer join doesn't work any more. This is the same on the PC- either those servers are inactive or not running version 224. - If you do not have your mouse button set to Fire in the Mouse/Joystick config screen, you won't be able to click in the in-game browser. The easiest way to fix this is to modify the User.ini file, and set the binding for "Joy1" to whatever function you want your mouse button to be. If you like to run forward with the mouse button, set "Joy1=MoveForward". Then in the Mouse/Joystick config dialog, select "Fire" for the mouse button. Even thought it says Fire, it will basically just do whatever Joy1 is set to, so it will then move forward when you click. The important thing is that the browser interface checks for Joy1 events for mouse clicks, so the mouse must be set to the first option (Fire). We're working on a better solution for this, and for people who reverse the mouse axis for mouselook but don't want their browser cursor going down when they move the mouse up. - If you have trouble with servers not showing up in the in-game browser, wait a bit and then either press F5 or move the mouse cursor over the browser window and press the Option Key. Select "Refresh Servers" from the menu that pop's up. - If turning with the keyboard or a gamepad seems slow or has strange acceleration, this is normal in 224. It was a change in the keyboard controls from the PC. To go back to a more normal turn rate, edit your user.ini file with SimpleText and change the lines for Aliases[4] and Aliases[5] to: Aliases[4]=(Command="Axis aMouseX Speed=-80.0",Alias=TurnLeft) Aliases[5]=(Command="Axis aMouseX Speed=+80.0",Alias=TurnRight) If this spins too fast, set the speed to -60 and +60, or smaller numbers. - Skins for bots in Botmatches don't look right, and don't seem to remember changes from the Bot configuraion menu. This is a bug from the PC so a fix will have to be made on the PC side first. - When using the new built-in Internet server broswer (Mutiplayer / Join Game), press the alt-fire combination you have configured on the mouse to access right mouse button features. In the Mouse/Joystick config dialog, make sure you have Cmd-Click, shift-click, or something else selected as "Alt Fire". Pressing the appropriate cmd-click (or whatever) when the cursor is in the browser window will bring up options to get info on the currently selected server, add it to the Favorites list, or refresh the full list of servers. If you do not have your mouse configured in InputSprocket,you will have to reconfigure your mouse to make clicks act as fire (and some alternate mouse click be Alt Fire). Also, if you have the mouse axis inverted in InputSprocket, the cursor controls in the browser will be reversed. Use the in-game "invert mouse" option to invert the mouse motion, not the InputSprocket option. - When in the new Internet server browser (Multiplayer / Join Game), the frame rate is fairly slow in the software renderer and on Rage Pro/3dfx Voodoo1 class cards, causing mouse movement to be unusually slow. To turn off the browser and go back to the old style Join..., in the Advanced Options dialog under Drivers, select "Standard Unreal Console" for Console. Or you can open the Unreal.ini file with SimpleText and change the line "Console=UBrowser.UBrowserConsole" near the top of the file to "Console=Engine.Console". Quit and restart Unreal for the change to take effect. - Save games from previous versions of Unreal will not work properly with 224. Loading a saved game from 220 or before will probably crash or cause undetermined problems. If you want to get back to a specific place in the single player game, simply double click the map for that level in the Maps folder, and then save the game once it starts. You can use the cheats from the original 1.0 readme file to give yourself back weapons and other items. - Sometimes when clicking the mouse to move a window or resize it in the server browser the cursor will lock up and not move. Click the mouse button again to release the cursor and try again. - RAVE stability should be much better. The best current drivers for ATI cards are the 4.0 universal for Rage 128, and the drivers that come with Apple's OpenGL 1.0 for Rage Pro. - Under Mac OS 8.6 (possibly 8.5.1), the game may say that it can't find a RAVE accelerator when starting up, or say it can't find DrawSprocket. This is usually because the game application has taken up all available RAM and there is not enough left to load the RAVE driver or DrawSprocket library. Either decrease Unreal's preferred memory partition size, or increase Virtual Memory so there is always a bit more free memory than the most Unreal needs (98MB is the default size). - In 3Dfx mode, especially on VooDoo1 cards, sighting the LightModify variable in the ini file to more than 0.0 will cause textures behind fog to show up either non-fogged or very dark. This is a known side effect and there isn't much we can do about it. - In windowed mode, the mouse currently doesn't work in the in-game server browser. You can still use the arrow keys and return to select games, although to really use the browser best you should switch to full screen mode (Cmd-F). Unreal still works fine with UnrealFinder, available at http://quakefinder.telefragged.com/. (The three issues below are all due to a change in the menus to keep up compatibility with the PC) - The LineSkip option is no longer available directly from the Audio/Video options menu. To set lineskipping, go to Advanced Options (under the Options menu), and under Display, set "Skipping" to 1 (on) or 0 (off). - The option to setup joysticks/gamepads/other InputSprocket devices is now only available in the Advanced Options dialog. Choose "Advanced Options" from the Unreal Options menu and then click the Config Mouse/Joystick button to configure your InputSprocket device. You can also type "ConfigIsp" in the console (press Tab or ` to bring up the console) to get to the configuration dialog. - There is a new menu choice in the Options menu, "Joystick Enabled", that doesn't do anything on the Mac. Its a holdover from the PC, left in for compatibility reasons. D) Change History (prior to 224b7) 224B6 Changes - Fixed a bug in B5 that caused the mouse to not work properly without being reconfigured. If you have trouble using the mouse, go to Advanced Options (in the Options menu) and click Config Mouse/Joystick and reconfigure your mouse. 224B5 Changes - Fixed several possible crashes in RAVE. Stability should be much better with either ATI Universal 4.0 drivers (on Rage 128) or the ATI drivers that come with Apple's OpenGL 1.0 (on Rage Pro). - Changed the behavior of the "right click" in in-game windows. Instead of pressing Option, you now should configure your mouse in the Config Mouse/Joystick dialog so that Command-Click, option-click, or shift-click is set to "Alt Fire". Then pressing the command-click (or whatever) will activate the right mouse button function in the game. - Support for 1024x768, 1200x1024, and 1600x1200 resolutions in 3Dfx mode (for VooDoo3 or VooDoo2 SLI cards) is now implemented. If you have a VooDoo3, going directly to "Advanced Options" from the in-game menus will NOT work properly. Currently, to get to advanced options, press Cmd-F first (to switch to windowed mode), then choose Advanced Options, then when done click OK and press Cmd-F to return to 3dfx mode. - Disabled the non-working DemoRec and DemoPlay commands. 224B4 Fixes - Fixed a code generation problem that was causing lower performance than previous versions. Performance in complex scenes, net games, and in general, should all be back to at least 224b2 levels and possibly a bit higher. - Changed the behavior of the ESC key in the Advanced Options dialog. Hitting ESC now closes the dialog and saves changes, instead of returing all the values to their defaults. This is puts the Advanced Options dialog more in synch with how the rest of the game interface works. - Fixed a bug in Speech that caused it to read garbage when you hit talk and then return without typing anything. 224B3 Fixes - Fixed problems with playing AppleTalk games and having the computer try to dial out to the Internet. - Fixed moving platform bug that wouldn't let you stand on boats and other moving platforms. - Added a umod installer (available at http://www.westlakeinteractive.com). - Fixed an incompatibility that caused several third party maps to not load or crash after loading. Among the mods and maps we have tested with are DMBronx_V2, DM2001_V2 (very cool!), dmterroristepisode2, Unreal4Ever, DmUnreality-SE, and many others. The best place to find add-on maps is http://www.planetunreal.com/, in the Nali City section. 224B2 Fixes - Fixed a bug in RAVE code that caused extreme slowdowns when other players used the shield belt and were on screen. - Fixed Mac OS Speech option (turn this on/off from Advanced Options, under Display). 224B1 Fixes 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. - Fixed inability to join a network game while you are running a non-dedicated server. Networking - Fixed remote administration (didn't accept password). - Fixed administrator "Kick " crash. - Fixed dedicated server potential crash when player limit is reached. - Added "userini=" 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 - 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 construct for defining dynamically sizable arrays. This is only implemented for configuration loading and C++ access; dynamic arrays aren't accessible by script yet. - 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. 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. - 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. - 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 and use the ANSI file functions if pressed for time. 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 E) Rave Advanced Options Several new RAVE options have been added to the Advanced Options (and behavior of a couple has changed): o MipMapping- normally off for pre-Rage 128 cards, this makes textures drawn far away look better. o DisableVSync- normally on for all Rage cards, this speeds up the game by immediately drawing a frame as soon as it is ready, and not waiting for the monitor to synchronize with drawing. Turning this on may cause some flickering or tearings of shapes on the screen. o PageFlip- uses special video hardware to display frames. This removes all flickering and tearing but is not quite as fast as when off or with DisableVSync on. Turning both PageFlip and DisableVSync on will cause one or the other to cancel out. o Texture Composite- normally off on pre-Rage 128, this draws two textures in one pass (teture and lighting). This is faster when turned on, but causes some blocky graphics on Rage Pro cards. o DetailBias- only useful on Rage 128 when mipmapping is on, the default is 0.0. It ranges from -1.0 to 1.0, and affects how much detail to show in mipmaps (higher numbers mean more detail, sharper graphics, slower frame rates). o Vertex Lighting- turning this on will use a faster (but not as detailed) method of drawing lights & shadows. Texture composite and vertex lighting are mutually exclusive, so turning both on at once will have no effect. o LightModify- This value allows you to increase the game's brightness beyond the normal settings. When it is set to 0.0, the game plays as normal. Setting it to 1.0 will make all the lighting 100% brighter. 0.5 will make it 50% brighter, etc. You must quit the game after changing this option to have it take effect. o To run RAVE in 32 bit mode (best on Rage 128's), search the Unreal.ini file for the line "ColorBytes=2" and set it to "ColorBytes=4". F) Copyright notices HeapManager Copyright © Biit Inc 1996-1998 All Rights Reserved Permission to use, copy, modify, and distribute this software, in both binary and source forms, and together with its documentation, for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Biit not be used in advertising or publicity pertaining to distribution of this software without specific, written permission. BIIT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL BIIT BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.