The ver. column tells the last version that has this bug, in the case it has been fixed in a new release. If the bug still appears in a newer version than the one listed, please report it again. “Static” means the bug will probably never be fixed. See the details below for explanation. Date is when the bug was reported.
(build.size() & 1) == 0” in antialias.cpp
The assertion “(build.size() & 1) == 0” in antialias.cpp, line 422, can fail in some conditions. We don’t know which map and resolution can cause it, but it might be possible to fix even without that information. However, if this happens to you, please report these circumstances to help us solve this.
thread.h, line 92, and mutex.h, line 38The same assertions as in an older bug can also fail in version 1.0.2. Because we’ve only seen minimal bug reports about it, we don’t know anything about the circumstances, and until we get more information this can’t be fixed.
On some computers 1.0 might run at significantly lower FPS than 0.5.0 and 0.5.0-E. If this happens to you, check that you are using no larger resolution than 640×480 and 16-bit color depth. Also try with your desktop color depth if you are running in a window, it’s usually faster but 0.5.0 always uses 16-bit so it’s good for comparison. If you compare to 0.5.0 with the -flip argument, turn the page flipping option on in 1.0, otherwise turn it off. If you still get significantly worse FPS than in 0.5.0 please report your settings and the FPS in both versions.
Sometimes the refreshing of a game window can stop working when running Outgun in two windows at the same time. This might be an Allegro or a graphics driver bug. Report if you have this so we can have more information, but it is probably out of our reach to fix.
This is actually a documented feature (in the gamemod documentation) but it might feel like a bug so it’s listed here. There’s little we can do to fix this while keeping the physics sensible. It would require a player to be seen (and active in the physics run) in up to four rooms at once which simply isn’t doable with the current code, or some weird solution.
On some computers, the game might have some small and fast freezes when getting the flag or an item. That has only been reported to happen with a graphics theme enabled. The cause is unknown, but we are speculating on low memory and swapping, which are out of our hands. Report if you have this with plenty of memory and the investigation will be re-opened.
There are two separate hangs we’ve experienced. Both of them happen occasionally, quite randomly. One is caused by the Zone Alarm firewall when Outgun doesn’t already have its permissions set. ZA doesn’t deal well with another thread trying to access the net while the permission dialog is being shown. This is not a bug in Outgun really and we are probably not going to think of a workaround.
The other hang is graphics (probably overlays) related. You know if you have this problem by checking log\clientlog.txt. This problem leaves the following last row in the log: “Testing. If Outgun hangs here, restarting Windows should help. To avoid the problem, don't run Outgun with certain programs that use overlays (e.g. TV software).” There’s nothing really we can do about this either, without touching Allegro’s internals (if even then), so it will just have to be put up with.
Trying to enter a server which requires a password for your name, checking “Save password” and pressing enter without entering a password causes an assertion to fail. This is fixed in the 1.0.4 client.
Viewing a map that contains a negative texture number for a piece of either wall or ground can crash the Outgun client. From 1.0.4 on, these maps are correctly detected invalid.
When the “reload settings” (R) command in the server monitor is used, changes in the gamemod variables that control powerup count don’t produce new powerups until a player picks up a powerup, or the amount of players or the map changes. This is fixed in the 1.0.4 server.
If the width or height of the map is 128 rooms or more, the Outgun client will crash as soon as it receives a location of a player on the map. This only happens with the more accurate player location code that was added to version 1.0.2. This is fixed in the 1.0.4 client.
When the server disconnects the client for some reason, or an attempted connection is denied by the server, the client leaks a small amount of memory, and a somewhat larger amount of virtual memory (address space) due to a thread not being cleaned up. After happening enough times without the client being closed, this will eventually lead to the error “Can't create new thread. Insufficient system resources.”. In the bot test version this will also happen on a server with bots after enough bots being removed and re-added. This is fixed in Outgun 1.0.3 bot 3 and 1.0.4.
In Outgun 1.0.3 only, the IP address entry fields in the menus that allow a port to be used, don’t always allow enough characters to be entered for a long IP address with a port. This doesn’t necessarily always happen, since it depends on uninitialized memory. This is fixed in the 1.0.4 client. Before that, a workaround is entering the IP addresses directly into config/favorites.txt.
The code involved in loading a graphics theme has a memory leak. If the theme is changed many times in one run of the client, the problem is magnified and Outgun can end up reserving a huge amount of memory. This is fixed in the 1.0.3 client.
An FPS limit higher than what the machine can produce (or near that) can lead to a lack of CPU time for the networking threads which can increase ping and make it altogether harder to play, even show “server not responding”; also a local listen server is affected. This problem has only been in some of the most recent versions. It is again fixed in the 1.0.3 client.
When while connecting to a server the server denies access for any reason, the reply is sent in a manner that doesn’t get through many firewalls or NATs. This results in a client behind one showing “No response from server.” instead of the proper message. Situations in which this happens include the server being full, a wrong or missing password, and others. This is fixed in the 1.0.3 server.
Characters that are special in HTML (& and <) cause problems in names because they are written in the HTML statistics files in raw form. This is fixed in Outgun 1.0.3.
world.cpp, line 339
The assertion “fabs(dx * dx + dy * dy - r * r) < .0001” can fail in world.cpp, line 339. We’ve only received one minimal report of this bug, and lack information about what was happening, including the map and server physics. We couldn’t replicate it with even a reasonably tighter treshold, but nonetheless removed the assertion from Outgun 1.0.3 in the hopes that this was just an extreme problem with floating point imprecision with some extreme server physics, or at least that letting it pass wouldn’t cause major problems.
thread.h, lines 100, 108, 117, and 126
Assertions can fail in thread.h or leetnet/../thread.h, on lines 100, 108, 117, and 126. The message is “val == 0 (val==11)” in all cases. This is most likely because of running out of memory or other resources and not a problem with Outgun. Version 1.0.3 reports these as a regular error instead of an assertion, but still exits when it happens.
nlGetError() == NL_NO_PENDING” in servnet.cpp
The assertion “nlGetError() == NL_NO_PENDING” in servnet.cpp, line 2348, can fail when something goes wrong in listening for an admin shell connection. We can only guess that the problem in these cases has nothing to do with Outgun doing anything wrong, and it is rare, but still Outgun should handle it as a regular error and not assert. This is fixed in the 1.0.3 server.
player[pid].awaiting_client_readies” in servnet.cpp
The assertion “player[pid].awaiting_client_readies” in servnet.cpp, line 1371, can fail if balance_teams is set to shuffle, the map is changed twice in fast succession, and the game decides to swap the player whose vote triggers the later map change with a player on the other team. This might also trigger the client side error “server sent frame data when loading map” for the other swapped player. In otherwise identical conditions, and also with balance_teams setting balance, if the voting player is simply moved to the other team, they may stay infinitely in “waiting game start”. These are fixed in the 1.0.3 server.
myself != -1” in servnet.cpp on an almost full server
The assertion “myself != -1” can fail in servnet.cpp, line 1077, on a server when two players join at almost the same time and the server is almost full, so that one of them would fit on the server but both don’t. This is fixed in the 1.0.3 server.
mutex.h, line 37
When one assertion fails, it can trigger a second assertion to fail: “0 == pthread_mutex_destroy(&mutex)” in mutex.h, line 37. This is fixed in Outgun 1.0.3.
thread.cpp, line 72, when trying to connect to a server
The assertion “ret == 0 || (acceptRecursive && ret == EDEADLK) (ret==3)” can rarely fail in thread.cpp, line 72. This can happen at least when connecting to a server which doesn’t respond, and canceling the connection at the same time as it would fail naturally, possibly in some other situations too. This should be fixed in the Outgun 1.0.3 client.
thread.h, line 121
The assertion “!running” can fail in leetnet/../thread.h, line 121. It is hopefully fixed in Outgun client 1.0.3, although we couldn’t figure out how to create the bug on our computers.
The gamemod setting sudden_death doesn’t work. It is announced when extra time starts but the extra time is not terminated early unless the capture limit is reached. This is fixed in the 1.0.3 server.
Starting at some point in May 2005, all requests to the tournament server have started to fail. This results from a change in the tournament server’s configuration (which is not controlled by us), so that it doesn’t accept Outgun’s way of making requests anymore. Outgun 1.0.2 (both client and server) are changed to make it work again.
If one presses F8, and for some reason the server changes map before the message reaches it, the client will think that F8 has not been pressed (and not show “EXIT MAP”) while the server thinks it has. This is fixed in the 1.0.2 client.
A player’s position on the minimap may occasionally be off by one pixel, and much more with extra-large maps (like 32 rooms wide). This also affects the way the rooms are darkened on the map. The error stems from a difference in packing (in server side) and unpacking (client side) minimap coordinates. This is fixed in the Outgun 1.0.2 server so that older clients too always show players in the correct room. Additionally, the Outgun 1.0.2 client further improves the accuracy slightly, but it doesn’t help unless the server is also 1.0.2.
Very complex maps (more complex than the ones currently available) cause antialiasing to be very slow. This is the clearest when loading such a map, because drawing the minimap picture (with antialiasing) is so slow that on a slower computer the server might time out the connection while the client is drawing. The cause is a simple bug in the antialiasing code that is fixed in the 1.0.2 client. However, the antialising code has another issue which still makes it slower than necessary, but it doesn’t slow it down so much as to cause trouble with reasonable computers and maps. It will also be fixed sometime in the future, but it’s not a priority, especially because it isn’t all that simple.
On some machines, Outgun crashes when saving a screenshot with page flipping enabled. The screen may also end up partly black, and Outgun may even crash when switched out of and back into. These are most likely bugs in Allegro, but they are worked around in the Outgun 1.0.2 client.
Specifying an admin without a password does not work as intended. Instead of requiring tournament login to allow administration, anyone with that name is allowed access to the admin commands. Therefore, using passwordless admins is strongly recommended against, before upgrading the server to Outgun 1.0.2 which fixes the issue.
Messages like “ has kicked Nix (disconnect in 10 seconds).” and “You are being kicked from this server by !” are printed when a player is kicked from the server using the server monitor program, and similar for bans. The words “the admin” are missing from the messages. The equivalent happens with translations too. This is fixed in the 1.0.2 client.
When a player who has voted for a map leaves the server, the other connected clients don’t erase the vote in their map list screen until that map’s votes otherwise change. This is fixed in the 1.0.2 server.
If a player is alone on a server and for some reason suddenly stops sending packets to the server, the server doesn’t notice this and kick them out until the server receives some packet. If there are multiple players connected, the other players’ traffic is enough, so this doesn’t happen. It is fixed in the 1.0.2 server.
After disconnecting from a server while downloading a map, attempts to connect again fail with the client thinking it is still downloading. Restarting Outgun is needed to get rid of the situation. This is fixed in the 1.0.2 client.
Regrettably, version 1.0.1 introduced a server side bug, which results in clients disconnecting with the message “Server sent frame data when loading map”, when downloading a large map file, with bad ping, or with a low game_end_delay setting. This doesn’t happen when you first enter the game. This is fixed in the 1.0.2 server.
When carrying a flag, the player is always slightly visible, even if the server has invisible shadow enabled. The visibility is especially noticeable if the supposedly invisible player has the power powerup. This is fixed in the 1.0.2 client.
When the server map list changes (for example on a reload settings command from the server monitor), the clients show on the map list screen a wrong map as current (yellow). This is fixed in 1.0.2, but requires both the server and the client to be upgraded.
If you’ve entered your tournament login to Outgun, failing to start the Outgun client for any reason may result in one or both of these assertions being hit: “0 == pthread_mutex_lock(&mutex)” in mutex.h, line 38; and “!running” in thread.h, line 92. Problems other than these assertions are also possible. All of this is fixed in the 1.0.2 client.
world.cpp, line 3257, when joining a server
This assertion (“flag”) is triggered when you join a server where the teams are even, and someone with a flag in the team you are chosen to join has pressed end to change their team (some luck!). This server side bug is fixed in 1.0.1.
When the ping to the server you are currently connected to is large, connecting to another server still produces an extra “disconnected” message. This client side bug is fixed for most cases in 1.0.1.
/forcemap doesn’t clear all stats on restart
When the /forcemap administrator command is used to only restart the round, the team scores and most other statistics (but not the player frags) continue showing their old value. This server side bug is fixed in 1.0.1.
When balance_teams is set to balance or shuffle, and as a result of that a player who happens to have a flag is moved to the other team at the end of a round, the server has an assertion fail in world.cpp line 1487: “flag != -1”. This server side bug is fixed in 1.0.1.
With player_collisions set to special, when two players of whom one has the turbo powerup collide, they sometimes get stuck where they look like moving wildly but stay in the same place and any player in the same room can’t move, until the stuck players run out of turbo. This server side bug is fixed in 1.0.1.