Xash3D is the powerful independent open-sourced 3D-engine, aimed for high compatibility with GoldSource engine formats (maps, models, textures, sounds, entities etc.), but with the intention to be an advanced platform for modmaking or game development. Technically it has been built from a scratch, using as totally original ideas, as some ideas from other 3D-engines. Xash3D overcomes obsolete GoldSource engine's limits and provides for you a new quality of gaming experience and modmaking capabilities, as extended map, model, texture & sound formats with higher limits, possibility to implement custom renderers with dynamic lighting and other modern features. Xash3D is the easy-to-use base to play existing Half-Life mods & create something new, impossible with GoldSource. Years of development & testing allowed to make from Xash3D a perfect mix of high compatibility with common GoldSource standards & high openness to creative modmaking ideas.
It's a minor unplanned update of Xash3D (comparing to build 4312). Just added/changed some features related to Quake Wrapper and for one of new Unkle Mike's projects. But there are a lot of changes, if you still use older builds of Xash3D. If you have any problems - make sure you properly installed everything following the manual. Press "Read more..." for details.
For questions about mods' support refer to 2 new articles: #1 & #2. Remember that some nowaday mods (or their new versions) which require Steam interfaces are not supported (or have to be patched by old or rebuilded versions of their game dlls to work with Xash3D). Also most of multiplayer mods were not tested thoroughly, but if you have your own experience & found some problems, please report. In most cases, any mods which worked correctly with old WON version of Half-Life, should work correctly with Xash3D too.
As with previous beta builds, the same rule works for this build too: DO NOT USE it with outdated versions of Xash3D-based games/mods, such as XashXT, Paranoia 2: Savior, Quake Remake, Area 51. They will not work with new version of the engine. XashXT is already updated, so you can use version 0.81 (revison 1) with the current version of the engine.
Here is the list of changes which were made since build 4097 to current 4344.
Build 4344
Client: made Quake demos with invalid proto do not provoke Host_Error, just stop instead
Render: (NEW!) implemented side-scrolling effect for textures on world surfaces (like in Doom)
Render: implented a custom external palette for Quake Wrapper
Render: disabled luma-pixels for non-Quake palette
Render: (NEW!) allowed using of HD-textures for alias models
ImageLib: implemented more reliable alpha detection for .lmp images
ImageLib: added a check for matching a proper size of 'conchars' image
Console: disabled strings' coloring on non-luminance conchars to avoid color degradation
Build 4312
Client: changed file path to demos from a separate folder "demos" for the root folder of a mod
Client: removed a feature of demoshots
Client: implemented automatic format detection of demos (Quake or Xash3D)
Client: fixed a process hanging on playback of AVI-files with compressed audio
Server: (NEW!) added developer's command "nextmap" (changes a current map to another according to alphabethical order of maps)
Render: (NEW!) added a debugging visualization of world's BSP-tree (cvar r_showtree 0/1)
Render: made some corrections on Quake fog settings
GameUI: implemented a proper support of main menu background splashes from Steam Half-Life (in accordance with custom resource\BackgroundLayout.txt scripts)
Input: (NEW!) made the engine to prevent a display from dimming / turning off while the game's window is active
Build 4281
Client: fixed some minor bugs in Quake demos' playback
Server: fixed broken playback of MP3 tracks after changing a level (e. g. c1a0e -> c1a0c)
Server: made "god" command working in Cry of Fear (mod version 1.0 - 1.55)
Server: re-implemented "changelevel" and "changelevel2" commands for backward compatibility
Server: prevented crash if some mods replace key-value strings with constant values (e. g. Chinatown Preview mod)
Engine: (NEW!) added gameinfo.txt keyvalue "mpfilter" for filtering maps shown in Create Server dialogue by a map name prefix (like in Steam version of Half-Life)
Engine: added some missed keyvalues on converting GoldSrc's liblist.gam file into Xash3D's gameinfo.txt
Engine: made console always enabled in QWrap
Render: (NEW!) added universal cvar "gl_emboss_scale" for applying emboss-mapping effect on textures instead of using separate parameters from scripts\texfilter.txt
GameUI: (NEW!) added a new gameinfo.txt keyvalue "noskills" (0/1) for disabling of the skill selection's sub-menu
GameUI: allowed the deletion of previously saved games from menu before the game is started
GameUI: (NEW!) keytable's color can be changed now by gfx\shell\color.lst -> INPUT_TEXT_COLOR parameter
GameUI: replaced default image for missed saved game's screenshot by gfx.wad\lambda32 texture instead of decals.wad\{GRAF001
GameUI: fixed a game switching if a mod's folder has spaces in its' name
GameUI: (NEW!) a color of selected items in scrollable lists can be changed now by gfx\shell\color.lst -> SELECT_TEXT_COLOR parameter
Sound: fixed the very old bug of interruption of sounds playing from studiomodel events at server-side (e. g. c3a2d)
Physics: added filtering of MOVETYPE_PUSH method by edict->movetype for accurate motion of player or NPCs and for GoldSrc-compatible moving of objects or corpses
Build 4260
Client: made net_speeds to show total traffic size during a demo's playback
Client: made Quake demos to use linear interpolation for all entities and player
Client: fixed some errors of temp ents' parsing in Quake proto (Nehahra)
Client: allowed seamless change of demos in case if currently played demo is issuing a next demo during parsing a network message
Client: fixed bugs of colors remapping on alias player models (Quake)
Engine: (NEW!) added AVI_StreamSound - new RenderAPI function for playing in-game videos with embedded sound (compatibility will not suffer)
Engine: fixed critical bug in model-loader
Render: fixed particle trails in Quake demos' playback
Sound: (NEW!) implemented positioned sound support system for playing videos with sound in-game (e. g. XashXT, Paranoia 2)
Build 4253
Client: fixed server beams pause bug
Client: removed experiments with interpolation
Client: fixed bug of default renderamt value if rendermode is normal (beam brightness)
Client: made internal studio lerping do not switch the movetype to MOVETYPE_STEP to avoid collisions in custom renderers
Client: made user messages case-insensitive (GoldSrc rules)
Client: changed query format to the master-server
Client: fixed bug of large sentence indexes (up to 2048)
Client: (NEW!) implemented deferred startup commands for Cry of Fear's background map system
Client: eliminated Cry of Fear's protection from loading of manually saved games
Client: fixed Quake demo players' rendering in multiplayer demos
Client: allowed forced CD track in Quake demos
Server: (NEW!) added sv_background_freeze cvar to allow/disallow player's freezing for background maps
Server: made network messages to be kept for one frame before changelevel and send them during changelevel (GoldSrc rules)
Server: fixed critical bug in pfnSetModel function
Server: made NPCs/monsters to ignore corpses and don't get stuck into them
Server: made physics pusher to completely match GoldSrc rules (but extended version still can be enabled by engine's feature)
Server: re-implemented PrepWorldFrame for PhysicAPI instead of obsolete function pfnCreateEntitiesInTransitionList
Engine: (IMPORTANT!!!) console variable "build" renamed to "buildnum" to avoid confilcs with "build" gameplay command in Team Fortress Classic
Engine: disallowed to load, save, change map or do somewhat else while final credits are active
Engine: fixed bug in custom library loader
Engine: (NEW!) added GL_UpdateTexSize - new RenderAPI function for statistics
Engine: replaced MsgDev of most debug messages with Con_Printf, Con_Dprintf and Con_Reportf
Engine: reverted old PVS code to keep it compressed (saves memory)
Engine: made lightmap ignoring flag SURF_DRAWTILED depending on TEX_SPECIAL flag only (removed texture name dependence)
Engine: prevented potential crash if log-file can't be created
Render: fixed seamlessness of beam segments
Render: reduced brightness of decals on semi-transparent surfaces
Render: (NEW!) added support of compressed image format ATI2N (normal maps)
Render: made rectangle textures not necessary to match the current screen resolution
Render: translate GL-errors code to string during textures' loading
Render: rewrote texture manager completely, some bugs are fixed
Render: rotate culling bbox of static client entities for proper culling
Render: improved work of r_lighting_extended, added a check for lighting from ceiling or bmodels if world light gathering is failed (and model is completely black)
Render: fixed fog rendering in Spirit of Half-Life Custom Build (v1.6 and higher)
Render: removed "alpha to coverage" mode, it was too buggy
Render: removed auto-generation of detailed textures' list
Render: corrected fog for studio parts with 'additive' and 'masked' flags
Render: fixed some bugs of alpha-blend sorting
Render: removed -glcore setting (it gave no effect)
Render: restored "width" and "height" read-only console cvars for using in debug systems of XashXT
Render: removed flags TF_TEXTURE_1D, TF_TEXTURE_2D_ARRAY as useless
File System: removed support of WAD imagetypes (texture prefixes like *_mask, *_norm etc.)
File System: (NEW!) added parsing of "edicts" keyvalue in liblist.gam file during automatic generation of gameinfo.txt
GameUI: fixed bugs of "Save game" menu after global engine update
Sound: made dsp_off value to be saved into config.cfg
Sound: fixed crash in DSP-processing
Sound: eliminated stupid message FS_LoadSound: couldn't load ""
Sound: made default sound to be kept in memory permanently
Sound: fixed CHAN_STREAM playing
Sound: fixed crash on mp3-files playback via ambient_generic
Sound: set default value of s_combine_channels to 0
Input: made key events to pass properly into client user-side
Console: tuned linewidth length
Console: made scrolling buffer to be reset on activation of a new command or autocomplete (using Enter or TAB key)
VGUI: revised string rendering, fixed some bugs
Studio: corrected bbox calculation for gigantic models
Build 4150
Client: (NEW!) the first implementation of Quake demos playback (may be buggy)
Client: fixed bug of TE_BEAMCYLINDER message (houndeye attack)
Server: fixed very old bug of restating ambient_generic sounds after save/restore
Engine: rewrote static entities proto; made available full entity_state_t across network instead ofsv_static_entity_t
Engine: added a fatal error message if gfx.wad is missed (it's required for console chars rendering)
Engine: made map-loader to show the list of really used wads for loaded map
Engine: allowed "reload" console command to work from commandline
Network: changed MSG_WriteCoord multiplier to allow coords +/-32768
Render: optimized R_RecursiveWorldNode
Render: fixed bug of bonecontrollers in internal studio renderer
Render: added experimental commandline option -glcore to switch to WGL_CONTEXT_CORE_PROFILE instead of WGL_CONTEXT_COMPATIBILITY_PROFILE
FileSystem: fixed bug of custom DLL-loader in some cases
Sound: fixed a crash on playing of too small MP3-sounds
Input: potentially fixed a bug of infinite camera rotation after vid_mode change
Physics: fixed bug of underwater fog
Build 4143
Engine: fixed crash of debug collision hulls
Engine: fixed bug in BSP-lumps management functions
Engine: some minor changes
Build 4140
Client: fixed bug of hot precaching in singleplayer game
Client: fixed bug of resource downloading in-game
Client: fixed bug of ScreenFade duration
Client: increased r_speeds message string up to 2048 characters
Server: fixed trigger_endsection
Server: fixed unlag code
Engine: finalized custom BSP-lumps representation standard (see bspfile.h for details)
Engine: expanded decal_t struct with some of reserved variables for modmakers' needs
Engine: allowed mins and maxs tracing by client trace as on the server (see EventAPI for details)
Engine: (NEW!) implemented new debug system for visualization of collision hulls (original code from TyrQuake), cvar called "r_showhull"
Engine: some code changes to support modern MSVC compilers
Render: added special texture called "alphacontrast" (for MSAA)
Render: (NEW!) added support of deluxe map vectors for models for more realistic lighting (note: ENGINE_LOAD_DELUXEDATA must be set)
Render: fixed alias models flip code for viewmodels
Render: removed image gamma processing, only lightmaps
Render: implemented support of "alpha to coverage" mode for MSAA processing
Render: fixed very old bug of broken lightmaps on individual brush models in Quake (like shells, healthkits etc.)
Render: made MSAA dynamically controllable in game
Sound: increased MAX_SENTENCES up to 4096 (and made some changes with network proto, but keep all compatible with previous version)
Memory: removed code that clumped small allocations (not needed anymore)
One piece of advice. Since Unkle Mike implemented a proper support of custom resource\BackgroundLayout.txt for Steam HL background (build 4312), you may have a problem that original WON interface (splash-screen & animated logo) in old HL mods will be replaced by Steam HL background. This will happen if you use assets from Steam HL for your Xash3D installation. The problem will be fixed in later builds, but as a quick fix you may use this method: remove or rename "background" folder from "valve\resource". If you're doing this, make sure you installed WON HL assets from Xash3D extras into "valve" (they're recommended to be installed anyways, so I mentioned this just in case).
Can we now use normalmaps on textures?
You can use normalmaps only with mods which support them (like some mods based on Paranoia's renderer). Also, normalmaps require specific lighting settings on maps. It means, game maps should be also compiled with the support of normalmaps. Half-Life itself doesn't support normalmaps, not code-wise, nor map-wise.
Is there any plans to have advanced texture effects in XashXT, like normalmaps etc.
Unkle Mike has no plans of adding any new effects in XashXT. All new graphics features will be added only in Paranoia 2 renderer, which still is under slow development. XashXT's development is almost finished.
Hey what is this for?
Xash3D_build4344_src
I am installing Xash3D for my Retail Half Life and I see
Xash3D_build4344
Xash3D_build4344_src
Xash3D_extras
I know what is Xash3D_extras but I don't know what this Xash3D_build4344_src is for.
It's engine's source code for developers' needs (who have a reason to change something in the engine). Means nothing for common users (if you are player or if you just want to make a usual mod without modifying engine itself).
Oh ok but is it required to be in the xash3d folder where the valve folder is and the executables?
No.
what version of visual studio do you need for the source code?
Microsoft Visual Studio 6, Service Pack 5 for MSVC 6, Processor Pack for MSVC 6.0.
where do i get Microsoft Visual Studio 6?
Search web:
archive.org visual studio 6.0
gives me lots of errors like "setup was unsuccessful" any other one that works for windows 10?
Maybe really incompatible with Win10, I can't test this (or maybe doesn't work properly on x64). Try to change compatibility settings for installer or for installed app. It's also possible to compile the code with later versions of MSVS (like 7, 8 or 10), but this requires some code corrections (e. g. you must rename typedef HSPRITE because it conflicts with the name of the Windows system).
i gave up (will tell you if i find another way)
Hey, when i used xash3d the resolution was messed up, i can't use it in 1920x1080 resolution in my pc, its all zoomed in and the FOV is incorrect too
What's your normal desktop resolution? If you can't use properly full-screen mode with any of available resolutions, you can switch to windowed mode. Or install FWGS version, it allows to adjust screen settings to your desktop.
my default resolution is 1920x1080 in a laptop, the game itself runs fine but the game is zoomed in while fullscreen
I don't understand what you mean by word 'zoomed' (any screenshot?). If you don't like default FOV, you can change it by disabling FOV auto-adjustment feature and setting any value you want (type in console or edit config.cfg/userconfig.cfg):
r_adjust_fov "0"
defaulf_fov "###"
Put any numeric value instead of "###". Half-Life's default is 90, with wide-screen auto-adjustment it's about 105.
he means that the size of xash3d is bigger than his current resolution can show the entirety of.
The game saves from this PC version are compatible with the android version from Play Store? I mean mainly about vanilla Half-Life. Can I transfer the game saves between the versions for android and pc of Xash3D?
Android version is based on old builds of the engine (3598 and earlier), also it contains a ported version of game code (which slightly differs from original). Android saves will be fully incompatible with newest versions of original Xash3D (build 4097 & newer), because in newest builds saves were made compatible with GoldSrc. So you can use old builds of the engine (like 3887 or 3598) to load Android saves, but no warranties, that they will be 100% compatible (because of potential differences with ported game code). This may result in unworking scripted sequeneces or in disabled monsters' AI, for example. But if you manage to continue onto new map from your saved point, the further gameplay shoud be normal.
Okay thanks for the information. :)
Besides I have a small question - Will there ever be a version on the android supporting game saves from the newes builds for pc? The question is purely out of curiosity. ;)
FWGS team will update Android version to latest builds some day, after that all saves will be GoldSrc-compatible. But you should understand that there is still a problem of ported game code, it's not 100% same as on PC and will never be same (but mostly this should not cause significant issues, if code is ported well enough).
How do I properly play this in 1080p resolution? when I selected the option, the creen turned too zoomed in and unusable.
1080p is for full-screen mode and only if your monitor does support it. Also see comments above.
Check your display settings, your monitor may be zoomed too far in.
Not getting any sound in the menu (when i mouse over items, click stuff), using Steam half life copy of valve folder with all cfg files reset, tried the -autoconfig launch option, also the console is not working despite me launching with -console. also tried -dev in addition to that launch option. No console button, the ` key does nothing.
Windows 10 1607 LTSB (all updates installed). When I click Audio in options i can change stuff but doesnt do anything.
Moddb.com
For menu sounds - complete the Step #5.
Console works only if it's enabled (by adding -console or -dev key into the game shortcut), and if secure mode is disabled (read P. S. below).
Already tried that for console, it says in the comment :p anyways thanks so much for the sounds, and as always you've mastered the UI . I have no idea how you made the WON UI, which is insanely buggy on Win10, as Stable as the newer steam goldsrc ui.
"...and if secure mode is disabled (read P. S. below)".
Oh interesting, thanks. Was this a deliberate change?
Originally "secure" parameter is a feature of Steam HL where it's meant to allow VAC secure server.
Developer.valvesoftware.com
Ah I meant was it deliberate when you restricted the console only to VAC insecure mode
If it has been done, then it's probably deliberate, don't you think?
Do you offer compiled binaries for Linux distributions?
Does it support software render, nanogl, swiftshader, 320x240 mode, cgshader?
Xash3D does not support linux at all.
You need Xash3D FWGS.
>software render
Will be in Xash3D FWGS 0.20
>nanogl
Xash3D FWGS uses nanogl on android and arm-linux.
Could you add dithering technique for texture filtering to software render?
Fabiensanglard.net
Flipcode.com
Our software render already has dithering support.
Github.com
Github.com
Is there some specific console command to turn it on? I tested Xash3DFWGS-i386.AppImage from Github.com and there is no dithering filtering. There is also no menu, only console where I can load map. Does Xash3D has console command list? There are no color lights also in software render.
>no menu
You need to compile engine manually and use the following cmd to clone repository:
git clone --recursive https:// github.com/FWGS/xash3d-fwgs
>no dithering filtering
It's disabled by default.
Github.com
>Does Xash3D has console command list?
cmdlist
cvarlist
makehelp
when trying to load blue shift, opposing force, or cs 1.6 i get 'could not initialize client.dll' error
are there custom dlls for these games or is there something else i should do?
all files are from stam copies of each game respectively
Moddb.com
Read details.
When I try to play Opposing Force under Xash3D I get this error is there any way to fix it?
Host_InitError: can't initialize client.dll
Same recomendation as above.
I installed the Xash3D with Steam version of HL1. It runs fine, some easy to spot Xash3D features clearly work. Yet, I can't seem to get the High-Res textures to work: Documentation.help
I have seen it in operation with the Quake Remake Upgrade (https://www.moddb.com/mods/quake-remake-upgrade/downloads/qru-qrp-hd-textures-v10) and in Half-Life: New Life (https://www.moddb.com/mods/half-life-new-life). Yet in my base version of HL1 running on Xash3D, the method described in the documentation does not work. I found out that they both have host_allow_materials "1" in their config files. However, this does nothing when I put it in a .cfg or the console. It says it not a recognized command.
I did notice that both HL: New Life and Quake Remake are running off a different structure, each with a custom .exe that launches them.
Any help would be appreciated. To give an idea what my goal is: I want to make a graphic mod that replaces HL1 textures with HD ones as well as use the detail texture feature, to give even more detail up close. Both mod examples I gave seem to indicate this is possible, but I don't know how to proceed for my own mod.
Thanks in advance.
The latest version of Xash3D does not support materials anymore.
Try to use build 3366 or older.
Boy, that's an old build. If it doesn't support materials anymore why is it still in all of the documentation. Had why do the materials work when I use Quake Remake or HL New Life with 4344?
This documentation for Xash3D 0.95. Materials code was moved to XashXT SDK to reduce engine codebase.
I hadn't even noticed the 0.95 and the difference with the 0.99 the current build was at. Makes sense now.
I downloaded 3366 and materials worked immediately. Thank you for the help.
Question, did you mean that XashXT supports the HD materials? Because when I install it doesn't show up as an option.