Alibek Omarov
a777e7c80d
|
3 years ago | |
---|---|---|
.github/workflows | 3 years ago | |
Documentation | 3 years ago | |
common | 3 years ago | |
contrib/mittorn | 5 years ago | |
engine | 3 years ago | |
game_launch | 4 years ago | |
mainui@82ed1ff5a1 | 3 years ago | |
pm_shared | 4 years ago | |
public | 3 years ago | |
ref_gl | 3 years ago | |
ref_soft | 3 years ago | |
scripts | 3 years ago | |
utils/mdldec | 3 years ago | |
vgui-dev@93573075af | 4 years ago | |
vgui_support | 4 years ago | |
.cirrus.yml | 4 years ago | |
.editorconfig | 6 years ago | |
.gitattributes | 3 years ago | |
.gitignore | 4 years ago | |
.gitmodules | 4 years ago | |
CONTRIBUTING.md | 5 years ago | |
README.md | 3 years ago | |
waf | 3 years ago | |
waf.bat | 6 years ago | |
wscript | 3 years ago |
README.md
Xash3D FWGS Engine
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
Installation & Running
- Get Xash3D binaries: you can use testing build or you can compile engine from source code. Choose proper build package depending on which platform you're using.
- Copy engine binaries to some directory.
- Copy
valve
directory from Half-Life to directory with engine binaries. Also if you're using Windows: you should copyvgui.dll
library from Half-Life directory to Xash3D directory. As alternative, you can compile hlsdk-xash3d instead of using official Valve game binaries, but you still needed to copyvalve
directory as all game resources located in there. - Download extras.pak and place it to
valve
directory. - Run
xash3d.exe
/xash3d.sh
/xash3d
depending on which platform you're using.
Note: on Linux, you may need to create an sh file with the command LD_LIBRARY_PATH=. ./xash3d
.
For additional info, run Xash3D with -help
command line key.
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
- Issues are accepted in both English and Russian
- 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/
NOTE: NEVER USE GitHub's ZIP ARCHIVES. GitHub doesn't include external dependencies 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 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. 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
- For 32-bit engine on amd64:
- Clone this repostory:
$ git clone --recursive https://github.com/FWGS/xash3d-fwgs
Building
Windows (Visual Studio)
- Open command line
- Navigate to
xash3d-fwgs
directory. - Carefully examine which build options are available:
waf --help
- Configure build:
waf configure -T release --sdl2=c:/path/to/SDL2
- Compile:
waf build
- Install:
waf install --destdir=c:/path/to/any/output/directory
Linux
- Examine which build options are available:
./waf --help
- Configure build:
./waf configure -T release
(You need to pass-8
to compile 64-bit engine on 64-bit x86 processor) - Compile:
./waf build
- Install(optional):
./waf install --destdir=/path/to/any/output/directory
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.