ECWolf

Weblog ECWolf ECWolf Wiki
Multiplayer Notes

Requirements

ECWolf uses a peer-to-peer lock-step networking model similar to ZDoom. The short version is that it's only really suitable for LAN play. The long technical version is that it requires that all nodes be able to accept incoming connections on their port (default is 5029), which means that playing behind NATs (particularly carrier grade NATs) is difficult. During initialization the host shares the IP/port list with all nodes and after the initial sync the host is the same as any other node except for being assigned automatically as "arbiter".

ECWolf has an internal tic rate of 70Hz (~14.29ms) so for best results your ping between any two nodes should be less than that. This makes running over the Internet impractical. At this time ECWolf does not have any mechanism to buffer inputs to alleviate this requirement.

Ensure that all game data files are identical on every node and that all players are using the same version of ECWolf. The net code only transmits player inputs over the wire so any changes to the game data may cause desyncs. The order files are loaded must also be the same.

Should the game desync it's likely there's a bug. Unfortunately at this time there's no way to resolve a desync besides restarting.

Content

ECWolf does not provide additional graphical assets for multiplayer. If no loaded mod provides these assets then player position will be marked with a missing asset icon, and enemies will appear to face the wrong direction when firing at another player. This is merely cosmetic and the game plays the same regardless. Check out the Wolfenstein Sprite Fix and Rotation Project for a (at the time of this writing partial) fix for Wolf3D/Spear of Destiny.

Although I don't believe there are any instances in the vanilla levels that would cause a soft lock in multiplayer but not single player, keep in mind that many level sets were not designed with multiple players in mind. There may be soft lock scenarios especially when players die and respawn. Debug mode (cheats) is not locked out in multiplayer so they can be used to get out of soft locks.

How to run

Select one node to be the host and from the command prompt/terminal run ECWolf with the --host parameter. For a two player game this would look like:

ecwolf --host 2

On all other clients use the --join parameter with the host's IP.

ecwolf --join 192.168.0.100

Once at the main menu all nodes should select "New Game". The arbiter node (i.e. the one that is "hosting") will be allowed to select the game parameters. Once everyone is waiting the game will start.

Running multiple nodes on the same computer

Should you want to test net play locally on a single computer, you will need to manually specify an alternate port for additional clients. Generally this is done on the nodes joining, but can be done with the host as well (say if something is already using UDP 5029). In that case the host's port will need to be provided to --join (i.e. --join localhost:5030). To change the port use the --port option (i.e. --port 5030).

Maximum players

ECWolf currently supports up to 11 nodes. This matches the limit of Rise of the Triad.

Mods may explicitly support starting points for each player, but in order to support vanilla's levels ECWolf allows players to pass through each other and share spawn spots.

Low framerate on some nodes

If one node has an unusually low frame rate compared to the others, this may be caused by the adaptive frame rate code being confused by the net code waiting for inputs. If there's no underlying cause (such as one node simply not being powerful enough to run the game at full speed), then having everyone open the menu and close it at the same time may be enough to fix the timing issue.

Lives are unlimited

At this time multiplayer games imply unlimited lives. More game modes may be added in the future.

 

© 2004-2022 Braden "Blzut3" Obrzut