Xash3D: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎top: clean up, replaced: {{goldsrc → {{gldsrc)
Line 88: Line 88:
* [[UMVHLT]] - Unkle Mike's Custom Build of Vluzacn's Custom Build of Zoner's Half-Life Tools.
* [[UMVHLT]] - Unkle Mike's Custom Build of Vluzacn's Custom Build of Zoner's Half-Life Tools.
* [[P2Tools]] - {{p2s|4}} Tools. Includes Vluzacn's Custom Build of Zoner's Half-Life Tools adopted to {{p2s|1}} and not only.
* [[P2Tools]] - {{p2s|4}} Tools. Includes Vluzacn's Custom Build of Zoner's Half-Life Tools adopted to {{p2s|1}} and not only.
== See also ==
* {{goldsrc|4}}
* {{Idtech3|4}}


== External links ==
== External links ==

Revision as of 06:32, 23 January 2024

English (en)Translate (Translate)
Screenshot in-game of Paranoia 2: Savior Paranoia 2: Savior, using the Xash3D Engine.

Xash3D Xash3D is a game engine that is almost fully compatible with GoldSrc GoldSrc. The engine allows running most games and mods on GoldSrc, but unlike the latter, it has significant improvements.

Icon-Important.pngImportant: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.pngWarning: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.[1]

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 Counter-Strike: Condition Zero Counter-Strike: Condition Zero).
  • 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 - 2048 (configurable via config) plus 15 * max_players in multiplayer 1200 - 2048
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.

  • Sing Engine - first port of original Xash3D to Linux made by adamixik and fire64
  • Xash3D FWGS (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. Unlike original Xash3D has modular architecture that similar to ID Tech 2 and GoldSource.
  • Xash3DEx (Xash3D Magenta - stillborn project by BlackPhrase. Actual version of this "engine" contains only one .bat file with only five strings.
  • Xash3D VR - special version of Xash3D FWGS for Google Cardboard. Was made by Solexid.
  • Lambda1VR - special version of Xash3D FWGS for Oculus Quest. Was made by DrBeef.
  • Half-LifeX (Xash3Dx) - fork of original Xash3D engine that supports original Xbox. Originally was made by marty28.
  • Xash3DS - fork of Xash3D FWGS that supports Nintendo 3DS.
  • Xash3D-Wii - fork of Xash3D FWGS that supports Nintendo Wii.
  • Xash3D-RT - fork of Xash3D FWGS with a real-time path tracing support via hacks using OpenGL instead of Vulkan. Made by sultim-t to get offer by NVidia.
  • nightfire-open (Formerly afterburner) - Reimplementation of James Bond 007: Nightfire James Bond 007: Nightfire game engine and SDK that based on Xash3D FWGS engine and hlsdk-portable. Made by noodlecollie

Software Development Tools

Engine has alternative software development kits for modders that have more features than normal Half-Life SDK

  • hlsdk-portable - fork of Half-Life SDK with many bugfixes that made to make multiports of GoldSource's mods using Xash3D FWGS.
  • XashXT - fork of Spirit of Half-Life that have custom model format, render and physics.
  • PrimeXT - fork of XashXT and Spirit of Half-Life that have custom model format, render, physics and tools.
  • stubserver - Clean Room reimplementation of Half-Life SDK written in pure C. Currently does not have functionality to make mods.
  • UMVHLT - Unkle Mike's Custom Build of Vluzacn's Custom Build of Zoner's Half-Life Tools.
  • P2Tools - Paranoia 2: Savior Paranoia 2: Savior Tools. Includes Vluzacn's Custom Build of Zoner's Half-Life Tools adopted to Paranoia 2: Savior and not only.

See also

External links

References

  1. Discussion of the illegality Xash3D