.:Xash3D Engine:.

Custom Gold Source Engine build from a scratch



Developers:
Unkle Mike (aka G-Cont, aka Дядя Миша) - main developer
HLFX.ru & CS-Mapping.com.ua forum members - help, support, testing

CortexReaver, nemyax - English translation

Xash3D Engine has been tested for compatibility with many of Gold Source games and MODs. At this moment it should provide you an ability to successfully complete almost any existing singleplayer Half-Life mod without compatibility problems. Some mods can be not totally compatible, if they are too hardly modified or using some very specific or unstable features of Gold Source engine. Also multiplayer part of Xash3D engine is not fully completed yet because of lack of some important information and hidden source codes of Gold Source engine. So in most cases multiplayer mods should work good in a local or a LAN game, but some features can not work or work not exactly as under Gold Source engine. Check a detailed list of tested mods and a list of tested maps in "Features" section. A full list of Xash3D Engine features is also there, plus a guide on how to get work Half-Life and its' mods under Xash3D (in English and in Russian).


#######################################


Since Xash3D is a Half-Life compatible engine, then all the innovations below will be given in comparsion with GoldSrc engine.


Basic limits.

        
Xash3D limits are not just higher than Half-Life ones, they also can be tuned in gameinfo.txt file.
- MAX_EDICTS is 600 - 4096 (versus 900 in Half-Life).
- MAX_TEMPENTS is 300 - 2048 (vs. 500).
- MAX_PARTICLES is 1024 - 8192 (vs. 4096).
- MAX_BEAMS is 64 - 512 (vs. 64)
Careful limits reduction can save RAM in mods which don't need many edicts. Also MAX_EDICTS parameter is broadcasted from server during a multiplayer session, it adjusts clients to new conditions automatically.


Other limits.

These limits are engine-hardcoded and can not be tuned by user.
- MAX_VISIBLE_PACKET is 512 entities (256 in Half-Life).
- MAX_MODELS is 2048 unique models (including sprites and bmodels)
- MAX_SOUNDS is 2048
- MAX_SENTENCES is 2048 (1534 in Half-Life)
- MAX_USER_MESSAGES is 191 (128 in WON Half-Life)
- MAX_TEXTURES is 4096 (2048 of them can be used for VGUI)
- MAX_MESSAGES is 2048 (1024 in Half-Life) (quantity of messages in titles.txt)
- Maximum size for indexed textures is 4096х4096 (vs. 512х512 in Half-Life)
- Maximum size for true-color textures is 4096x4096. 


Limits for bsp-models.

- MAX_MAP_MODELS 1024 (256 in half-life)
- MAX_MAP_LEAFS 32767 (8192 in half-life)
Note: other BSP-model limits are specified by compiler tools and don't depend on the engine. 


Realisitic lighting values on server.

Xash3D allows to get more accurate value of current lighting level, because it considers lightstyles and their current values. The player's lighting is taken directly from renderer and considers all lighting types, including entity light and dynamic light.


Improved decal save. 

Half-Life supports decal save only on world surfaces and very rare on doors, elevators and other moving models. Xash3D saves decals on every brush model. Decal transition between levels is also maintained (implemented in Half-Life, but doesn't really work).


Entity patch technology support. 

This technology allows to load entities from external .ent script file. This script can be produced by the external ripent.exe application or by engine's facilities by typing the entpatch command. If the command is entered when a map is loaded, a new entity patch will be created.


Various map formats support. 

Xash3D supports following BSP-map formats: Quake 1, Half-Life, Half-Life Blue Shift. Besides, Quake 1 external  bmodels are supported (medikit and ammo models). Note: it is recommended to play Quake 1 maps in Deathmatch Classic mod to prevent stuckness of player because of the difference between hull's sizes of Half-Life and Quake.


Hot resource precaching support. 

Xash3D allows to precache models "on the fly" that helps to avoid nasty PF_PRECACHE_ERROR. Also Xash3D doesn't crash if a model or sound wasn't found.


Reliable changelevel.

Before switching to a next map Xash3D will analyze its state (without unloading the current map) and decides whether correct changelevel procedure is possible. In case of any error in a next map the engine will signal about it in the developer's console, and the changelevel will be aborted. The error message also contains troubleshoot tips that can make level designer's life easier, because such errors are most difficult to diagnose and fix.


Built-in credits. 

To display credits and exit the game after, run the pfnEndSection command with oem_end_credits argument. The credits code is placed in menu.dll and can be changed by user at his discretion.


MOVETYPE_PUSH physics is more stable. 

Xash3D entities behave more stable on moving platforms and don't shift away on sharp turns.


New MOVETYPE_COMPOUND physics type. 

It allows to tie one entity to another, taking into account movement and rotation of the former entity. You can see an example in SDK - a crossbow bolt that correctly attaches itself to func_pushable, func_rotating, func_tracktrain and other brush models.


Console autocomplete support. 

        
Xash3D has a powerful console autocomplete system that allows not just print command lists,  but also describe all of them during the search. For more comfort you can type "makehelp" in the console, and the engine will generate help.txt that contains the list of all commands and variables with short descriptions. Map, movie, background track, cfg script, save, weapon (give command), sound (play command), game directory names input is also assisted by the autocomplete feature.


No parent directory restriction. 

        
Most Quake engines are restricted to the parent directory with specific name, which doesn't matter when you make mod, but very uncomfortable when you make total game conversion and therefore replace the parent directory. Xash3D doesn't restricted to specific folder, and the parent directory is defined by the launcher. This way you can make your own game that doesn't depend on Half-Life.


Dedicated server has the autocomplete feature now, your command history can be saved.

        
Dedicated server has the autocomplete feature now, your command history can be saved.


Background maps support. 

        
Background map is a map to be displayed as a menu background. You could see them in Half-Life 2. Xash has a simplier background map system - it doesn't depend on unlocked chapters (because original Half-Life has no chapters system) and it chooses the background map from the list. This list file must be named as chapterbackgrounds.txt and placed in scripts directory (if you don't have such directory, then just make it). Every list's entry is separated by new line. You can use any playable map as the background, but better don't use maps where player starts in a moving train,  because it won't look good.


Lightstyle interpolation.

        
Turned off by default. Doesn't work with short sequences like switching on and off the light. It smooths light animation very well on long slow sequences like SlowStrobe or SlowPulse. Note: FPS rate may suffer from this option.


luma glowing textures support (Quake-style). 

        
You can see such textures in original quake maps as glowing fields on a texture. Because this feature is caused by the Quake pallet's special features, the engine enables it for textures that have Quake or Quake2 pallet. This pallet is saved well after the simple conversion of wad2 files to wad3.


Improved model and sprite lighting. 

        
Improved model lighting includes per-bone lighting from static and dynamic light sources,  and it also includes correct model lighting on every stage of long sequence execution, when model goes far enough from its real location. The best example is forklift.mdl Sprite lighting is a correct lighting of all sprites that is rendered in additive mode  and had "alphtest" during the compilation. For example, blood decals uses the world lighting and doesn't glow in darkness. Both sprites and models don't just use the world lighting, but also consider lighting of the closest brush model if there is one.


Player model display in the menu. 

        
Instead of a usual player image you can see his 3D model in the menu and track all changes right on-the-spot.

Image RSS Feed Latest Screens
XashXT: custom build. Parallax & Water shot 2. XashXT: custom build. Parallax & Water shot 1. XashXT: custom build. Grass test. Shot 3
Blog RSS Feed Report abuse Latest News: Xash3D Engine build 2664 and XashXT v0.65 rev.1 are released

About Xash3D Engine with 0 comments by Qwertyus on Apr 26th, 2014


Greetings! This spring brings to us another double update of Xash3D Engine and XashXT, they are both already awaiting for you in Downloads section :)

Both Xash3D Engine and XashXT have been significantly updated, including different bug fixes, improvements and new features. Now there are final versions:

Xash3D Engine v0.96, build 2664 (with extras)
Xash3D Engine v0.96, build 2636 (with extras)

XashXT v0.65 rev.1 (Xash3D mod & toolkit)
XashXT v0.65 (Xash3D mod & toolkit)

Xash3D Engine, build 2664 (final) changelog:

Engine: restored right ordering of arguments for SV_StudioSetupBones export
Render: some cosmetic changes in RenderAPI
Client: added levelshots for background demos
Client: now 'startdemos' command (in valve.rc file, e.g.) invokes to play demos' sequence in a background of the game menu
Client: increased demos' auto-naming from 100 up to 10000
Client: fixed a bug with inverted PITCH for non-local playermodel
Client: added FireCustomDecal into EfxAPI (was missed)
GameUI: fixed some crash issues after exiting from background map to the normal game menu (like a call of trigger_endsection)
Client: eliminated a muzzleflash's copy from mirror reflection in first person view
Render: fixed a bug with max_texture_units clamping
Render: completely removed glScissor calls (just unused)
Render: updated a thirdperson code for mirrors
Render: rewritten a viewport setup code
Render: fixed software gamma adjustment bug with a flashlight enabled
Render: added a warning message and resetting of vid_displayfrequency if current value is not supported by user's display
Engine: added a new parameter for gameinfo.txt which is called soundclip_dist (a distance of ambient sounds' clipping for the player). The default value is 1000.
Sound: added 'playvol' command (like in GoldSrc)
Server: fixed a crash in 'Gunman Chronicles' at the map end1.bsp
Engine: show more info with 'mapstats' command
Network: fixed a bug with DT_TIMEWINDOW_8
Server: fixed a bug with triggers with 'liquid' textures
Server: fixed some bugs in PVS calculation on server
GameUI: enabled auto-refreshing of current multiplayer maps' list
GameUI: updated 3D playermodel preview for 16:9 screen aspect

Xash3D Engine, build 2636 (stable) changelog:

Engine: added internal loader for deluxemap data (*.dlit files producing by VHLT)
Engine: msurfmesh_t was reorganized to complex vertex data instead of single arrays (VBO-ready)
Engine: decal_t now contain msurfmesh_t with all vertices and texcoords
Render: RenderAPI interface updated to version 35
Render: get support for float textures format (GL_ARB_texture_float is required)
Render: implementation of image program preprocessor, like in Doom 3, syntax: AddNormals( texture1.tga, texture2.tga );
Render: implemented an access to an internal tesselator through RenderAPI
Server: a little update for PhysicInterface: added a support for custom decal save/restore
Client: separate levelshots for wide-screen and normal screen modes
Client: restored a parametric rocket implementation (it was broken somehow two builds ago)
Client: fixed a potential crash with calling of function IsSpectateOnly
Client: pressing the ESC button while playing a video now causes a jump to a next video in a list (instead of complete playback stopping)
Client: fixed a bug with a completion of demos' playback (Connection Problem)
Client: a compensating of screenshots' gamma is toggleable now (cvar "gl_compensate_gamma_screenshots")
Render: optimized a decal code, removed some unused functions
Render: now all the lightmaps are storing into 1024x1024 texture
Render: added cvar "gl_detailscale" for customizing of *_detail.txt automatic generation
Render: fixed some errors with studiomodels lighting
Sound: increased a maximum count of words in sentence up to 64 (from 29)
Engine: fixed a broken recursion in Cmd_CheckMapLis_R (potentially could cause a crash)
Client: passed keyup event through HUD_KeyEvent callback
Network: changed delta params for skycolor_* variables (in some cases color value can be recieved incorrectly)
Network: fixed TIMEWINDOW_BIG mode
Engine: added engine build number into console log

Xash3D Engine, build 2463 (intermediate testing build) changelog:

Engine: reorganized data in texture_t. Released one variable for mod-makers
Engine: changed decal_t structure to get a compatibility with GoldSrc
Engine: expanded mextrasurf_t reserved fields up to 32
Engine: updated player_info_t (added customization_t like in HL SDK 2.3)
Engine: increased local_state_t->weapondata up to 64 slots
Engine: updated IVoiceTweak interface
Engine: new lightstyle system with local time and custom interpolation
Engine: fixed a bug with lightstyle save/restore (previously only first 64 symbols of a pattern can be saved)
Engine: updated r_efx_api_t interface
Engine: updated engine_studio_api_t, removed incompatible function StudioGetTexture, added three new (just as existing ones in CS:CZ)
Engine: added ref_overview to support custom overview implementation
Engine: render interface now marked as a version 30 (due to many changes applied)
Engine: updated triangleapi_t interface
Engine: updated cl_dll interface (also added support for single export that called 'F')
Engine: a little update to enginefuncs_t (server interface)
Client: fixed a crash on shutdown if custom renderer uses AVI-files
Engine: applied a scale for decals on brushmodels or world geometry
Engine: updated model_state_t that keeps info about studiomodels for studio decals, including a body and a skin
Engine: got support for custom studiocache on static and tempents
Engine: write R_Srpite_WallPuff from pEfxAPI
Client: fixed a bug with beam sorting (solid beams were drawed in translucent pass)
Render: added a special flag for decals that indicates a local space (any decal after first shoot)
Render: applied emboss filter on studiomodel textures
Render: was rewritten a client event system for studiomodels to get more predictable results
Network: storing existing decals and static entities into new demo
Network: protocol was revised to version 48
ImageLib: fixed an old bug with saving of non-aligned 8-bit bmp-files
Server: fixed a bug with reloading of hl.dll at every change of a map
Server: a client part of save-file was revised. New version is 0.68

XashXT, version 0.65, revision 1 (final) changelog:

Render: fixed a bug with a missed underwater fog
Other: a bit updated XashXT Demo map (fixed some errors in English text)
Other: few minor bugfixes

XashXT, version 0.65 (stable) changelog:

Client: all exports are merged into a single export that called 'F'
Client: RenderAPI was updated to version 35
Client: background track is rewritten. Now it's using internal engine player instead of fmod.dll
Client: added MusicFade like in Paranoia modification
Render: added overbrights from XashXT: Custom Build 0.7 (thx to SovietCoder)
Render: added a fog code from XashXT: Custom Build 0.7 (thx to SovietCoder)
Render: fixed a beam code (solid beams were drawn in translucent pass)
Render: added grass code (a bit modified) from XashXT: Custom Build 0.7 (thx to SovietCoder)
Render: got support for a new system of lightstyle local times (a way to save too long light sequences)
Render: fixed a bug with disappearing of dynamic shadows
Render: fixed frustum bug with far plane
Render: fixed some bugs of func_monitor
Render: fixed some bugs in Aurora code
Render: restored mode kRenderWorldGlow for sprites
Render: finalized studio cache code
Render: studiomodels event code was rewritten (to get more predictable results)
Render: optimized rain and snow code, limits are increased
Server: env_spark now supports prefixes +\-
Server: momentary_rot_button immediately stops on prefix >
Server: func_rotating toggles directon on prefix > (only when stopped)
Server: func_rotating ignores direction toggles from momentary entities
Server: entities which are attached to a player use his yaw angle now
Server: momentary_door immediately stops on prefix >
Server: fixed some bugs in env_laser code
Server: got to work an air shake for env_shake
Server: created cvar sv_allow_PhysX for user control
Server: func_pushable can be walk on stairs now (testing option)
Server: func_tracktrain can reverse direction on prefix > (only when stopped)
Server: added "parent" field for multi_manager and multi_watcher (useful in some cases)
Server: now all the triggers supports prefixes +\-
Server: angle-based trigger now gets an angle transform from parent
Server: rewritten the ichthyosaur's code (Stupid Quake Bug fix)

P. S. If you a new with Xash3D, please, check this manual about proper installing of the engine. XashXT should be installed in a same folder with the engine, as addon/mod for it (with its' own executable - xash.exe).

P. P. S. Also some new maps and mods were additionally tested for compatibility with Xash3D, so both The list of tested Half-Life modsрусская версия) and The list of tested Half-Life maps have been updated too.

Media RSS Feed Latest Video
Games
BOOM: Anatoly in Time

BOOM: Anatoly in Time BOOM: Anatoly in Time Indie

Updated 3 weeks ago Released Aug 5, 2014 Single Player First Person Shooter

BOOM is returned :) Play this game and you узнаете, what is the PAIN! You play the BOOM when Boom plays YOU!

IONIZATION

IONIZATION IONIZATION Indie

Updated 2 weeks ago TBD Single Player First Person Shooter

You will know a chilling story about misterious incident, which was happened in the middle Russia in 1994. Closed city Sverdlovsk-900 was abandoned and...

Paranoia 2: Savior

Paranoia 2: Savior Paranoia 2: Savior Indie

Updated 3 days ago TBD Single Player First Person Shooter

Paranoia 2 Savior — first-person shooter in the style of survival horror, which is unfolding in a secret underground laboratory facility somewhere in...

Secret Operation: Winter Ops

Secret Operation: Winter Ops Secret Operation: Winter Ops Indie

Updated 3 weeks ago TBD Single Player First Person Shooter

The development of an entirely new Secret Operation. With the new engine, and a new approach. This project is a large scale, compared with the previous...

Xash3D : Half-Life : Enhanced

Xash3D : Half-Life : Enhanced Xash3D : Half-Life : Enhanced Indie

Updated 2 years ago TBD Single & Multiplayer First Person Shooter

Played Half-Life? Wanted more? More Gore? More Explosions? If yes - Welcome to Half-Life : Enhanced on Xash3D engine which provide extended limits and...

Post comment Comments  (60 - 70 of 292)
Qwertyus
Qwertyus May 24 2014, 7:07pm says:

Updated versions of Xash3D Engine & XashXT are already uploaded, so check the Downloads section!

+1 vote     reply to comment
Justus200
Justus200 May 9 2014, 9:34am says:

Hello, first I want to thank you for the great project Xash3D and sorry for my english.
I am a long time modder to the original Half-Life and really glad you made it possible to work with my favorite engine again (source and steam wasn't really my cup of tea).

To improve the project, I want to share 3 bugs I found and that have not reported yet, I hope.

1. My C++ skills are unfortunately nearly zero, so I use the Opposing Force DLL for more
monsters and weapons for now.
The latest build 2636 introduces a critical bug with these addon from gearbox (I use the original
WON version for everything). Every monster (even scientists) have heavy stuttering in their animations.
The game runs perfectly at 60fps but the monsters look like it was running at 5 to 15 fps. Everything
else runs fluid. In my old version from Xash3D (2402) everything worked fine.

2. HD decals from the materials folder have a transparency issue. I am aware of this bug since Xash3D
version 2402. Underwater you can see the invisible parts of the texture and this results in an ugly
box shaped decal. I believe this has something to do with underwater fog. Normal decals from the
decals.wad worked flawless underwater.

3. The hearing range of loud soundeffects is a bit to narrow und not like the original Half-Life range.
You can't hear for example explosions, even when you are relatively nearby. In the original HL you
can hear sounds from a more far away distance. This also persists since build 2402.

I hope this can be fixed. Keep up the good work!
Now my only dreams that come not true yet are bump maps like the HD texture support system and functioning multiplayer.

+1 vote     reply to comment
Qwertyus
Qwertyus May 9 2014, 6:55pm replied:

Thanks for the report!
1. The bug is confirmed and will be queued for fixing.
2. I'm not sure, that your settings are right. If you are talking about decals from decals.wad, then to replace them properly you should make sure that 1) you have put all HD-decals in materials\decals folder, 2) every decal texture must be of 32-bit and have a proper alpha-channel. Also HL2 decals (24-bit textures with a grey background) are supported, but only as experimental feature (they aren't working properly for XashXT, for example), so maybe that problem is caused by using of such decals.
3. Xash3D has 2 parts in its' sound system 1) common sound system, 2) DSP effects. DSP effects are experimental feature and they may cause some problems with calculating of a range and a volume of ambient or weapon's sounds. So if you don't like a result of DSP system, make sure that you have checked a checkbox "Disable DSP effects" in audio menu (btw, it checked by default). If you aren't using DSP effects, but the problem is still existing for you, than let us know, maybe there is something to check more thoroughly.

+1 vote     reply to comment
Justus200
Justus200 May 10 2014, 2:02pm replied:

Hi, thank you for your reply.
About 2: I mean HD TGA files in materials\decals\, but you are right. I use edited scorch marks from HL2 with gray background. My own bullet holes are made with real transparency and they work just fine underwater. I will edit the scorch marks to add real transparency then. Thank you very much!
About 3: I used the "disable DPS effects" function in Xash from the beginning. I fear the problem is something else. In the original HL, you can hear explosions from very far away (MP map bounce, nearly all the way over the canyon area), but in Xash only 20 to 30 meters (same map from the middle wall to a bid behind the small house).

I also found another strange bug in my Testroom today. Testet with Opposing Force. If you shoot the 9mmar weapon and look at a mirror (reflect texture), the v-model has two muzzle flashes. One normal and one under it. Testet with the original weapon and my mod weapon. This happens in build 2402 as well. In normal HL this bug doesn't occur.

+1 vote     reply to comment
Qwertyus
Qwertyus May 10 2014, 3:38pm replied:

OK, we will try to test additionally that sound issue. What about mirrors, the bug doesn't happen for me. I'm not sure, that it's a bug of Xash3D. Possibly, it's a problem of the models that you're using (weapon model or player model). Also, you should have 1 muzzleflash from your firstperson view, and the second one is a mirrored muzzleflash from your thirdperson view, and it's not a bug ;)

+1 vote     reply to comment
Justus200
Justus200 May 10 2014, 6:35pm replied:

Just double checked and it's no reflection. It happens even when not looking directly into the mirror and being away from it. The second flash has even a different sprite, muzzleflash1.spr (also used by the p-model), while the original flash uses muzzleflash2.spr (just in Opposing Force, in normal HL it is the opposite). I can see the player muzzle flash in the mirror plus the two on my gun. In slow motion the two muzzle flashes on the v-model are taking turns, but it seems the second flash occurs everytime when the player muzzle flash in the mirror is also shown.
Tested it with different weapon/player models. Happens only when a mirror is somewhat in my view. I don't know, this bug is not very critical, but strange.

+1 vote     reply to comment
Qwertyus
Qwertyus May 10 2014, 6:46pm replied:

Ooops, I thought that you meant a second muzzleflash in a mirror, but it happens for viewmodel directly. OK, it will be checked for a fixing, thanks.

+1 vote     reply to comment
andhieyusuf9
andhieyusuf9 May 27 2014, 2:12pm replied:

Sorry for barging in, but I want to ask something... I had imported some decals from Cry of Fear, and all of them use grey background. They work perfectly, but I want to convert them so they have alpha background using GIMP. The problem is i don't know how to properly converting them. Anyone can help?

+1 vote     reply to comment
andhieyusuf9
andhieyusuf9 May 29 2014, 1:22pm replied:

Nevermind, found better decal which already has alpha channel.

+1 vote     reply to comment
Qwertyus
Qwertyus Apr 27 2014, 1:35pm replied:

XashXT adds a lot of new possibilities (enhanced render, advanced parent system, PhysX support e t.c.) for modmakers. But you should learn a lot too to understand how to use all of these possibilities properly. So it should be your choice what you really want and able to use.

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Platform
Windows
Company
Xash XT Group
Contact
Send Message
Official Page
Cs-mapping.com.ua
Licence
GPL
Release Date
Released Apr 23, 2011
Engine Watch
Track this engine
Share
Community Rating

Average

9.5

82 votes submitted.

You Say

-

Ratings closed.

Highest Rated (2 agree) 10/10

Very good work,Uncle Mike.

Jun 19 2011, 7:14am by red-bear

Embed Buttons

Promote Xash3D Engine on your homepage or blog by selecting a button and using the HTML code provided (more).

Xash3D Engine Xash3D Engine
Xash3D Engine
Statistics
Rank
12 of 650
Last Update
1 month ago
Watchers
169 members
Games
5
Files
23
News
9
Features
7
Reviews
26