.:Xash3D Engine:.

Custom Gold Source Engine build from a scratch



Developers:
Unkle Mike (aka G-Cont, aka Дядя Миша) - main developer
HLFX.ru forum members - help, support, beta-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
Xash3D: conveyors with transparent belts Xash3D: water with waves & reflection Xash3D: transparent HD textures & decals
Blog RSS Feed Report abuse Latest News: Xash3D build 2223 + XashXT v0.62 are released!

About Xash3D Engine with 0 comments by Qwertyus on Mar 12th, 2013

Hello again, it's another double update of Xash3D Engine and XashXT toolkit. New versions of the engine and toolkit are including a lot of fixes for different problems plus some new features.

Xash3D Engine changelog (for build 2223, since build 2153):

Engine: added support for maps (only maps!) created for alpha version of Half-Life (with BSP version 29).
Engine: added support for "nomodels" option in liblist.gam (for disabling of using any model for player except models\player.mdl).
Engine: fixed problem with activating of a mod if it has a "." (dot) symbol in a name of its' main folder.
Render: renamed missed cvar "r_anisotropy" to real name "gl_anisotropy".
Render: now "r_speeds 4" displays an actual count of "real" static entities which were created by call of MAKE_STATIC function.
Render: fixed bug with blinking of Quake sky while autosave in progress.
Render: keep actual hardware gamma for multiple instances of application.
Render: fixed an invisibility of map objects created by using of transparent textures with RenderFX=15 setting (rarely used in some mods). 
Client: a new callback for render interface that is calling R_DrawCubemapView (for fixing of cmd "envshot" in XashXT).
Client: changed path and names for screenshots which are saving by "screenshot" command from "modfolder\scrshots\mapname\shotXXXX.bsp" to "modfolder\scrshots\mapname_shotXXXX.bsp" (for easy browsing and operations with files).
Client: engine is using callback CL_CameraOffset now.
Client: fixed angles for cmd "envshot".
Client: fixed disabling of custom gravity settings on a map for player after using a ladder.
Server: fix for client's rejection mechanism (in multiplayer game).
Server: using pfnClientDisconnect callback (in multiplayer game).
Server: some changes in physics code (for MOVETYPE_PUSH). This is fixing a variety of possible problems with pushable objects (and sometimes - with a monster's or NPC's physics) in some Half-Life mods.

A compatibility of Xash3D Engine with GoldSrc Engine was additionally tested since build 2153 in about of 150 different mods and for now a list of successfully completed mods includes over 350 singleplayer mods. So don't forget to check the updated list. In addition to the list of tested Half-Life mods was also created a list of tested singleplayer maps, which already includes over 100 different maps.

XashXT changelog (for version 0.62, since version 0.61):

- Implemented a new system of save/restore (an analog of save/restore system that avaliable in Half-Life 2).
- You can view now a classes' statistics with using of in-game console (a set of commands beginning from dump_*).
- Custom system of string_t for better sorting and checking for duplicates (improving of render's performance).
- Env_sky can be enabled and disabled now, so you can use some different skies for one map.
- Minimizing of glitches with entities which sometimes can be visible through a skybox.
- Added player_keycatcher entity for checking keys that pressing by a player. It can be useful for creating of mini-games or for executing of different events for the player (depending on pressed keys).
- Some fixes in XashXT parent system (for func_tank, tripmines and crossbow bolts).
- Added a support for using of a chrome effect for brush entities and world (used texture should have a name that beginning from "chrome", as example, gfx/chrome.tga is using now). Chrome effect can be combined with any rendermode and with mirrors also.
- XashXT demo maps are updated.

Don't forget that you must have a properly working combination of Xash3D Engine and Half-Life prior to installing of XashXT, because it's a mod and toolkit, not a stand-alone game. Check this instruction if you are new with Xash3D or XashXT. It's also recommended do not copy new version of XashXT over old version. Install it anew instead and backup the old version in another folder (if you need something there) or just delete it.

P. S. Probably it's the last official Xash's update until the autumn, because Unkle Mike will be very busy for this time. But your feedback is still welcome and you still can get a help if you need it.

Media RSS Feed Latest Video
Games
IONIZATION

IONIZATION IONIZATION Indie

Updated 2 months 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...

Quake Remake

Quake Remake Quake Remake Indie

Updated 3 months ago Released Sep 2, 2012 Single & Multiplayer First Person Shooter

Hi, all! Let to introduce you a remake project for legendary game "Quake" by ID Software. "Quake Remake" has been re-created by team of "Quake" fans...

Xash3D : Half-Life : Enhanced

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

Updated 11 months 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  (10 - 20 of 139)
15_Shinoseki
15_Shinoseki Mar 13 2013, 6:06am says:

Links are Down ! (as of this Post's Time)

+1 vote     reply to comment
SimpleCountryCoder
SimpleCountryCoder Mar 13 2013, 7:55am replied:

Links worked for me (hey, there's a new version now! Nice).

+1 vote     reply to comment
dempsy40
dempsy40 Mar 4 2013, 3:45pm says:

when i launch xash o.61 .exe is says unable to load the xash.dll

+2 votes     reply to comment
SimpleCountryCoder
SimpleCountryCoder Mar 4 2013, 6:52pm replied:

o.61 .exe?

That... is not a file offered to the best of my knowledge. The Xash TOOLKIT is of version 0.61; is that what you meant to run?

Xash the ENGINE is currently at v0.95 (build 2153) and is a different download. The engine includes the xash.dll.

+2 votes     reply to comment
Qwertyus
Qwertyus Mar 4 2013, 6:48pm replied:

XashXT should be installed as mod (it just has it's own exe, but still needs other game's and engine's files to run). You need to install Xash3D Engine properly before attempting to play any mod :) . Check this manual:
Moddb.com

+2 votes     reply to comment
fortea
fortea Mar 4 2013, 8:03am says:

Hello everyone!

First, Where have You been 4 years ago, people? :)
Such a piece of technically extended engine under GPL - It's amazing!

Second, Are You going to port engine to other platforms?

And the last one, don't be angry with people who have interest in Your project, but don't understand how it is working.

Good Luck in development! Wish You only the stablest snapshots!

+2 votes     reply to comment
Qwertyus
Qwertyus Mar 4 2013, 9:12am replied:

Hi! In fact, Xash it's already 8 years old project. Started as modding toolkit for Half-Life it turned to stand-alone engine project about 3 years ago. You can also know main developer of Xash3D, Unkle Mike, as developer of some custom builds of Spirit of Half-Life. And some of modding projects used these custom builds or different parts of them in their development.

But Xash3D and XashXT for the present are still waiting for talented people, who are ready to help with development or who are ready to create their own mods and games with using of new potential, so you are welcome. Anyone who is not a developer but only a player can also help - with testing, donating or making Xash3D more popular. There are a lot of ways to help.

What about porting to other platforms - it's possible, but Unkle Mike is not going to do something in that area. He hope, that interested people can do that on their own. At this moment there is 1 project of porting Xash3D to Linux, from fire64:
Github.com

Thanks for your interest and for kind words!

P. S. There will be another update of Xash3D & XashXT. It's under final testing. So once again there will be a lot of new features and bug fixes. Just wait a bit!

+2 votes     reply to comment
G-Mad
G-Mad Mar 2 2013, 7:30pm says:

Can you tell me english forum that is teach me about HL1 modding?

+2 votes     reply to comment
Qwertyus
Qwertyus Mar 3 2013, 4:35am replied:

Here is a forum where you can always ask a question about HL coding:
Hlfx.ru

It's on russian, but you can use english too.

Also check these forums:
Twhl.info
Half-lifecreations.com

Also there are a lot of forums on the web about modding for HL, just use Google to search.

+2 votes     reply to comment
Qwertyus
Qwertyus Mar 2 2013, 7:44am replied:

Yes, this is YOUR problems. They are not related to Xash3D. It's not a thread about coding or about solving YOUR personal problems with coding. I already wrote you, search for help on specialized forums, not here.

+2 votes     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
Hlfx.ru
Licence
GPL
Release Date
Released Apr 23, 2011
Engine Watch
Track this engine
Share
Community Rating

Average

9.6

57 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

Statistics
Rank
17 of 513
Last Update
3 weeks ago
Watchers
101 members
Games
3
Files
14
News
5
Features
6
Reviews
14