Outgun / 1.0 / Known issues

Outgun 1.0 – known issues

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.

Ver.DateReported byDescription
unfixed2006-02-23unknown Assertion failed: “(build.size() & 1) == 0” in antialias.cpp
unfixed2005-12-20unknown Assertions in thread.h, line 92, and mutex.h, line 38 (needs more info)
static 2004-05-06NosferatuWorse FPS than 0.5.0
static 2004-04-22ThOR27 Window doesn’t refresh while in menu running two Outguns (Windows)
static 2004-04-21ThOR27 Player collisions don’t work at room change
static 2004-04-20ThOR27 Small freezes when getting the flag or an item, with a gfx theme on
static 2004-04-19Nix Hangs when starting Outgun (Windows)
1.0.3 2008-03-15unknown Assertion failure when trying to save an empty player password
1.0.3 2007-10-24Huntta Negative texture numbers crash the client
1.0.3 2006-05-06Joonas Powerup settings don’t have immediate effect with reload settings
1.0.3 2006-05-06Joonas Maps with more than 127 rooms in either dimension crash the client
1.0.3 2006-02-27Huntta Getting disconnected by the server leaks memory in the client
1.0.3 2006-03-02Huntta IP address fields don’t allow enough characters
1.0.2 2006-01-11Huntta Graphics theme loading leaks memory
1.0.2 2005-12-05Huntta High FPS limit causes networking problems
1.0.2 2005-10-14Nix Connection denying messages don’t work in firewalled environments
1.0.2 2005-07-04Huntta HTML special characters in names break the statistics
1.0.2 2006-01-13unknown Assertion failed in world.cpp, line 339
1.0.2 2005-03-19unknown Assertions in thread.h, lines 100, 108, 117, and 126
1.0.2 2005-12-10unknown Assertion “nlGetError() == NL_NO_PENDING” in servnet.cpp
1.0.2 2005-11-21unknown Assertion “player[pid].awaiting_client_readies” in servnet.cpp
1.0.2 2005-09-12unknown Assertion “myself != -1” in servnet.cpp on an almost full server
1.0.2 2005-09-24unknown After one assertion, a new assertion in mutex.h, line 37
1.0.2 2005-09-24unknown Assertion failed in thread.cpp, line 72, when trying to connect to a server
1.0.2 2005-04-24unknown Assertion failed in thread.h, line 121
1.0.2 2005-06-26Nix Sudden death doesn’t work
1.0.1 2005-05-20Nix All connections to the tournament server fail
1.0.1 2005-03-22Nix Pressing F8 simultaneously with a map change causes the client and server to disagree
1.0.1 2005-03-20Huntta Players on minimap occasionally shown in a wrong room
1.0.1 2005-03-21Nix Antialiasing, including drawing the minimap, is very slow on certain complex maps
1.0.1 2005-02-22Huntta Problems with page flipping
1.0.1 2005-02-21Spinal Passwordless admins allow anyone to admin with the right name
1.0.1 2005-02-15Nix When using the server monitor to kick or ban players, the message is incomplete
1.0.1 2005-02-12Nix Client side map vote counts get incorrect when voted players leave the server
1.0.1 2005-02-10Nix Nonresponding clients aren’t kicked until the server receives some traffic
1.0.1 2005-02-09Nix After disconnecting during map download, reconnecting doesn’t work
1.0.1 2005-02-09Nix “Server sent frame data when loading map” with 1.0.1 servers
1.0.1 2005-02-09Huntta There’s no full invisibility with a flag
1.0.1 2005-02-09Nix When the map list changes, the client marks a wrong map as current
1.0.1 2005-01-31unknown Assertions failed when in the tournament, and starting the client fails
1.0.0 2005-02-01unknown Assertion failed in world.cpp, line 3257, when joining a server
1.0.0 2005-01-31Nix Connecting to a server while already connected may still require extra keypresses
1.0.0 2005-01-31SnoOpY /forcemap doesn’t clear client side team scores on restart
1.0.0 2005-01-29Huntta Balancing or shuffling players with flags asserts
1.0.0 2005-01-26Miague-DHWith special collisions, players with turbo can get stuck to each other

Details

Assertion failed: “(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.

Assertions in thread.h, line 92, and mutex.h, line 38

The 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.

Worse FPS than 0.5.0

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 640480 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.

Window doesn’t refresh while in menu running two Outguns (Windows)

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.

Player collisions don’t work at room change

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.

Small freezes when getting the flag or an item, with a gfx theme on

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.

Hangs when starting Outgun (Windows)

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.

Assertion failure when trying to save an empty player password

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.

Negative texture numbers crash the 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.

Powerup settings don’t have immediate effect with reload settings

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.

Maps with more than 127 rooms in either dimension crash the client

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.

Getting disconnected by the server leaks memory in the 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.

IP address fields don’t allow enough characters

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.

Graphics theme loading leaks memory

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.

High FPS limit causes networking problems

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.

Connection denying messages don’t work in firewalled environments

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.

HTML special characters in names break the statistics

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.

Assertion failed in 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.

Assertions in 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.

Assertion “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.

Assertion “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.

Assertion “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.

After one assertion, a new assertion in 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.

Assertion failed in 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.

Assertion failed in 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.

Sudden death doesn’t work

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.

All connections to the tournament server fail

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.

Pressing F8 simultaneously with a map change causes the client and server to disagree

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.

Players on minimap occasionally shown in a wrong room

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.

Antialiasing, including drawing the minimap, is very slow on certain complex maps

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.

Problems with page flipping

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.

Passwordless admins allow anyone to admin with the right name

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.

When using the server monitor to kick or ban players, the message is incomplete

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.

Client side map vote counts get incorrect when voted players leave the server

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.

Nonresponding clients aren’t kicked until the server receives some traffic

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 during map download, reconnecting doesn’t work

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.

“Server sent frame data when loading map” with 1.0.1 servers

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.

There’s no full invisibility with a flag

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 map list changes, the client marks a wrong map as current

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.

Assertions failed when in the tournament, and starting the client fails

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.

Assertion failed in 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.

Connecting to a server while already connected may still require extra keypresses

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.

Balancing or shuffling players with flags asserts

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 special collisions, players with turbo can get stuck to each other

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.


Updated 2008-03-16 – Niko Ritari