This contains information about old bugs that were fixed from the 1.0.0 beta versions.
The rev. column tells the last revision that has this bug. See the details below for explanation. Date is when the bug was reported.
The following are mysterious bugs that didn’t have enough information to be solved but are so old without happening again that they probably have been fixed in some revision as a side-effect of another fix.
| Date | Original report by | Description |
|---|---|---|
| 2004-04-21 | ThOR27 | Error setting windowed graphics mode |
| 2004-04-21 | ThOR27 | Strafe always on |
When you send a team message (starting with ‘.’) that added with your name and “: ” is longer than the maximal length you’re allowed to type, the server fails an assertion: text.length() < max_chat_message_length. This is fixed in the final version.
In the labeled (‘:’) blocks in map files, the S command is unusable. This is fixed in the final version.
This assertion can happen when running Outgun with the -mappic argument, if there are maps that are at least two times as wide as they are high (in room count). This is fixed in the final version.
When both you and some of your teammates have the shadow powerup and they don’t carry a flag, you see them in their old position on the minimap until you come to the same room with them or the shadow runs out for one of you. This bug has been in Outgun always, but is fixed in the final version.
When a player is seen for the first time in a while, he can first flash in the old place in the minimap. If he carries a flag, the flag flashes too. This bug has been in Outgun always, but is fixed in the final version.
If ‘use keypad for moving’ is set, the keypad numbers both move the player and are interpreted as the map number to vote for, when the map list view is open. In the final version, you can’t use the keypad for moving when the map list is open.
When a player is fully invisible with flag, or partially invisible, and they have powerups, the deathbringer smoke or turbo trails are drawn with the normal intensity. This is fixed in the final version. We hope it doesn’t alter the playability too much.
When you’re connected to a server, and try to connect to another one, Outgun only closes the previous connection and you need to give a new command to connect before it actually connects. This is fixed in the final version.
If the master server forgets a player’s login, before the player connects to a server, the server may crash when receiving the denying reply from the master server. This is fixed in rev. 16.
This more mysterious crashing of all clients connected to a server on a map change is, if not before, fixed by the same fix as this other bug report.
When there are shots that haven’t hit anything in a room whose index is not found in the next (smaller) map, Outgun may crash with a page fault / segmentation fault, or this assertion can fail in world.cpp at map change: rock[i].px >= 0 && rock[i].py >= 0 && rock[i].px < map.w && rock[i].py < map.h. This is fixed in rev. 16.
The 5 points from the last capture of a round aren’t shown (or saved) by the clients, even though they are calculated by the server and both saved in the server stats and used in tournament scoring. This is fixed in rev. 16.
You have the deathbringer, and you die. It explodes and while its effect is still on screen, you change teams. At that point, also the deathbringer “changes teams” and damages your original teammates. This is fixed in rev. 16.
When the server has special collisions enabled, them happening cause different problems to the clients. Most usual of the problems is the team scores showing wrong numbers after a collision. This is fixed in rev. 16. For public information: the fault is not in Spinal’s code, but Nix’s. Along with the other special collisions bug, the only workaround to this is disabling special collisions until rev. 16.
When a revision 14 client is in the same where a special collision with damage takes place, the client leaves the server with the message “Server sent an unknown message code: 95”. Rev. 16 is no longer compatible with either rev. 14 or 15, so this is no issue in it. For public information: the fault is not in Spinal’s code, but Nix’s. Along with the other special collisions bug, the only workaround to this is disabling special collisions until rev. 16.
On Linux, and maybe other Unix-like systems the network library might be unable to fetch the local IP address. For revisions older than 12, this results in Outgun sending the loopback address 127.0.0.1 to the master server, resulting in an error which is not reported to the user. Revision 12 both includes 127.0.0.1 in its tests against private addresses and logs failures with the master server better. Until rev. 16 this still meant that the server couldn’t be added to the master list, but rev. 16 bypasses this problem by letting the master server detect from which address the request comes from.
If a graphics theme uses the player color in its pure form on some pixels, the bright purple player will have those pixels transparent. This is fixed in rev. 15.
log/leetclientdata.bin can’t be written
If log/leetclientdata.bin or leetserverdata.bin can’t be written (for a permissions problem, open file, or otherwise), the client or server may crash. This can be prevented in rev. 14 by using the command line argument -debug 0, but is fully fixed in rev. 15.
There’s a bug in the player list code, which results in the two teams not having a separating line in between, when the red team is full. This is fixed in rev. 15.
If a wrong server password is entered, it can’t be corrected without restarting Outgun. After entering a server password, entering to any server that doesn’t have that password isn’t possible without restarting Outgun. These are fixed in rev. 15.
-unsafeserver
This results from the new server thread protection in rev. 14 locking down when a player is kicked. The protection can be removed by using the command line argument -unsafeserver in rev. 14. In rev. 15, the whole issue is fixed.
This “feature” has been in all previous versions of Outgun as far as we know. When moving and shooting to another direction than straight forward, the shots appear slightly in a wrong place. Specifically, they start from a little behind the player, but most usually this is seen like only starting a little off center. This is fixed in rev. 15.
When the server is made reset its settings with srvmonit, the clients who had voted think they still have voted on a map (which might be different than the originally voted one) while the server erases their vote. In rev. 14 the server doesn’t erase the vote unless the map is erased from rotation, and the client is correctly informed.
Changing to a map that has errors is possible, if the map file is modified after the server has loaded its map list. In that case, changing to such a map can produce surprising effects. For example, if a player is carrying a flag when that is done, the client will assert. In revision 14, broken maps result in a server settings reload which re-initializes the map list; if all maps are broken, the server quits.
When a player changes team, he is seen in a wrong place for a small instant of time. This is fixed in rev. 14, except for (rare) high network utilization situations.
In certain kinds of maps (none in the distributions as far as we know), a flag position marker circle is drawn with darker horizontal lines on it, whenever antialiasing is enabled. This is fixed in rev. 14.
A set of ugly bugs resulting from a design flaw, manifest in the client quitting with an assertion, when some critical event takes place on the server while connecting to it. Possible triggers may include players entering or leaving the server; changing teams; dying; and picking up, dropping, or capturing flags. A much rarer occurence is when two players are joining the server at ‘exactly’ the same time and end up with the same player ID, which causes problems to everyone, including the server. All of these problems are fixed in rev. 14.
On some systems (like my Linux), unresponding (crashed, or behind a network breakage) clients are never dropped from the server. On others, they are dropped most of the time but rarely a client can be left without ever getting dropped. This causes a non-responsive player to appear to stay on the server, and the server to continue indefinitely sending out extra traffic at about 2.5 k/s. This bug exists in all prior versions of Outgun, but is fixed in rev. 13.
It can happen that a player sees powerups that aren’t really there. It should be reasonably rare as it only happens when messages from the server are too many to be sent at once. This is fixed in rev. 13.
This happens (at least) in these very specific circumstances. When closing a server which had some errors, you end up connecting to the same server right after accepting the error message, this assertion can happen:
Assertion failed: openMenus.safeTop() == &m_connectProgress.menu || openMenus.safeTop() == &menu.help.menu, file client.cpp, line 1066
This is fixed in rev. 13.
If the server physics are changed (by editing the gamemod and using “reset settings” in the server monitor program) while a player is connected to the server, the client is not informed about the change. This makes its predictions on acceleration incorrect, resulting in choppy movement. This is fixed in rev. 13.
On the server side stats, a player’s flag carry time becomes negative if they’re carrying the flag when the round ends.
The server configuration display which can normally be opened by pressing F5, is also opened while in the menu which is not the intended behaviour in itself. When F5 is pressed before having been connected to a server, an assertion is the result. This is fixed in rev. 13.
On maps with certain patterns, this assertion can happen. None of the previously seen maps seem to trigger it – it was found when designing a new map. It’s fixed in rev. 13.
This was reported to happen occasionally. After a great effort of charting the relevant function calls (which are a mess, really) I think it may be fixed in revision 12. If not, it must be something else that I can’t see in the code.
This happens for example when a player tries to connect to a full server or with a different version client. The bug has surfaced only with other bugfixes in revision 11 and does not exist in earlier revisions. After the rejection, further connection attempts by any player may result in the server not responding, and the server won’t shut down properly. This is fixed in rev. 12.
A whole bunch of miscellaneous smaller bugs of varying ages were found thanks to Valgrind. These fixes in rev. 11 prevent different kinds of bugs I’ve never experienced or heard reports of.
Some occasional crashes when exiting Outgun have been fixed for rev. 11. They have only surfaced on Linux but might pertain to Windows too.
It’s possible to have a player name reported as (name unknown). In the reported instance it was the player himself. This was probably due to the “messages from server lost” bug, so we hope it has also been fixed with revision 11. Report if you still have this, including your log/leetclientdata.bin.
This has happened a few times, and often for some players with bad connections. The client behaves very strangely, own shots aren’t seen, nor messages, and other things. This should be fixed for revision 11. This bug was originally reported by Huntta in 2004-04-19, but completed by MM-coiote by sending a leetclientdata.bin that helped solve it.
Assertions in antialias.cpp often happen on Linux in maps that have circular walls. This might also happen on Windows if you compile Outgun yourself, with a newer compiler. The cause is a feature of GCC (the compiler), but a workaround has been devised and it should not happen in revision 10 up.
Those floating point values in gamemod that shouldn’t be limited at all in the negative end, give an error when set zero or negative. This is fixed for revision 9.
It is possible to get the error message “ERROR: Can't change max_players while players are connected” when starting a server before any players have joined. This will also soon lead to a program crash. It is fixed for revision 9.
The “shots taken” count of each team always shows 0. This is fixed for revision 9.
The wall and floor textures in a room are only partially drawn in the order they are listed in the map file. Instead, they are first ordered by shape (rectangular, triangular and circular). This makes it impossible to precisely control the placement of different textures of the same type (wall or floor). This is fixed for revision 8.
Without antialiasing, in some maps (and some resolutions) the gray room border lines in the minimap are drawn over the walls. There is no reason to keep the antialiasing off, it only slows down room changes a bit in the “on” setting and works the same speed in the “map” setting. Keeping this in mind, the full “off” setting is removed from revision 8. Having antialiasing disabled will correspond to the current “map” setting.
This assertion happens when you press F1 to enter help while trying to connect to a server:
Assertion failed: openMenus.safeTop() == &m_connectProgress.menu, file client.cpp, line 1053
It is fixed in revision 8. If this still happens with a newer version, or on any version without pressing F1, report it.
Opening the help page makes Outgun crash when the window is at least 720 pixels high so that all the help fits on one screen. This is fixed for revision 8.
When someone changes team while carrying a flag, and later picks up a flag, this error can come up:
Assertion failed: !flag, file world.cpp, line 3116
Also there might be errors in the statistics for the player. This is hopefully fixed for revision 7.
Getting a message similar to this is possible. It has been reported to consistently occur in the map Viemäri, but it depends on resolution and maybe other things.
Assertion failed: val >= -.0001 && val <= 1.00001 (int(val*1000000.)==-112), file antialias.cpp, line 102
This was hopefully fixed for revision 7.
The stats saved by the client might differ slightly from the real stats (the ones saved by the server). This was fixed for revision 7. If there still are differences in the stats (with the exception of small differences in times), they are an error, so report.
player_collisions
It is a rare occurence, that players can get through each other even with player_collisions enabled, and not only at room changes. The bug is not fatal at all, but is fixed for revision 7 (hopefully).
When the admin uses the srvmonit utility to make the server reload it’s settings (gamemod), the client’s server settings window (F5) isn’t updated with the new settings. This is fixed for revision 7.
Of the in-game admin commands, only /ban with a time works reliably. This seems to be an error in our C++ STL implementation, but it can be easily worked around so it’s fixed in revision 6.
When the server admin orders a settings reset (gamemod reload) through srvmonit, the clients’ map lists don’t clear but the new map list is appended to it. This was fixed for revision 6.
Error messages like this are possible: “Client can't connect to master server. Address already in use”. This is a deficiency in HawkNL (the network library) code, but it is easy to fix and a fixed version of nl.dll is in the rev. 6 support file package. Meanwhile, the workaround is to wait: Windows releases the port after a small timeout (around a minute).
A rare crash when connecting to server was investigated. This client-killing server side bug was hopefully fixed for revision 6.
If the player password is set for a server that has a server password, the server complains about wrong server password even if no server password was given. Also, even if the previous isn’t true, the client always throws an assertion when trying to enter a server password. These problems are fixed in rev. 5.
Trying to disable the joystick fire button from the control menu (setting it to 0) makes the game think a fire button is constantly pressed. This was fixed for rev. 5.
The “Use keypad for moving” setting added to rev. 4 wasn’t fully functional. Disabling it only disabled the diagonal keys (1, 3, 7, 9). This was fixed for rev. 5.
If showing player names is enabled, after a player dies and respawns, the player’s name is still shown to others in the place of death if the other player doesn’t know where the player moves to. It also affects some other situations where a player “disappears”. This was fixed for rev. 5.
After a game is over, the server keeps sending stats updates, and with the right timing that will clear the client’s view of stats before the new game is begun. This was fixed for rev. 5.
At least when the game restarts when a second player enters, the time limit doesn’t work properly. This was fixed for rev. 5.
The combination of a graphics mode and FPS setting that make the game run at a lower speed than the FPS limit can cause a considerably higher ping. The lag prediction setting might be a factor too.
We try to address this in revision 4 by increasing the network thread priorities for the client. It should also make pings on remote servers slightly better.
What’s the part of the lag prediction setting is yet unknown. Use it only if you need it and feel it helps more than hinders. It doesn’t do much good when your ping is already under 100.
When you use the page flipping option (in fullscreen mode), and alt-tab out of Outgun and back, the room background is erased. It comes back when you move to another room or switch graphics modes. This is fixed in revision 4.
The player names are currently drawn too early and so get hidden under a large flag sprite (as in the metal theme), or deathbringer smoke. This is fixed for revision 4.
On some occasions, the client gets kicked out of the server because of “client misbehavior” when just connecting to the server. Some additional logging has been added to the server for revision 2, and we’re expecting more information on this now. This might also have been a side effect of the crash bug. Please report if this happens to you.
Getting a message similar to this is possible but should be rare.
Assertion failed: r2 - (y - cy)*(y - cy) >= 0 (int(r2*1000.)==81112, int(y*1000.)==33599, int(cy*1000.)==54812), file antialias.cpp, line 18
It’s possible this bug was also caused by the crash when trying to connect bug. If you have a similar message in revision 3 or newer, please report it.
We’ve had reports of Outgun totally crashing (GPFs) when trying to connect to any server. In analyzing one such crash, reported by ThOR27, a little coding mistake was spotted. It’s possible (but not sure) this was the cause for all the different crashes. Any crash with revision 3 is a different bug so please report that.
The server sometimes says “Extra-time out” when the game restarts for other reasons. This was fixed for revision 2.
There were some bugs with the server monitor (with player name reporting, muting players and sending invalid characters). They are now fixed, and revision 2 should work with srvmonit.
Sometimes setting a graphics mode might fail even if the mode normally works on the machine. If you have this, please send log/clientlog.txt, we need more information (win the reported by).
The game might at some time think you’re always strafing (as in pressing alt). The reported account was fixed by restarting the server. If you have this, please send log/leetclientdata.bin, we need more information (win the reported by).