Savage Video Cards
*** From the RED Guy from Savage Daily Messageboard***
These are the setting that makes the game playable:
On the start menu of NOLF, click Advanced, and in the command-line field type "+S3TCEnable 0".
Activate Auto Mipmapping (some small artifacts may show, but it boosts the game, and it fixes the game text) for the Direct 3D (not OpenGL).
And strangely enough, when using 1152x864 resolution for the game with 32 bit, the artifacts in the game start (pink box around the mouse and buttons) are gone.
If the game is extremely dark in some levels, you may need to try the S3 reference drivers for your card. If this still doesn't help, you may wish to adjust the brightness settings from your video card's windows applet.
Voodoo2
After installing NOLF, you may get a "couldn't set d3d emulation mode" when trying to launch the game. Reinstalling DirectX usually fixes this, but in some rare cases, DirectDraw may need to be manually re-enabled. To do this, run DXDIAG.EXE (You may need to search for this file on your hard drive using the Search feature on the Windows Start bar), select Display, and then check Enable Direct Draw box.
In some rare instances, textures cease showing up in the game. To resolve this, download the latest drivers from http://www.3dfx.com and then reinstall DirectX. Finally, make sure that your texture and screen depth are set to 16 bit.
Voodoo3
If you are running into crashers, press the Advanced button on the launcher and check the Disable Hardware Cursor box. Then run the game.
Voodoo5
If you encounter a black screen when starting the game, click the Advanced button and then check the box to disable movies in the launcher.
Diamond MX300 or other Aureal chipset such as the Vortex or Vortex 2
We have looked into the crashes relating to NOLF and the Vortex chipsets and determined that they are driver-related. Since Aureal has gone out of business, much needed updates for the latest operating systems and version of DirectX are not available. There isn't much we can do to address this. Fortunately, this has not been a problem for all Vortex chipset sound card users. If you have the card and are experiencing crashes, check for updates from your sound card's manufacturer. If that fails, you may want to try older drivers or attempt to disable of the options in your sound card's windows applet.
Sound Blaster Live! Freezing
Reducing the hardware 'acceleration' level of the SBLive! card's driver (Control Panel -> Sounds and Multimedia -> Audio Tab -> Sound Playback 'Advanced" button -> 'Performance' Tab -> Hardware Acceleration Slider) from "Full" to just "Basic" acceleration, may help this problem.
Additional Tech Support Assistance
For further Technical Support assistance, please contact one of the following:
For North America:
Fox Interactive
Technical Support web site: http://support.foxinteractive.com/
Email Technical Support: fox_support@aqinc.com
Phone Support: 1-410-568-3630
For Europe:
EA UK
Technical Support web site: http://retailsupport.ea.com/tech_support/support.html
Email Technical Support: uk-support@ea.com
Email Warranty queries: uk-warranty@ea.com
EA Germany
Electronic Arts GmbH
Customer Service
Pascalstraße 6
52076 Aachen
Direct CS Tel: 0190 776633 (2,42 DM/min)
Direct CS Fax: 02408 940 111
24hr Hintline: 0190 900030 (2,42 DM/min) - 0190 787906 (2,42 DM/min)
CS Email: de-support@ea.com
EA France
Electronic Arts
Service Consommateurs
4 rue Caude Chappe
69771 St Didier au Mont d'Or Cedex
Direct CS Tel: 04-72-53-25-00.
E-mail adresses: FR-SUPPORT@EA.COM - FR-AUTOSUPPORT@EA.COM - FR-TECHSUPPORT@EA.COM
EA Spain
Electronic Arts Software
Customer Service
Rufino Gonzalez, 23 Bis Planta 1ª Local 2
28037 Madrid (Spain)
Direct CS Tel: 91 754 55 40
Direct CS Fax: 91 754 52 65
CS Email: stecnico@ea.com
EA Nordic
Electronic Arts Nordic
Customer Service
Johanneslundsvägen 2
194 61 Upplands Väsby
Direct CS Tel Sweden: 08-594 106 80
Direct CS Tel Finland: 0800 50 82 25
Direct CS Tel Denmark: 80 88 07 89
Direct CS Tel Norway: 800 138 97
Direct CS Fax: 08-594 106 70
CS Email: nordicsupport@ea.com
Content Creation FAQ for No One Lives Forever
Q: Why are things like weapons and doors not showing up in the game? I can see them in the editor but they are not visible when I run the game.
A: The most likely culprit is that there is a leak in the level. The geometry used to create levels in No One Lives Forever must form a sealed shell.
Q: If I think I have a leak in my level, how do I find it?
A: The first step in finding a leak in a level is to make sure that the level is sealed. There cannot be any openings from the inside to the outside of the level. The next possibility is that one of the brushes that form the shell of the world has been set as a "detail" brush. In the brush properties there is a property field called "detail level". All brushes that make up the outside shell of the world, or that are meant to block visibility, must be set to the default of "detail level" 0, while brushes that make up the visual details of the world can be set to "detail level" 1. Brushes set to "detail level" 0 block vis, Brushes set to "detail level" 1 do not. Another possibility is that a "detail level" 0 brush is being penetrated by a "detail level" 1 brush. The "detail" brush will essentially punch a hole in the shell of the level causing a leak. Yet another possible cause of a leak is brushes whose vertices are not on the grid. If a vertex is not on the grid it will look fine in the editor, but when you process the level, the processor will snap that point to the nearest one unit grid point. If this is a brush that makes up the outside shell of the world it can cause a leak that will not be immediately evident in the editor. There are two ways to address this kind of problem. One is to move the vertices onto the grid. The other is to set the "nosnap" flag on the brush to true. This will tell the processor to leave the position of the vertices alone and process them where they are. To aid you in the location of the leak in a level, the processor can create a "leak file". A "leak file" is a line drawn in the editor that represents the vis starting at the game start point and bouncing through the level. By following this line you can determine the point at which the vis penetrates the outer shell of the world. To create a "leak file" you must add a command string to the "extra parameters" field in the processor. The command string is -leakfile myfile.lek. When you run the processor it will create a "leak file". After running the processor select "World", "debug", and then "load leak file". A dialog window will open up and you will see a file called myfile.lek (the "myfile" portion of the command string can be anything you choose). Depending on the complexity of your level, the "leak file" might be very simple or very complex. If the file is very complex and hard to decipher you can step through the "leak file" point by point by holding down the "Shift" key and using the "[]" keys to move forward or back through the vis path. The "]" key moves you forward along the vis path and the "[" key moves you backward through the vis path. Each time you press one of the bracket keys all four of the viewports will focus on the next or previous point along the vis depending on which bracket key you pressed. Once you have found your leak, you can remove the "leak file" by selecting "World", "debug", and then "clear leak file".
Q: Why is my level completely black when I run it in the engine?
A: Make sure there is a "WorldProperties" object in your level.
Q: Why is it that when I activate a hinged door that it flies clear across the level?
A: The "RotationPoint" property was not set the in the "HingedDoor" object. The "RotationPoint" of the object defaults to 0,0,0 so the door is rotating around the center of the world instead of where you placed the object. The easiest way to set this is to place the object where you want the rotation to take place, and then copy the "Pos" property to the "RotationPoint" property.
Q: Why can't I step into an elevator cab?
A: The "BoxPhysics" flag is set to true. If the "BoxPhysics" flag is set to true the collision of the object becomes a cube that encases the extent of all of the brushes that are bound to the lift object. Setting the "BoxPhysics" flag to false will tell the object to use the dimensions of each of the object's component brushes to create the collision.
Q: Why can't I get through a hinged door?
A: The "BoxPhysics" flag is set to true.
Q: It seems to take forever for my level to process, what can I do to speed this up?
A: One thing that you can do is set the "detail level" in the brush properties to 1 on all brushes except those that form the outer shell of the world or need to block vis. Sometimes the lighting stage of processing takes a long time. The more light maps that are created the longer it will take to process a level. Using Gouraud shading or flat shading on brushes will speed up the processing of the level as well as increase the performance of the level at run time.
Q: Can I set a level wide ambient light value and how do I do it?
A: Yes, Select "World" and then "WorldInfo". This will bring up the "World Info" dialogue window. In the "Info String" field enter AmbientLight 48 48 48. I have used an example of 48 48 48 but you may enter any RGB values from 0 to 255.
Q: Can I view the lighting in the editor or do I have to run the game?
A: You can view the lighting in the editor by selecting "World" and then "Load Light Data". This will load the light maps that were generated the last time the level was processed. The lighting does not update in real-time in the editor so the level will have to be reprocessed and the light data loaded again in order to view any changes made to the lighting.
Q: What were some of the scale standards for elements like doors, handrails, stairs, etc. used in the creation of NOLF levels?
A: We set up a set of basic guidelines to establish a base consistency between levels and designers. These values were used as a guide that was loosely adhered to as dictated by the needs of game play and esthetics.
Doors: 96 units wide by 128 units tall by 4 to 8 units thick.
Hand rails: 48 units tall.
Stairs: 32 unit tread and 16 unit rise.
Desks & Counters: 48 units tall.
Q: I made a ladder in my world but can't climb up it, why?
A: In addition to the visual component of the ladder, there is a functional component required. You will need to create a "ladder volume" for the player to move through when climbing the ladder. In front of the visual representation of the ladder you have created, create a brush approximately 64 wide by 64 deep, and as tall as the ladder's climb. Next center the cursor on the brush, right click, and choose "bind to object". In the dialogue window expand the "VolumeBrush" class of objects and choose ladder. When you process the level the "ladder volume" you created will form an invisible volume that the player can travel through. If you encounter difficulty exiting the ladder at the top, extend the brush that defines the volume a little higher. I typically extend the top of the volume 48 units higher than the surface I am ascending to.
Q: When I run my level, why don't the flickering lights I put in show up?
A: Make sure to check off the Light Animations flag in the processor when you process your level.
Q: I can't see through the windows I put in my world, why?
A: In order to create transparency effects in a brush, the brush must be made into a WorldModel (by binding it to a TranslucentWorldModel), and have a texture applied with a valid alpha channel. To see the alpha channel of a texture right click on its name in the texture browser window and choose "texture properties". This will bring up the properties window for that texture. There will be a window on the right that displays an image of the texture and its alpha channel at each of its mip map levels. The areas in the alpha channel that are white will be rendered at full opacity while the black areas will be rendered as fully transparent. There are two different ways of rendering translucent WorldModels in the game. One is Chromakeying and the other is Translucency. Chromakeying will render the white areas of the alpha channel as fully opaque and the black areas of the alpha channel as completely transparent, while Translucency will recognize grayscale blending in the alpha channel to create gradients of transparency. To set a world model to be rendered Chromakeyed, you set the Chromakey flag in the TranslucentWorldModel object to true. To set a WorldModel to be rendered Translucent, you set the Translucent flag in the brush properties to true.
Q: The processor tells me that I have a number of "problem brushes" in my level. Is there an easy way to find them?
A: In the processor the world coordinates of each of the "problem brushes" will be listed but this can be a time consuming way to track these brushes down, particularly if there are very many of them. Another way of identifying these "problem brushes" is by adding the -selectproblembrushes command string to the additional parameters field in the processor. When you run the processor it will stop when it comes to the point where it identifies the "problem brushes". When you close the processor all of the "problem brushes" will be selected. You can then hide inverse or move the brushes to a specific folder where you can more easily trouble shoot them.
Q: Why is my level rainbow colored when I run it?
A: Typically this results from processing a map without processing the lighting.
Q: Why does my level look normal in the editor, but when I run the game there is missing geometry and geometry appearing out of nowhere?
A: Most likely you have created some concave geometry or, you have geometry that is off of the grid. First let us address the problem of geometry whose points are off of the grid. When the processor processes a level it snaps the vertice points of the brushes to the nearest 1 unit grid point. If the points of a brush are not on the grid, everything will look fine in the editor, but in the game, faces will be slightly askew or not rendered at all. The way to fix this is to build on the grid. However, that is not always possible and it is sometimes necessary to work with geometry that is off the grid. If you have brushes that are off the grid, set the "nosnap" flag in the brush properties to true. This will tell the processor to leave the vertices where they are. The LithTech engine works with convex geometry. If you create concave geometry, the engine will through a tizzy and render faces all over the place just to make sure that you know that you have upset its delicate sensibilities. Since the engine sees brushes as "All space inside the area defined by the intersection of their planes," a brush that's concave can intersect with itself, which effectively gives it multiple "insides." Unlike a 3D modeling package, game engines don't handle this at all well. The game will pick one "inside" as the right one, then throw out the rest of the brush. You can locate concave brushes in the editor by clicking on World, Debug, and then "Find concave brushes". The editor will then select all the concave brushes in the level. Once you have identified them, you can reconstruct the shapes using multiple convex brushes. Sometimes you can slice a concave brush into two valid convex ones.
Q: I built the geometry in my level on the grid. Why is it the geometry in my level is ending up pulled off the grid?
A: Some geometry such as domes, cylinders, and spheres, are off the grid when constructed initially. But there are a few practices that can cause points of otherwise proper geometry to be off the grid. One is resizing geometry that is anything other than a cube, in brush mode. If you resize something in brush mode you are scaling the furthest most points, while all the points between shift relatively. Basically if it isn't a cube, scale it in geometry mode. This way your geometry will always be on the grid, things will line up easily, and you won't spend your time chasing leaks and other problems. Another thing to avoid for the same reasons as the first is scaling a selection of multiple brushes in geometry mode. Unless you're careful it will end up throwing points off the grid.
Q: When I import geometry for Terrain, I get a leak and the leak file shows that the leak passes straight through the shell containing the Terrain geometry. If I remove the Terrain geometry there is no leak. I have made sure that all the vertices in the Terrain geometry are snapped to the grid at 1:1 before importing it (if that makes any difference.)
A: Sometimes if one of the vertices of the Terrain penetrates the outer shell it will cause a leak. Another possibility is that the "Outsidedef" object needs to be placed further from the map. If you have an oddly shaped Terrain map, an "L" shape for instance. The engine determines the inside of that Terrain by the extents of its bounding box. It is therefore possible to position the "Outsidedef" object outside the sealed world but within the bounding box of the Terrain. The engine would think that the "Outsidedef" object was within the world and register a leak. To remedy this you would simply move the "Outsidedef" object to a position outside the sealed level, that is also outside the bounding box of the Terrain.
Q: I have a hard time keeping track of the grid size I am building on, is there anything that can help?
A: First, recognize that each window has a separate grid. If you are not careful, you may think, for example, that each window is set to a grid size of 64 when you are trying to build a cube. However, it is easy for one or more window to be set to a grid size that is different. When you hover your cursor over a window, the grid size will show across the bottom of the screen in a small box. Also, you can easily change your grid size by using the + and - keys on the number pad. This will change the grid size in the currently active (the one your mouse is over) window.
Q: How do I use "Prefabs"?
A: A "Prefab" is a selection of brushes and objects that have been saved as a world in the Prefab directory of the NOLF assets. Select the "Prefab" tab in Dedit to view the available list of "Prefabs". To view a "Prefab" before you place it in your level, right click on its name and choose open. The "Prefab" will then open in a separate world in Dedit. To add a "Prefab" to your world simply double click on its name. The "Prefab" will be copied into your world at the current coordinates of the green position marker. If you want to create a "Prefab" out of something that you have created in Dedit, simply select the entities you intend to make into a "Prefab", click on the "Selection" menu and choose "save as prefab". Be sure and save into the "Prefab" directory and not the base worlds directory.
Q: I have a wall with a door and window cut out of it and I'm having trouble aligning the textures on all the separate brushes down the length of the wall. Is there a less tedious, more accurate way of accomplishing this than trying to align each texture on each brush one at a time?
A: Go into Geometry mode and align the texture on the first face of the wall the way you want it to be aligned for all of the faces of the wall. Now select this face by left clicking on it. You can tell it is selected by the red outline that remains around the face whether your mouse is over it or not. Now select all the other coplanar faces that make up the wall, right click, and choose "reset texture coordinates". This function takes the texture coordinates of the first selected face and continues it across all the subsequently selected faces. This only works for coplanar polygons. If you do this on polygons that are not coplanar the textures will skew as the angle of offset increases.
Q: Since Models that I place in the world show up in the editor as simple bounding boxes, how can I tell how to orient the object so that it faces the direction I want it to?
A: In the editor the bounding box of the Models and Objects you place show red, green, and blue lines that represent the x, y, and z facing vectors. The models for NOLF have all been set up so that the blue vector is the forward facing vector. If you are placing a padlock on a gate you rotate the orientation of the object so that the blue vector was pointing away from the gate. If you were placing a doorknob on a door, you would rotate the orientation of the object so that the blue vector was pointing away from the door.
Q: What is the "vis" and what does it do?
A: The "vis" is a visibility data set. The "vis" process calculates this data. It's then used at rendering time to reduce the active polygon set to what might potentially be visible from the perspective of the player's position in the world.
Q: How do I create a .rez file?
A: As of version 1.002, all custom maps MUST be converted into .rez files before they are distributed. Simply adding the .dat file(s) to the custom folder will no longer work. Also, the directory structure within your .rez file must match the directory structure used for NOLF. Assuming that you have already installed the NOLF tools to create your map(s), just follow these steps to convert them into .rez files:
1. Create a new directory on your hard drive. (For this example, we'll use c:\mymaps)
2. Copy your custom .dat file(s) to the proper subdirectory within this folder. For example, if you have created a deathmatch map, you would copy it to:
C:\mymaps\worlds\multi\deathmatch
Or, if you have created a H.A.R.M vs. UNITY map, you would copy it to:
C:\mymaps\worlds\multi\assaultmap
3. Repeat this process for all of your custom maps (and other resources, if any).
4. When done copying files, use lithrez to create a .rez file from the contents of your new folder. Here's an example:
lithrez cv mymaps.rez c:\mymaps
This example will create a rez file called "mymaps.rez" from the contents of the directory "c:\mymaps".
Q: How do I use a .rez file?
A: The first step in using custom .rez files is to copy them into the proper folder like this:
1. Create a subfolder named "Custom" in your main NOLF directory. (i.e. (install dir)\custom)
2. Copy all custom .rez files into this folder.
If you are running a dedicated server, any .rez files in the custom folder will now show up when you start the dedicated server setup wizard. Maps contained in the files you choose to use at this point will then show up in the map selection screen.
If you plan to host or join a multiplayer game, just follow these steps:
1. Bring up the NOLF launcher.
2. Click on "Advanced".
3. Click on "Customize".
4. Select the .rez files you wish to use.
5. Launch NOLF.
Assuming the directory structure in the .rez file is correct, any multiplayer maps contained within should now show up in the list of available levels for that game type along with all of the retail NOLF maps. NOTE: Singleplayer maps will not show up unless the mod maker has modified the missions.txt file appropriately!
Q: How do I make a teleporter?
A: In order to make a teleporter, you will need to create two things: a trigger object, and a teleportpoint object. The trigger object will be where the player is teleported from and the teleportpoint object will be where the player is teleported. The trigger object is going to be set up so that it is touch triggered. This means that when the bounding box of the player intersects that of the trigger object, the messages entered in the trigger object will be sent. Depending on the implementation, you may want to change the size and shape of the triggers bounding box. This can be accomplished by changing the values in the dims property of the trigger object. The direction of the blue vector on the teleportpoint object will determine which way the player is facing when they are teleported to the point. For this example change the name of the teleportpoint object that you have placed in your world to DEST1. In the trigger object properties there is a field named "NumberOfActivations". Enter a zero in this field if you want the teleporter to function an infinite number of times. There is a property named "TriggerTouch". Set this flag to true. Below that there is a property named "MessageTouch". In this field you would enter the command string:
Teleport DEST1
In the command string above, "DEST1" would be the name of the teleportpoint object that you want the player sent to by this trigger object. Now if you process your level and run through the trigger object you will be magically teleported to the teleportpoint entered in the trigger object "MessageTouch" field.
No One Lives Forever Server Administrator FAQ
Last Updated: 5/25/2001
When running a server on a LAN without an active Internet connection, the gameplay often freezes for 10 seconds or more.
Make sure that the host computer has a valid IP address. If your network is a peer-to-peer system without a central server to assign IP’s at login, then you’ll need to specify one manually. This can be done in the TCP/IP properties of your network adapter in the windows network control panel.
I have a 56k modem, can I host a server?
Yes, but your server will only be capable of reliably supporting 2 players, including yourself. The joining player's connection to the server is dependent on the server's dial-up rate. Running a dedicated server on a 56k modem is not recommended.
What minimum system requirements do I need to host a No One Lives Forever server?
The minimum server system requirements are the same as No One Lives Forever's single player system requirements. However, noticeable performance degradation will occur on host systems that just barely meet the system requirements. If you plan on hosting a game with more than a few players without sacrificing performance, we recommend no less than a P3 550 with at least 256 MB of RAM.
What is the difference between a dedicated server and a host server?
A host machine allows the server to fully render and participate in the game. Hosting is not recommended for server administrators. A dedicated server does not render the game and is not playable, but gives players who play on the server a better connection.
I have a server running, but it's not listed in the client's "join game" screen.
This can occur if your computer is behind a proxy server or is using a shared Internet connection. In order to run a No One Lives Forever server, you must have a direct connection to the Internet.
Please note that it may take up to a minute or two for your server to register on the GameSpy network. Also, clients already waiting at the join screen may need to use the "server refresh" option or exit/reenter the join menu before your server will show up.
What are the recommended player limits for my dedicated server?
This totally depends on your system specs and your connection.