Xash3D: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
Line 23: Line 23:
* More efficient occlusion culling system, increasing FPS and reducing “r_speeds”.
* More efficient occlusion culling system, increasing FPS and reducing “r_speeds”.
* Extended resource limits that can be customized for mod requirements through the gameinfo.txt file. Reducing limits can save more RAM in mods that don’t require many edicts (server entities). The MAX_EDICTS parameter is also transmitted from the server during multiplayer sessions, allowing clients to automatically adjust to new conditions.
* Extended resource limits that can be customized for mod requirements through the gameinfo.txt file. Reducing limits can save more RAM in mods that don’t require many edicts (server entities). The MAX_EDICTS parameter is also transmitted from the server during multiplayer sessions, allowing clients to automatically adjust to new conditions.
{| class="wikitable"
{| class="wikitable"
|-
|-
! Limit !! Xash3D !! GoldSource
! Limit !! Xash3D !! GoldSource
|-
|-
| Maximum number of server entities (MAX_EDICTS) || 600 - 4096 || 900 (настраиваемо через конфиг)
| Maximum number of server entities (MAX_EDICTS) || 600 - 4096 || 900 (configurable via config)
|-
|-
| Maximum number of temporary entities (MAX_TEMPENTS) || 300 - 2048 || 500
| Maximum number of temporary entities (MAX_TEMPENTS) || 300 - 2048 || 500
Line 57: Line 59:
| Maximum number of map leafs (BSP limit)(MAX_MAP_LEAFS) || 32767 || 8192
| Maximum number of map leafs (BSP limit)(MAX_MAP_LEAFS) || 32767 || 8192
|}
|}


== Engine derivatives ==
== Engine derivatives ==

Revision as of 00:12, 3 July 2023

Xash3D Xash3D is a game engine that is almost fully compatible with GoldSrc GoldSrc. Xash3D is based on the source codes of engines like Quake engine, Id Tech 2, Id Tech 3, and DarkPlaces. The engine allows running most games and mods on GoldSrc, but unlike the latter, it has significant improvements.

Compatibility with GoldSource

The compatibility of the Xash engine with GoldSource is currently estimated to be approximately 90%. This means that the vast majority of mods and games designed for the GoldSource engine should work correctly on Xash3D without any modifications. Numerous single-player mods for the original GoldSource have been tested on Xash, with most of them functioning perfectly and identical to how they work on GoldSource. However, there are some exceptions for games that were designed for the Steam version of GoldSource, as they utilize undocumented engine features that make their adaptation more challenging (such as VGUI2 libraries, Steam libraries, and other engine modules).

The engine supports Metamod and AmxModX with their plugins, although not all plugins are fully compatible, as many of them were initially optimized for GoldSource rather than Xash. Multiplayer mods are also supported by the engine, but there are some subsystems that require finalization (completion) or upgrade (improvement or rewriting). One such unfinished module is the client-side prediction system, which is necessary for full utilization of Xash in multiplayer mods.

Differences from GoldSrc

  • Unlike the GoldSource engine, Xash doesn’t use a modular architecture.
  • Xash is written in pure C, while GoldSrc is written in C/C++.
  • Xash supports both pre-caching and on-demand loading of resources, while GoldSrc only pre-caches resources.
  • Support for BSP maps in formats such as Quake 1, Half-Life, and Half-Life Blue Shift.
  • Xash is not bound to the native directory of Half-Life (the “valve” folder), and the mod directory can be specified in the launcher if needed. This allows for the creation of independent games separate from Half-Life.
  • Support for ambient maps (as in Half-Life 2).
  • Xash doesn’t require unused WAD files, and resources that are not actually used on the loaded map.
  • Transparent file system, allowing for accessing files in archives using the same methods as files outside archives.
  • Support for colored messages in the console (using the “^” tag).
  • Directly changing the sky type and rotation on a map.
  • Support for detail textures (as in CS:CZ).
  • Mirrored surfaces.
  • Support for HD textures.
  • Separate physical and graphical interfaces to provide more functionality and customization.
  • More efficient occlusion culling system, increasing FPS and reducing “r_speeds”.
  • Extended resource limits that can be customized for mod requirements through the gameinfo.txt file. Reducing limits can save more RAM in mods that don’t require many edicts (server entities). The MAX_EDICTS parameter is also transmitted from the server during multiplayer sessions, allowing clients to automatically adjust to new conditions.


Limit Xash3D GoldSource
Maximum number of server entities (MAX_EDICTS) 600 - 4096 900 (configurable via config)
Maximum number of temporary entities (MAX_TEMPENTS) 300 - 2048 500
Maximum number of particles (MAX_PARTICLES) 1024 - 8192 4096
Maximum number of beams (MAX_BEAMS) 64 - 512 64
Maximum number of visible entities in the package (MAX_VISIBLE_PACKET) 512 256
Maximum number of pre-cacheable models (+sprites)(MAX_MODELS) 2048 512
Maximum number of pre-cached sounds (MAX_SOUNDS) 2048 512
Maximum number of entries to read sentences made up of sentences (MAX_SENTENCES) 2048 1534
Maximum number of user messages (additional messages for protocol inside game dlls) (MAX_USER_MESSAGES) 191 128 (в WON версии)
Max number of loaded textures (MAX_TEXTURES) 4096 2048 (loaded VGUIs)
Number of messages titles.txt (MAX_MESSAGES) 2048 1024
Maximum size of indexed textures 4096х4096 512х512
Maximum size of full color textures 4096x4096 -
Maximum number of models on the map (BSP limit)(MAX_MAP_MODELS) 1024 256
Maximum number of map leafs (BSP limit)(MAX_MAP_LEAFS) 32767 8192

Engine derivatives

Since the engine is distributed under the GNU GPL v3 free license, attempts have been made by third-party developers to create forks. Currently known forks include:

  • Xash3DEx - a fork of the engine with some fixes.
  • Xash3D SDL (a.k.a SDLash3D) - a cross-platform fork of the project that uses the Simple DirectMedia Layer. It has full support for Linux and Android, partial support for FreeBSD and Mac OS X, and includes numerous fixes and extensions to the original engine.
  • Xash3D Magenta - a project aimed at porting the engine’s codebase to C++ and implementing a modular architecture.

See also