• Register

.: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.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Xash3D Oktoberfest 2018!

News

Hi, guys! The time has came and long-awaited updates of Xash3D Engine were released! Newest builds fix many problems, including very old ones and those which appeared following global changes applied to the engine during last two years of development. Also they brings better support for some mods, which had different problems with Xash3D initially (on any build). For examlple - Cry of Fear (mod version 1.0 - 1.55), Cthulhu: An Unspeakable Modification for Half-Life, Team Fortress Classic, Half-Life: Decay, Reissues, Chinatown Preview. As usually, there are some improved or newly added features too. You can download the final build of this year and see the full list of latest changes here:

Xash3D Engine v0.99, build 4344 with source code & extras

Xash3D Engine v0.99, build 4344 with source code & extras


If you install the engine in your first time, please, make sure to install all engine's files properly, including extras for "valve" folder. Otherwise some things will not work as intended or will not work at all. Detailed manual is here. For questions about mods' support refer to 2 new articles: #1 & #2. Remember that some nowaday mods (or their new versions) which depend on updated Steam Half-Life libraries may be not supported (or have to be patched with old or compatible 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 for previous builds, the same rule works for this build too: DO NOT USE it with any of previously released versions of Xash3D games/mods, such as XashXT, Paranoia 2: Savior, Quake Remake, Area 51. Until they are not updated, they will not work with the new engine.

Fortunately, the XashXT update is already released also! So you can use it now with the latest engine's build. Since the version 0.65 a lot of things are added and fixed. Some of new features: support up to 64 weapons, better visual debugging system, faster grass code, faster code of dynamic lighting and world's rendering (including using a power of GPU for lightstyles and hardware interpolation of lightstyles), better fog, partial support of terrains from Paranoia 2, advanced mirrors' rendering (including mirrors reflecting in each other), special events for spawning Aurora particles from studiomodels (5040-5044), totally new studiomodels renderer with a support of LODs, bone weighting, jingle bones, inverse kinematics, multiple blending of sequences, per-vertex lighting for prop-models, added sunshafts (like in Crysis or Paranoia), Opposing Force-like ropes, better tracktrain control, new entity trigger_dsp_zone for better DSP effects, new entities func_transporter и conveyor_setspeed for better control of conveyors... Just grab it and explore the new possibilities!

XashXT v0.81, revision 1 (Xash3D mod & toolkit)

XashXT v0.81, revision 1 (Xash3D mod & toolkit)


Along with new engine's build we're also proud to present a new Unkle Mike's project - Quake Wrapper (QWrap). It's a mod for Xash3D Engine which can launch original Quake game and its mods. It makes no changes to Quake's gameplay, but provides more handy game interface and controls. We decided to release it in the Games section, though it's not an independent game exactly. But this should provide a more comfortable way to release potential updates/information or discuss the project, because it quite differs from common Xash3D-related things and Half-Life theme.

Quake Wrapper v0.7, revision1 with source code

Quake Wrapper v0.7, revision1 with source code


If you'd like to support Unkle Mike and buy him some beer inspire him for further development of Xash3D, you can donate him some money via:

Running Half-Life under Xash3D: user's manual (English)

Running Half-Life under Xash3D: user's manual (English)

Feature 100 comments

Hello, if you are new with how to use Xash3D Engine to run Half-Life and its' mods, this manual is for you. Just follow the instruction and have fun!

Xash3D-compatible Half-Life mods for any supported OS

Xash3D-compatible Half-Life mods for any supported OS

Starting a mod Tutorial 3 comments

Original Xash3D Engine by Unkle Mike (Windows version) supports wide variety of Half-Life mods, from simple 1-map mods to mods which change everything...

Xash3D-compatible Half-Life mods with a custom game code

Xash3D-compatible Half-Life mods with a custom game code

Feature 3 comments

This article is about those singleplayer Half-Life mods which use non-standard game code. In most cases, their code is only Windows-compatible, so they...

Xash3D Engine v0.99, build 4097 (beta) is released!

Xash3D Engine v0.99, build 4097 (beta) is released!

News 4 comments

In usual anniversary of Xash3D Unkle Mike has released new beta-version of the engine. This release is very close to version 1.0, many things are changed...

Add game Games
Diffusion

Diffusion

First Person Shooter

You, James Smith (served in SWAT for a decade with no failed ops and now working as a detective), on vacation going to visit your family. Driving on a...

Quake Wrapper

Quake Wrapper

First Person Shooter

Quake Wrapper - it's technically a mod for Xash3D Engine, which uses Xash3D Engine as a shell to launch original Quake game and even its' mods. Gameplay...

Area 51

Area 51

First Person Shooter

The game is a 3d shooter with the elements of the quest

IONIZATION

IONIZATION

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

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®: Guardians

Secret Operation®: Guardians

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...

Cotra

Cotra

Arcade

Добрый-Бобрый, лол. С вами балабер, а это КОТРА: Зубодробительный экшн где вы играете...

BOOM: Anatoly in Time

BOOM: Anatoly in Time

First Person Shooter

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

Comments  (0 - 10 of 933)
cobaltmonarch
cobaltmonarch

I'm getting an error in console when playing Brutal Half-Life; "Overflow 500 temporary ents!". Did I do something wrong? Is there a workaround?

Reply Good karma Bad karma+1 vote
Qwertyus Creator
Qwertyus

Open gameinfo.txt, find max_tempents parameter, edit its' value for 2048. Sometimes this helps, sometimes temporary ents are overflowing anyways. It's not a significant problem, just a service message. You also may set con_notifytime cvar for -1 (via console or in config.cfg) to disable pop-up messages.

Reply Good karma+1 vote
cobaltmonarch
cobaltmonarch

It unfortunately doesn't work. I'm still met with freezing.

Reply Good karma Bad karma+1 vote
Qwertyus Creator
Qwertyus

"con_notifytime" "-1" (minus one) for disabling messages. Can say nothing about freezing, don't understand what do you mean. Also, Brutal HL is beta, so this probably is the coding/mapping issue.

Reply Good karma+1 vote
JackV16
JackV16

Does it support 21:9 resolutions? I'm unable to select those.

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

Nope. Only Xash3D FWGS can manage with that.

Reply Good karma+2 votes
LuckyWinneR
LuckyWinneR

First - a great work, great engine! I am using it from several months and already played Half-Life and its expansions and some mods. Second - I have a problem. I'm using Half-Life (WON) patched to 1.1.1.0. I want to make this thing work:

Gamebanana.com
These are the submitter's instructions:
Unzip, copy both valve and valve_hd to the game main folder. Start Half-Life and go to Options -> Video, check Detail Textures and Enable HD models if available, once you apply the game will restart.
If you wish to play the Half-Life campaign go to Options -> Multiplayer, click Advanced and check the Ignore Embedded Textures option. This will prevent the game from loading embedded textures which do not look good with this pack.

There is not Xash3D GUI option "Ignore Embedded Textures". If I want to see the detailed textures I have to copy the content of valve_hd to valve directory. The bug I have is misaligned overlay of the detailed textures. What can you reccommend me?

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

1. Put the mod stuff in "valve" or (better) create separate mod's folder (you can use key -game folder_name in hl.exe's shortcut to run this mod or create custom liblist.gam/gameinfo.txt, like for any other mod).
2. Create userconfig.cfg file in "valve" (or mod's) folder and add these lines into it:
r_detailtextures 1
r_wadtextures 1

That's all (if other things in that mod are set properly, which I can't say for sure because I've never tested it). Note, that obviously this mod should replace default WAD-files with normal HL textures for edited WAD-files with grey-blank textures. So you WILL have texture problems in other mods if you put the mod's contents in "valve". That's why I recommend to put all mod contents in separate folder and run it as a separate mod.

Reply Good karma+3 votes
LuckyWinneR
LuckyWinneR

The first thing (Put the mod stuff in "valve") was already done by me. I tried the second too (create separate mod's folder). I copied valve_hd from the mod to my Xash3D folder. I placed the 2 files from the mod's valve folder to the already created valve_hd. I also created the userconfig.cfg file in the valve_hd folder. The result is the same after using both methods - misaligned overlay of the detailed textures:
Imgur.com
In Steam if I go to Options -> Multiplayer, click Advanced and check the Ignore Embedded Textures option the overlay is normal. So, because there is no such a GUI option in Xash3D, maybe there is a console command or a string I should write somewhere?

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

Re-read what I wrote. Where do you see "create userconfig.cfg file in the valve_hd folder"? Where I ever noticed valve_hd folder? Userconfig.cfg must be exactly in the same folder where you've put all mod's content.

Reply Good karma+3 votes
LuckyWinneR
LuckyWinneR

I read everything carefully. The folder valve_hd is the mod contents. That's why userconfig.cfg is made there. I can start the mod properly with Steam, because of that option: "Ignore Embedded Textures". This is the key moment. This mod is an interesting project to enhance the original graphics not only of Half-Life, but all the other mods, so I will be grateful if you can test it and make it work. Thanks :)

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

r_wadtextures 1
This is exactly the option you ask. You may have texture problems only if you didn't set all things properly.

Reply Good karma+3 votes
LuckyWinneR
LuckyWinneR

This is in Steam with the option Ignore Embedded Textures on:
Imgur.com - propper overlay
This is in Steam with the option Ignore Embedded Textures off:
Imgur.com - misaligned overlay
In both cases, in Steam if I write in console or .cfg file: r_wadtextures 1 or r_wadtextures 0 nothing changes, so this is not triggering the Ignore Embedded Textures option on or off.

There are two things to consider - how to really activate Ignore Embedded Textures in Xash3D, and if there is need (most probably) these two files in the graphics mod to be edited to work with Xash3D - liblist.gam and user.scr, because they have to replace the original files.

Anyway, if you have the time and wish, you may solve this puzzle.

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

r_wadtextures 1
This cvar is doing the same thing in Xash3D which you see in Steam with "Ignore Embedded Textures" option. But you have to set other things properly (all mod files are placed correctly, mod is launched correctly etc.).

Reply Good karma+2 votes
LuckyWinneR
LuckyWinneR

"But you have to set other things properly (all mod files are placed correctly, mod is launched correctly etc.)." - again, I am doing everything properly both in Steam and in Xash3D, according your instructions. The result is - success in Steam and fail in Xash3D. But you will understand me only if you test it on your own.

Reply Good karma Bad karma+2 votes
Qwertyus Creator
Qwertyus

I've tested this mod and it works for me in Xash3D. And I did nothing except things I mentioned for you. Just created userconfig.cfg with 2 aforesaid options in valve_hd and launched the mod via adding the key -game valve_hd in shortcut for hl.exe.

The only problem is that some detail textures (which have inscriptions on them, for example) are set upside-down. It's because mod's author made them look so. I have no idea what was the reason to do this. But apparently Steam HL can flip them automatically.

Technically it's just a mod author's fault, that this thing makes his mod properly compatible only with Steam HL. I suggest to try something that works properly:
Moddb.com

Reply Good karma+2 votes
LuckyWinneR
LuckyWinneR

Thank you for your suggestion. I know that mod, but my main idea is to use the GameBanana mod, because that way all HL mods will have detailed textures (if I rename global_detail.txt for each map). It is already tested by me with 2 other mods in Steam and they look really good. But this can't be done if valve_hd is started as a separate mod. It has to be implemented with hl.exe like in Steam. I think liblist.gam and user.scr should be edited for Xash3D and after that they should replace the files in Xash3D\valve\ like in Steam. Do you have any idea how this can be done? And by the way, does HL: Update (Subtitles) mod 3.0 work with Xash3D (because I started it in Steam, but I think it is not compatible with Xash3D)?

Reply Good karma Bad karma+1 vote
Qwertyus Creator
Qwertyus

Test any mod on your own if you don't understand what I'm talking about.

Reply Good karma+2 votes
LuckyWinneR
LuckyWinneR

I understood you very well. For me the mod runs in Xash3D the same way it runs for you. However, I don't want to disturb you. Thank you for your efforts.

Reply Good karma Bad karma+2 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Platforms
Windows
Company
Xash XT Group
Contact
Send Message
Licence
GPL
Release date
Engine watch
Follow
Share
Community Rating

Average

9.8

118 votes submitted.

You Say

-

Ratings closed.

Highest Rated (6 agree) 10/10

Just awesome. What you did creating this engine cannot be described with any words.

Jan 28 2012 by ADTeam™

Embed Buttons
Link to Xash3D Engine by selecting a button and using the embed code provided more...
Xash3D Engine
Statistics
Rank
4 of 812
Last Update
Watchers
398 members
Games
8
Files
65
Articles
24
Reviews
56
You may also like
WOLF RPG Editor
WOLF RPG Editor GPL
Doom Engine
Doom Engine GPL
Unreal Development Kit
Unreal Development Kit Commercial
Wave Engine
Wave Engine Proprietary
Multimedia Fusion
Multimedia Fusion Commercial
Godot Engine
Godot Engine MIT