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. By default netplay will be co-operative, but the host may use the --battle parameter to switch to deathmatch.
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.
Sound limitations
AdLib/PC Speaker sounds are played in mono and will lack stereo panning. Additionally technical limitations prevent more than one AdLib or PC Speaker sound from playing simultaneously. These sounds may be a bit chaotic as players fight for use of the single sound channel. These limits may be removed in a future version.
Sound roll off with distance is implemented, but sounds roll off to a minimum volume. Sounds for all players will be heard throughout the level. Rapid fire sounds from other players may get doubled up causing pops in volume. These will be addressed in a future release.
Lives are unlimited
At this time multiplayer games imply unlimited lives. More game modes may be added in the future.