Xash3D: Difference between revisions
(→Differences from GoldSrc: Added post-25th anniversary comparison.) |
Nekonomicon (talk | contribs) (Edited an old and not true information.) |
||
Line 5: | Line 5: | ||
--> | --> | ||
{{xash|4}} is a game engine that is almost fully compatible with {{goldsrc|4}}. The engine allows running most games and mods on [[GoldSrc]], but unlike the latter, it has significant improvements. | {{xash|4}} is a game engine that is almost fully compatible with {{goldsrc|4}}. The engine allows running most games and mods on [[GoldSrc]], but unlike the latter, it has significant improvements. | ||
{{modernImportant|This engine is written based on the open source code of Id Tech engines, as well as some derivatives of these engines such as DarkPlaces.}} | {{modernImportant|This engine is written based on the open source code of Id Tech engines, as well as some derivatives of these engines such as DarkPlaces and qFusion.}} | ||
{{warning|The first versions of this engine may indeed contain stolen HL2: Beta code ''build.c''. Nowadays the contain of HLSDK ''headers'', HL2 ''snd_mix.cpp, etc..'' some code in an engine makes this illegal. For information [https://github.com/FWGS/xash3d-fwgs/issues/63 discussion of the illegality Xash3D]}} | {{warning|The first versions of this engine may indeed contain stolen HL2: Beta code ''build.c''. Nowadays the contain of HLSDK ''headers'', HL2 ''snd_mix.cpp, etc..'' some code in an engine makes this illegal. For information [https://github.com/FWGS/xash3d-fwgs/issues/63 discussion of the illegality Xash3D]}} | ||
== Compatibility with GoldSource == | == 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 | 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, SDL2, filesystem_stdio, 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 | 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. | ||
== Differences from GoldSrc == | == Differences from GoldSrc == | ||
* Unlike the GoldSource engine, Xash doesn’t use a modular architecture. | * Unlike the GoldSource engine, Xash doesn’t use a modular architecture. | ||
* Xash is written in pure C, while GoldSrc is written in | * Xash is written in pure C, while GoldSrc is written fully in C++. | ||
* Xash supports both pre-caching and on-demand loading of resources, while GoldSrc only pre-caches resources. | * 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. | * Support for BSP maps in formats such as Quake 1, Half-Life, and Half-Life Blue Shift. | ||
Line 24: | Line 24: | ||
* Directly changing the sky type and rotation on a map. | * Directly changing the sky type and rotation on a map. | ||
* Support for detail textures (as in CS:CZ). | * Support for detail textures (as in CS:CZ). | ||
* Support for HD textures. | * Support for HD textures. | ||
* Separate physical and graphical interfaces to provide more functionality and customization. | * Separate physical and graphical interfaces to provide more functionality and customization. | ||
Line 69: | Line 68: | ||
Since the engine is distributed under the GNU GPL v3 free license, attempts have been made by third-party developers to create forks. | 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:''' | '''Currently known forks include:''' | ||
* [[ | * [[Xash3D FWGS (Formerly Xash3D SDL)]] - a cross-platform fork of the project that maintained by group of enthusiasts known as Flying With Gauss (a.k.a FWGS, formerly SDLash3D). It has full support for Windows, DOS, Linux, macOS, *BSD, Android, Haiku, SerenityOS, Elbrus, PSP, PS Vita, Nintendo Switch, MotoMAGX, partial support for SGI Irix, SailfishOS and AuroraOS, and includes numerous fixes and extensions to the original engine. Also, an old version supports Emscripten and iOS. | ||
* [[Xash3DEx a.k.a Xash3D Magenta]] - Stillborn project by [BlackPhrase https://github.com/BlackPhrase]. Actual version of this "engine" contains only one .bat file with only five strings. | |||
* [[Xash3D Magenta]] - | |||
== External Links == | == External Links == | ||
* [https:// | * [https://hlfx.ru/forum/forumdisplay.php?s=970e2c00429f8c5a6bae2a133dd7b079&forumid=14 Official Forum of Xash3D] | ||
* [https://www.moddb.com/engines/xash3d-engine/ ModDB Page] | * [https://www.moddb.com/engines/xash3d-engine/ ModDB Page] |
Revision as of 12:55, 25 November 2023


Xash3D is a game engine that is almost fully compatible with
GoldSrc. 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, SDL2, filesystem_stdio, 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.
Differences from GoldSrc
- Unlike the GoldSource engine, Xash doesn’t use a modular architecture.
- Xash is written in pure C, while GoldSrc is written fully in 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).
- 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 (Pre-25th) | GoldSource (Post-25th) |
---|---|---|---|
Maximum number of server entities (MAX_EDICTS) | 600 - 4096 | 900 (configurable via config) | 1200 |
Maximum number of temporary entities (MAX_TEMPENTS) | 300 - 2048 | 500 | Unknown[confirm] |
Maximum number of particles (MAX_PARTICLES) | 1024 - 8192 | 4096 | Unknown[confirm] |
Maximum number of beams (MAX_BEAMS) | 64 - 512 | 64 | Unknown |
Maximum number of visible entities in the package (MAX_VISIBLE_PACKET) | 512 | 256 | 1024 |
Maximum number of pre-cacheable models (+sprites)(MAX_MODELS) | 2048 | 512 | Unknown |
Maximum number of pre-cached sounds (MAX_SOUNDS) | 2048 | 512 | Unknown |
Maximum number of entries to read sentences made up of sentences (MAX_SENTENCES) | 2048 | 1534 | 2048 |
Maximum number of user messages (additional messages for protocol inside game dlls) (MAX_USER_MESSAGES) | 191 | 128 (in WON version) | Unknown |
Max number of loaded textures (MAX_TEXTURES) | 4096 | 2048 (loaded VGUIs) | Unknown |
Number of messages titles.txt (MAX_MESSAGES) | 2048 | 1024 | Unknown |
Maximum size of indexed textures | 4096х4096 | 512х512 | Unknown |
Maximum size of full color textures | 4096x4096 | - | Unknown |
Maximum number of models on the map (BSP limit)(MAX_MAP_MODELS) | 1024 | 256 | Unknown |
Maximum number of map leafs (BSP limit)(MAX_MAP_LEAFS) | 32767 | 8192 | Unknown |
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:
- Xash3D FWGS (Formerly Xash3D SDL) - a cross-platform fork of the project that maintained by group of enthusiasts known as Flying With Gauss (a.k.a FWGS, formerly SDLash3D). It has full support for Windows, DOS, Linux, macOS, *BSD, Android, Haiku, SerenityOS, Elbrus, PSP, PS Vita, Nintendo Switch, MotoMAGX, partial support for SGI Irix, SailfishOS and AuroraOS, and includes numerous fixes and extensions to the original engine. Also, an old version supports Emscripten and iOS.
- Xash3DEx a.k.a Xash3D Magenta - Stillborn project by [BlackPhrase https://github.com/BlackPhrase]. Actual version of this "engine" contains only one .bat file with only five strings.