Frequently Asked Questions

Troubleshooting

EECS doesn’t find the IWAD.

Put the IWAD (for example, doom2.wad) in the user/wads folder. By default this will be C:\Program Files\Eternity Engine\user\wads.

Client hangs in the full-screen console before connecting.

You might need to enter a password. Be sure to read the text in the console to make sure it’s not asking you to input a password.

A weird box pops up in the browser when clicking on server links.

It’s asking you if you want to launch Eternity, which you do.

Clicking on server links doesn’t work on Vista.

  • Uninstall Eternity using the uninstaller
  • Reinstall Eternity to C:\Eternity

Whatever you do, do not ask mikehail about this. Not even once.

Clicking on server links doesn’t work on Linux.

The server links use the eternity:// protocol, and there’s no 100% sure way to set protocol handlers in Linux. If you’re using Firefox or you have Gnome libs installed, you can try the instructions here.

Personally, I launch EECS from the command-line like: eternity -csjoin eternity://master.totaltrash.org/servers/totaltrash/ctf. We plan to fix this as well.

Blood spawned from shots doesn’t seem to match up with damage.

EECS has a predict_shots option that predicts shot collision and spawns bullet puffs or blood instantly instead of waiting for the server. While this feels more “crisp”, it can be inaccurate, possibly resulting in the feeling that too much blood gushes out of your opponent when you shoot them. You can set predict_shots to no to disable this, but while shot results will be accurate, they will be lagged.

After alt-tabbing to a different application, part of the EE screen is frozen.

This is likely an SDL bug, and it only shows up in Windows Vista and Windows 7 with Desktop Video Acceleration disabled. To work around it, use EE’s GL-in-2D mode (in system.cfg):

  • set i_videodriverid to 1 (SDL GL2D)
  • set d_fastrefresh to 1

Mouse lag

Using VSYNC on some video drivers will cause mouse input to be lagged. To avoid this, disable VSYNC in your video driver’s configuration.

Mouse gets slightly “stuck”

The mouse may be sampled unevenly due to Doom’s 35Hz framerate cap, and this may result in the mouse feeling like it’s “stuck” turning or moving. To avoid this, enable d_fastrefresh.

Adding fonts

EE supports TTF fonts, and adding them is as simple as copying the font file (i.e. arial.ttf) to the user/fonts folder.

Netcode

EECS has both clientside and serverside buffers designed to improve smoothness, however, the tradeoff is increased latency.

Clientside packet buffer

The client has an optional packet buffer that buffers messages received from the server. Players can enable the packet buffer using packet_buffer, and they can set the size using packet_buffer_size A size of 0 causes the buffer to adapt to your latency and packet loss. Other sizes specify how many TICs of messages to buffer. Again, be aware that the larger the buffer, the more latency is artifically added to your connection.

Serverside command buffer

The server has an optional command buffer that buffers commands received from every client. This is enabled/disabled using the buffer_client_commands option in the server configuration file. The buffer is adaptive; size cannot be set manually.

Using Netstats

The show_netstats command can help players get an idea of their connection quality. To enable them, type show_netstats yes into the console.

The 1st number is the number of TICs it takes for a message to arrive from the server to the client.

The 2nd number is the current number of TICs that are buffered in the clientside packet buffer.

The 3rd number is the number of your commands the server has buffered in the serverside command buffer.

The 4th number is the percentage of packets that successfully arrive at the server the first time they’re sent. If this number is less than 100%, it doesn’t mean information is being lost; packets that are lost are always resent. However, resending adds to your latency.

Bandwidth

One of our design assumptions was “bandwidth is cheap”. If you are using a modem or your internet download bandwidth is less than 256kbps (that’s 256 kilobits per second, or 32kB/s is the max you see while - for example - downloading in your browser) you will almost certainly have serious problems playing EECS.

To be specific, a player’s minimum position requires at least 32 bytes. We have to add 16 bytes to that for sequencing and identification (position for which player at which TIC), for a grand total of 48 bytes. Assuming a 16 player server, you are receiving 15 positions every TIC, so 525 positions per TIC. 48 * 525 is 25.2kB/s, or 201.6kbps.

This is a best-case scenario, because we’re assuming there are only 15 other actors (players, monsters, plasma balls, etc.). Cooperative games will requires more bandwidth, especially WADs with a huge amount of monsters. Additionally we are only calculating bandwidth used by position messages. While they are certainly the lion’s share of messages, there are over 30 messages overall; in particular moving platforms will send a large amount of (small) messages.

We plan to be more flexible in this area in the future. Other ports (Odamex and ZDaemon that we’re aware of) allow you to specify your update rate so you have the option of reducing your incoming bandwidth 50%-67%, but you pay a high price in accuracy. Because of our focus on competition, we always err on the side of accuracy, however we recognize that not all players are competitive and may not mind or even notice the difference. On the other hand, we also plan to optionally use more bandwidth to alleviate some of the negative effects of packet loss.