{{update}} {{verlinks|Doomsday|1.9.0-beta6.10|1.9.0-beta7|1.9.0-betaX}} The objective of this release is to implement the [[unified_networking]] model. This is accomplished through the introduction of several key 2.0 architecture components. It begins a transitional phase where [[libdeng]] and [[libdeng2]] live side by side, each providing certain functionalities. Over time in subsequent releases, subsystems will be migrated to [[libdeng2]] and revised accordingly, ultimately converting [[libdeng]] into a C wrapper API for [[libdeng2]]. The key idea behind the [[unified_networking]] is that the client/server operating model will be used in single-player games, too. In practice, there will be two separate processes (one for the client and one for the server), both linked to [[libdeng2]] (and to [[libdeng]] during the transitional phase). This makes future development easier and the functionality of the engine much more robust. Also important are improvements in the multiplayer gameplay. In fact, the application of the [[unified_networking]] will make it mandatory to fix multiplayer problems. In Beta7, internally there will be no more difference between singleplayer and multiplayer games. The old (substandard) engineside multiplayer code will be removed, helping to get rid of gameplay glitches. It also enables us to introduce new features to make multiplayer games more enjoyable. ====== Completed changes ====== **2.0 Architecture.** Start of the transformation towards the 2.0 architecture: * Introduces [[libdeng2]], implemented in C++. * libdeng2 contains a new application core, new internal file system, new script engine, new network communications, and the old memory zone for legacy use. * Server and client separate at the process level. * Server is a daemon with no user interface, just TCP sockets. **Unifying singleplayer and multiplayer.** There is no more difference between singleplayer and multiplayer games, apart from where the server process is running. Singleplayer games typically have the server running on the same computer. * Old singleplayer code acts as the foundation for the new multiplayer implementation. The old multiplayer code has been discarded. **Common game library.** For a long time the game plugins have been sharing a set of common source files. This functionality will form a separate shared library called [[libcommon]] that is truly common to all the games, and does not require repeated compilation for each game. * [[libcommon]] now exists and provides base classes for central game-side objects (e.g., GameMap, GameObject). ====== Upcoming changes ====== **Dependencies.** Upgrade dependencies for engine and all plugins (DirectX/cURL/SDL/SDL_net/SDL_mixer/OpenAL/zlib/libpng). ====== Potential changes/fixes from branches ====== ===== jDoom ===== * Changed: It is no longer necessary to enable jumping client-side for single player games. Provided jumping is enabled server-side all clients can jump. Removed [[cvar]] **player-jump**. * Changed: Renamed [[cvar]] **ctl-aim-noauto** to [[ctl-aim-auto]], changed behavior accordingly and enabled by default. * Changed: The HUD cheat counters which display number of kills, found secrets etc whilst in-game are now always visible when enabled (previously they were only visible when the automap was). The [[cvar]]s **map-cheat-counter** and **map-cheat-counter-scale** renamed to [[hud-cheat-counter]] and [[hud-cheat-counter-scale]] respectively. * Changed: [[server-game-skill]], [[server-game-map]] and [[server-game-episode]] are no longer archived in the game config. * Changed: Removed [[cvar]] **server-game-respawn-monsters-nightmare**. ===== jHeretic ===== * Changed: It is no longer necessary to enable jumping client-side for single player games. Provided jumping is enabled server-side all clients can jump. Removed [[cvar]] **player-jump**. * Changed: Renamed [[cvar]] **ctl-aim-noauto** to [[ctl-aim-auto]], changed behavior accordingly and enabled by default. * Changed: The HUD cheat counters which display number of kills, found secrets etc whilst in-game are now always visible when enabled (previously they were only visible when the automap was). The [[cvar]]s **map-cheat-counter** and **map-cheat-counter-scale** renamed to [[hud-cheat-counter]] and [[hud-cheat-counter-scale]] respectively. * Changed: [[server-game-skill]], [[server-game-map]] and [[server-game-episode]] are no longer archived in the game config. * Changed: Removed the **-devmaps** command line option. * Changed: Removed [[cvar]] **server-game-respawn-monsters-nightmare**. ===== jHexen ===== * Fixed: Ambient sounds played via ACS and the thunder clap not positioned in 3D when 3D sound enabled. * Changed: It is no longer necessary to enable jumping client-side for single player games. Provided jumping is enabled server-side all clients can jump. Removed [[cvar]] **player-jump**. * Changed: Renamed [[cvar]] **ctl-aim-noauto** to [[ctl-aim-auto]], changed behavior accordingly and enabled by default. * Changed: [[server-game-skill]], [[server-game-map]] and [[server-game-episode]] are no longer archived in the game config. * Changed: Removed unused [[cvar]] **msg-hub-override**. * Changed: Removed **-devmaps** command line option. * Changed: Removed **-debugsound** command line option.