2018-11-05 00:06:08 +01:00
# Xash3D FWGS Engine
2021-11-27 04:27:52 +01:00
[![GitHub Actions Status ](https://github.com/FWGS/xash3d-fwgs/actions/workflows/c-cpp.yml/badge.svg )](https://github.com/FWGS/xash3d-fwgs/actions/workflows/c-cpp.yml) [![FreeBSD Build Status ](https://img.shields.io/cirrus/github/FWGS/xash3d-fwgs?label=freebsd%20build )](https://cirrus-ci.com/github/FWGS/xash3d-fwgs) [![Discord Server ](https://img.shields.io/discord/355697768582610945.svg )](http://discord.fwgs.ru/) \
2021-07-03 19:26:16 +02:00
[![Download Stable ](https://img.shields.io/badge/download-stable-yellow )](https://github.com/FWGS/xash3d-fwgs/releases/latest) [![Download Testing ](https://img.shields.io/badge/downloads-testing-orange )](https://github.com/FWGS/xash3d-fwgs/releases/tag/continuous)
2020-02-24 23:37:54 +01:00
2018-12-13 07:17:11 +01:00
Xash3D FWGS is a fork of Xash3D Engine by Unkle Mike with extended features and crossplatform.
2018-11-05 00:06:08 +01:00
```
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.
2020-02-24 23:43:45 +01:00
* Crossplatform: supported x86 and ARM on Windows/Linux/BSD/Android. ([see docs for more info](Documentation/ports.md))
2018-12-13 07:17:11 +01:00
* Modern compilers support: say no more to MSVC6.
2018-11-05 00:06:08 +01:00
* Better multiplayer support: multiple master servers, headless dedicated server.
2018-12-13 07:17:11 +01:00
* Mobility API: allows better game integration on mobile devices(vibration, touch controls)
2018-11-05 00:06:08 +01:00
* Different input methods: touch, gamepad and classic mouse & keyboard.
* TrueType font rendering, as a part of mainui_cpp.
2020-02-24 23:43:45 +01:00
* Multiple renderers support: OpenGL, GLESv1, GLESv2, Software
2018-11-05 00:06:08 +01:00
* A set of small improvements, without broken compatibility.
## Planned fork features
2019-06-03 15:53:23 +02:00
* Virtual Reality support and game API
2018-11-05 00:06:08 +01:00
* Voice support
2019-06-03 15:53:23 +02:00
* Vulkan renderer
2018-11-05 00:06:08 +01:00
2021-03-15 10:23:25 +01:00
## Installation & Running
2021-07-03 21:54:31 +02:00
0) Get Xash3D binaries: you can use [testing ](https://github.com/FWGS/xash3d-fwgs/releases/tag/continuous ) build or you can compile engine from source code.
2021-03-15 10:23:25 +01:00
Choose proper build package depending on which platform you're using.
1) Copy engine binaries to some directory.
2021-07-03 21:54:31 +02:00
2) Copy `valve` directory from [Half-Life ](https://store.steampowered.com/app/70/HalfLife/ ) to directory with engine binaries.
2021-03-15 10:23:25 +01:00
Also if you're using Windows: you should copy `vgui.dll` library from Half-Life directory to Xash3D directory.
2021-07-03 21:54:31 +02:00
As alternative, you can compile [hlsdk-xash3d ](https://github.com/FWGS/hlsdk-xash3d ) instead of using official Valve game binaries, but you still needed to copy `valve` directory as all game resources located in there.
2021-03-15 10:23:25 +01:00
3) Download [extras.pak ](https://github.com/FWGS/xash-extras/releases/tag/v0.19.2 ) and place it to `valve` directory.
4) Run `xash3d.exe` /`xash3d.sh`/`xash3d` depending on which platform you're using.
2021-10-26 16:48:04 +02:00
Note: on Linux, you may need to create an sh file with the command `LD_LIBRARY_PATH=. ./xash3d` .
2021-03-15 10:23:25 +01:00
For additional info, run Xash3D with `-help` command line key.
2018-11-05 00:06:08 +01:00
## 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
2021-03-26 18:49:39 +01:00
* Issues are accepted in both English and Russian
2020-06-23 15:21:43 +02:00
* Before sending a PR, check if you followed our contribution guide in CONTRIBUTING.md file.
2018-11-05 00:06:08 +01:00
## Build instructions
We are using Waf build system. If you have some Waf-related questions, I recommend you to read https://waf.io/book/
2021-07-03 21:54:31 +02:00
NOTE: NEVER USE GitHub's ZIP ARCHIVES. GitHub doesn't include external dependencies we're using!
2020-05-25 21:35:34 +02:00
2018-12-13 07:17:11 +01:00
### Prerequisites
2021-03-15 10:23:25 +01:00
#### Windows (Visual Studio)
2018-12-13 07:17:11 +01:00
* Install Visual Studio.
2018-12-13 07:23:21 +01:00
* Install latest [Python ](https://python.org ) **OR** run `cinst python.install` if you have Chocolatey.
* Install latest [Git ](https://git-scm.com/download/win ) **OR** run `cinst git.install` if you have Chocolatey.
2018-12-13 07:17:11 +01:00
* Download [SDL2 ](https://libsdl.org/download-2.0.php ) 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.
2019-07-07 01:46:16 +02:00
#### GNU/Linux
NOTE FOR USERS WITH X86 COMPATIBLE CPUs:
2021-07-03 21:54:31 +02:00
We have forced Waf to throw an error, if you're trying to build 64-bit engine. This was done for keeping compatibility with Steam releases of Half-Life and based on it's engine games.
2019-02-23 11:46:03 +01:00
Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!
2018-12-13 07:17:11 +01:00
2019-06-17 08:04:39 +02:00
##### Debian/Ubuntu
* Enable i386 on your system, if you're compiling 32-bit engine on amd64. If not, skip this
2019-06-17 08:09:15 +02:00
2019-06-17 08:04:39 +02:00
`$ sudo dpkg --add-architecture i386`
* Install development tools
2020-02-24 23:43:45 +01:00
* For 32-bit engine on amd64: \
2019-06-17 08:04:39 +02:00
`$ sudo apt install build-essential gcc-multilib g++-multilib python libsdl2-dev:i386 libfontconfig-dev:i386 libfreetype6-dev:i386`
2020-02-24 23:43:45 +01:00
* For everything else: \
2019-06-17 08:04:39 +02:00
`$ sudo apt install build-essential python libsdl2-dev libfontconfig-dev libfreetype6-dev`
* Clone this repostory:
2019-06-17 08:09:15 +02:00
`$ git clone --recursive https://github.com/FWGS/xash3d-fwgs`
2019-06-17 08:04:39 +02:00
2018-12-13 07:17:11 +01:00
### Building
2021-03-15 10:23:25 +01:00
#### Windows (Visual Studio)
2018-12-13 07:17:11 +01:00
0) Open command line
1) Navigate to `xash3d-fwgs` directory.
2) Carefully examine which build options are available: `waf --help`
2021-11-25 14:56:37 +01:00
3) Configure build: `waf configure -T release --sdl2=c:/path/to/SDL2`
2018-11-05 00:06:08 +01:00
4) Compile: `waf build`
2021-11-25 14:56:37 +01:00
5) Install: `waf install --destdir=c:/path/to/any/output/directory`
2018-12-13 07:17:11 +01:00
#### Linux
0) Examine which build options are available: `./waf --help`
2021-11-25 14:56:37 +01:00
1) Configure build: `./waf configure -T release`
2021-07-03 21:54:31 +02:00
(You need to pass `-8` to compile 64-bit engine on 64-bit x86 processor)
2018-12-13 07:17:11 +01:00
2) Compile: `./waf build`
2021-11-25 14:56:37 +01:00
3) Install(optional): `./waf install --destdir=/path/to/any/output/directory`
2018-11-05 00:06:08 +01:00
2021-10-26 16:48:04 +02:00
Note: if compiling 32-bit on amd64, you may need to supply `export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig` prior to running configure.
2018-11-05 00:06:08 +01:00