Go to file
2019-03-24 20:00:49 +04:00
common ref: make API thinner by moving simple calls into EngineGetParm(RenderGetParm with ref extensions), fix some UBs 2019-03-22 16:36:46 +03:00
contrib update my Qt Creator project 2018-10-27 23:28:29 +03:00
engine engine: hide ref calls under Host_IsDedicated checks, replace ref function ptr checks by \!Host_IsDedicated 2019-03-22 18:41:57 +03:00
game_launch wscript: check for dedicated or singlebinary before recurse into subdirectory, add a chance to skip some subprojects on configuration stage 2019-02-19 17:49:09 +03:00
mainui@f2a54fcb54 mainui: update 2019-03-20 02:41:44 +03:00
pm_shared Legacy protocol compatibility (cl_legacymode) 2019-01-25 20:54:05 +07:00
public wscript: remove libm linking to static public, it's useless. Correct include path order 2019-03-20 02:40:47 +03:00
ref_gl ref: make API thinner by moving simple calls into EngineGetParm(RenderGetParm with ref extensions), fix some UBs 2019-03-22 16:36:46 +03:00
scripts scripts: try to workaround mingw bug by adding sse2 2019-03-21 17:47:16 +03:00
vgui_support vgui_support/wscript fix indentation 2019-03-24 20:00:49 +04:00
.gitignore gitignore: allow waflib directory, hide pyc and pycache 2018-12-13 07:48:51 +03:00
.gitmodules vgui_support: switch to free miniutl 2019-01-26 14:31:02 +03:00
.travis.yml travis: add mingw build deployment 2018-12-12 04:50:24 +03:00
CONTRIBUTING.md readme: add missed newlines 2019-02-24 01:11:23 +03:00
README.md readme: fix links 2019-02-24 05:47:57 +07:00
waf waf: update 2018-10-08 22:39:33 +03:00
waf.bat Add waf itself(with included wurf and msvs.py) and waf.bat launcher for Windows 2018-06-14 21:23:38 +03:00
wscript scripts: try to workaround mingw bug by adding sse2 2019-03-21 17:47:16 +03:00

Xash3D FWGS Engine

Build Status Discord Server

Xash3D FWGS is a fork of Xash3D Engine by Unkle Mike with extended features and crossplatform.

Xash3D is a game engine, aimed to provide compatibility with Half-Life Engine, 
as well as to give game developers well known workflow and extend it.
Read more about Xash3D on ModDB: https://www.moddb.com/engines/xash3d-engine

Latest release build: https://github.com/FWGS/xash3d-fwgs/releases/latest

Latest development build: https://github.com/FWGS/xash3d-deploy/tree/newengine-latest

Fork features

  • HLSDK 2.4 support.
  • Crossplatform: officially supported x86 and ARM on Windows/Linux/BSD/macOS/Android/iOS/Haiku.
  • Modern compilers support: say no more to MSVC6.
  • Better multiplayer support: multiple master servers, headless dedicated server.
  • Mobility API: allows better game integration on mobile devices(vibration, touch controls)
  • Different input methods: touch, gamepad and classic mouse & keyboard.
  • TrueType font rendering, as a part of mainui_cpp.
  • A set of small improvements, without broken compatibility.

Planned fork features

  • Virtual Reality support and game API(in development!)
  • Voice support
  • Multiple renderers support(OpenGL, GLES, Vulkan, software)

Contributing

  • Before sending an issue, check if someone already reported your issue. Make sure you're following "How To Ask Questions The Smart Way" guide by Eric Steven Raymond. Read more: http://www.catb.org/~esr/faqs/smart-questions.html
  • Before sending a PR, check if you followed our coding guide in CODING_STYLE.md file.

Build instructions

We are using Waf build system. If you have some Waf-related questions, I recommend you to read https://waf.io/book/

If you're stuck somewhere and you need a clear example, read .travis.yml and scripts/build*.sh.

Prerequisites

Windows(Visual Studio)

  • Install Visual Studio.
  • Install latest Python OR run cinst python.install if you have Chocolatey.
  • Install latest Git OR run cinst git.install if you have Chocolatey.
  • Download SDL2 development package for Visual Studio.
  • Clone this repository: git clone --recursive https://github.com/FWGS/xash3d-fwgs.
  • Clone vgui-dev repository: git clone https://github.com/FWGS/vgui-dev.
  • Make sure you have at least 12GB of free space to store all build-time dependencies: ~10GB for Visual Studio, 300 MB for Git, 100 MB for Python and other.

Linux

NOTE: Make sure you're OK with targetting 32-bit.

Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!

  • Gentoo: TODO
  • Debian: TODO
  • ArchLinux: <AUR Helper> -S xash3d-git

Building

Windows(Visual Studio)

  1. Open command line
  2. Navigate to xash3d-fwgs directory.
  3. Carefully examine which build options are available: waf --help
  4. Configure build: waf configure --build-type=release --sdl2=c:/path/to/SDL2 --vgui=c:/path/to/vgui-dev --prefix=c:/path/to/any/output/directory
  5. Compile: waf build
  6. Install: waf install

Linux

  1. Examine which build options are available: ./waf --help
  2. Configure build: ./waf configure --build-type=release --vgui=vgui-dev
  3. Compile: ./waf build
  4. Install(optional): ./waf install

Running

  1. Copy libraries and main executable somewhere, if you're skipped installation stage.
  2. Copy game files to same directory
  3. Run xash3d.exe/xash3d.sh/xash3d depending on which platform you're using.

For additional info, run Xash3D with -help command line key.