Go to file
2020-07-07 00:22:01 +07:00
common defaults: use appropriate Win32 check macro 2020-04-25 21:28:19 +03:00
contrib/mittorn contrib: remove my personal qtcreator project, as I'm using compile_commands.json support now 2019-11-28 19:21:53 +03:00
Documentation Fixed mod title in Open Source mods documentation. 2020-05-25 16:59:34 +03:00
engine android: fix fallbacks 2020-07-07 00:22:01 +07:00
game_launch game_launch: fix Win32 main 2020-02-24 16:48:30 +03:00
mainui@b921b2a7d4 mainui: update 2020-05-11 02:28:18 +03:00
pm_shared xash3d-fwgs: append missing new line at the end of file 2019-10-27 22:29:03 +03:00
public tgmath: remove including tgmath.h in everything that uses xash3d_mathlib, as it's included already 2020-03-30 00:42:10 +03:00
ref_gl engine: try to fix -Wmaybe-uninitialized that may be enabled with -Wuninitialized. Diagnostic is prone to false-positives, as compiler don't have enough data for this 2020-05-12 02:00:34 +03:00
ref_soft engine: try to fix -Wmaybe-uninitialized that may be enabled with -Wuninitialized. Diagnostic is prone to false-positives, as compiler don't have enough data for this 2020-05-12 02:00:34 +03:00
scripts scripts: travis: we're NOT moved to GitHub Releases 2020-02-28 09:13:33 +03:00
utils/mdldec utils: add studio model decompiler. 2020-03-04 09:23:12 +03:00
vgui_support wscript: refactoring, add waf_unit_test, disable -Wdouble-promotion, rename fast as fastnative and leave fast without -march=native for x-compiling 2019-11-05 01:01:33 +03:00
vgui-dev@f5566261bd readme: add note for debian/ubuntu prerequisites, add vgui-dev as submodule, update mainui 2019-06-17 09:04:39 +03:00
.cirrus.yml ci: run pkg update for freebsd 2020-05-03 15:17:53 +03:00
.editorconfig editorconfig: initial add 2019-06-11 03:07:02 +03:00
.gitignore scripts: enable deploying vc2008 project 2019-04-08 21:09:21 +03:00
.gitmodules readme: add note for debian/ubuntu prerequisites, add vgui-dev as submodule, update mainui 2019-06-17 09:04:39 +03:00
.travis.yml travis: don't upload dead APKs [ci skip] 2019-12-03 04:00:11 +03:00
CONTRIBUTING.md readme: sligthly update contributing guidelines 2019-10-06 03:49:46 +03:00
README.md readme: fix #187 2020-06-23 16:21:43 +03:00
waf waf: upgrade to latest waifu version 2020-04-25 21:28:20 +03:00
waf.bat waf.bat: fix strange ERRORLEVEL bug 2019-05-23 22:28:35 +03:00
wscript wscript: disable treating uninitialized as error because it gives too much false-positives 2020-05-13 00:24:50 +03:00

Xash3D FWGS Engine

Build Status FreeBSD Build Status Discord Server
Download Stable Download Testing

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

Fork features

  • HLSDK 2.4 support.
  • Crossplatform: supported x86 and ARM on Windows/Linux/BSD/Android. (see docs for more info)
  • 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.
  • Multiple renderers support: OpenGL, GLESv1, GLESv2, Software
  • A set of small improvements, without broken compatibility.

Planned fork features

  • Virtual Reality support and game API
  • Voice support
  • Vulkan renderer

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 contribution guide in CONTRIBUTING.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.

NOTE: NEVER USE GitHub's ZIP ARCHIVES. They are broken and don't contain external dependencies sources we're using.

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

GNU/Linux

NOTE FOR USERS WITH X86 COMPATIBLE CPUs: We have forced build system to throw an error, if you're trying to build 64-bit engine. This done for keeping compatibility with Steam releases of Half-Life and based on it's engine games. Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!

Debian/Ubuntu
  • Enable i386 on your system, if you're compiling 32-bit engine on amd64. If not, skip this

$ sudo dpkg --add-architecture i386

  • Install development tools
    • For 32-bit engine on amd64:
      $ sudo apt install build-essential gcc-multilib g++-multilib python libsdl2-dev:i386 libfontconfig-dev:i386 libfreetype6-dev:i386
    • For everything else:
      $ sudo apt install build-essential python libsdl2-dev libfontconfig-dev libfreetype6-dev
  • Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs

ArchLinux

  • ArchLinux users are lucky enough and there is a xash3d-git AUR package for them.

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 -T release --sdl2=c:/path/to/SDL2 --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 -T release --prefix=/path/to/any/output/directory (To compile 64-bit engine on 64-bit x86 processor, you need to pass -8 also)
  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.