F.A.Q. about Multiplayer
(Updated for stable 1.10)
This topic is for frequently asked questions about multiplayer (MP) games using the Doomsday Engine (1.9.7 onwards).
1. What's up with multiplayer in Doomsday?
From the stable release 1.9.7 onwards, we have been in a public multiplayer testing/debugging phase. Most of the progress in this region of the code has been done in 2011; year 2012 saw little development with regard to MP. In March 2013, during the 1.10 candidate phase, work was again done to fix a number of issues.
Originally, Doom's MP code was designed for low-latency networks such as LANs and modem connections, where it was possible to synchronize time, player actions, and game world events deterministically across all the participants. Most of the data exchanged over the network consisted of player control state, out of which player actions were then deterministically reproduced on each game instance in the network.
Early during the development of Doomsday it became clear to this model of networking was overly constrained: changing the smallest of details in the gameplay could break synchronization between the game instances. Therefore the decision was made to begin the switch to a client/server networking model, where one game instance acts as a host and others join the game as clients. The host has the authoritative copy of the game world, and changes in that world are reproduced on the clients via "deltas", i.e., messages containing information about changes in the world (e.g., texture changed to N, plane moved to height Z).
The implementation was initially made in such a way that retained the original code for single-player games, with the MP code being an additional layer of logic. This had the downside of increasing complexity, and therefore decreasing the quality of the code: for many years Doomsday's MP was rather glitchy and unreliable.
For the stable 1.9.7, a lot of effort was invested into cleaning up bugs in the MP code. However, while this was being done it became evident that we were still quite far from a proper client/server architecture. Work now continues towards separating the server and client into independent executables.
2. Who is working on Doomsday's MP code?
For now, skyjake.
3. How do I host my own game? / It used to easy to host a game, why not any more?
Along with the rest of the engine, Doomsday's MP code is undergoing a radical revision as we get nearer and nearer to Doomsday 2.0 (see Roadmap). Consequently, certain functionality may not be at an ideal level at all times. For example, unlike in the past, it isn't presently (1.10) possible to host local games straight from the Main Menu. (Largely because that would require implementing a proper setup GUI for the server, and doing that using Doomsday's present-day UI code is prohibitively cumbersome.)
Starting with version 1.10, Doomsday servers are run completely separate from the main executable. In traditional terms, only "dedicated" servers are supported. The Shell is a tool for operating servers on your own computer. While in 1.10 it only contains the very basic features, more will be added in the future for tasks like easy game configuration. You can find the Shell in the folder where you installed Doomsday.
At present time (1.12), the recommended way to play MP is on a server started with the Shell. The Deng Team is presently not running public test servers.
For more information and instructions for hosting a game, see the Multiplayer article in the wiki.
4. I think I found a bug? / What are the known issues?
See the list of known MP issues. Use the Bug Tracker to report any new/unlisted problems.
This topic is for frequently asked questions about multiplayer (MP) games using the Doomsday Engine (1.9.7 onwards).
- What's up with multiplayer in Doomsday?
- Who is working on Doomsday's MP code?
- How do I host my own game? / It used to easy to host a game, why not any more?
- I think I found a bug? / What are the known issues?
1. What's up with multiplayer in Doomsday?
From the stable release 1.9.7 onwards, we have been in a public multiplayer testing/debugging phase. Most of the progress in this region of the code has been done in 2011; year 2012 saw little development with regard to MP. In March 2013, during the 1.10 candidate phase, work was again done to fix a number of issues.
Originally, Doom's MP code was designed for low-latency networks such as LANs and modem connections, where it was possible to synchronize time, player actions, and game world events deterministically across all the participants. Most of the data exchanged over the network consisted of player control state, out of which player actions were then deterministically reproduced on each game instance in the network.
Early during the development of Doomsday it became clear to this model of networking was overly constrained: changing the smallest of details in the gameplay could break synchronization between the game instances. Therefore the decision was made to begin the switch to a client/server networking model, where one game instance acts as a host and others join the game as clients. The host has the authoritative copy of the game world, and changes in that world are reproduced on the clients via "deltas", i.e., messages containing information about changes in the world (e.g., texture changed to N, plane moved to height Z).
The implementation was initially made in such a way that retained the original code for single-player games, with the MP code being an additional layer of logic. This had the downside of increasing complexity, and therefore decreasing the quality of the code: for many years Doomsday's MP was rather glitchy and unreliable.
For the stable 1.9.7, a lot of effort was invested into cleaning up bugs in the MP code. However, while this was being done it became evident that we were still quite far from a proper client/server architecture. Work now continues towards separating the server and client into independent executables.
2. Who is working on Doomsday's MP code?
For now, skyjake.
3. How do I host my own game? / It used to easy to host a game, why not any more?
Along with the rest of the engine, Doomsday's MP code is undergoing a radical revision as we get nearer and nearer to Doomsday 2.0 (see Roadmap). Consequently, certain functionality may not be at an ideal level at all times. For example, unlike in the past, it isn't presently (1.10) possible to host local games straight from the Main Menu. (Largely because that would require implementing a proper setup GUI for the server, and doing that using Doomsday's present-day UI code is prohibitively cumbersome.)
Starting with version 1.10, Doomsday servers are run completely separate from the main executable. In traditional terms, only "dedicated" servers are supported. The Shell is a tool for operating servers on your own computer. While in 1.10 it only contains the very basic features, more will be added in the future for tasks like easy game configuration. You can find the Shell in the folder where you installed Doomsday.
At present time (1.12), the recommended way to play MP is on a server started with the Shell. The Deng Team is presently not running public test servers.
For more information and instructions for hosting a game, see the Multiplayer article in the wiki.
4. I think I found a bug? / What are the known issues?
See the list of known MP issues. Use the Bug Tracker to report any new/unlisted problems.