User Tools

Site Tools


version:1.9.0-beta7

<noinclude> update Doomsday|1.9.0-beta6.10|1.9.0-beta7|1.9.0-betaX </noinclude> 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 cvars 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 cvars 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.
version/1.9.0-beta7.txt · Last modified: 2017-03-13 10:52 (external edit)