You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alibek Omarov
b535c24edb
|
6 years ago | |
---|---|---|
common | 6 years ago | |
contrib | 6 years ago | |
engine | 6 years ago | |
game_launch | 6 years ago | |
mainui@e36175ae03 | 6 years ago | |
pm_shared | 6 years ago | |
public | 6 years ago | |
ref_gl | 6 years ago | |
scripts | 6 years ago | |
vgui_support | 6 years ago | |
.editorconfig | 6 years ago | |
.gitignore | 6 years ago | |
.gitmodules | 6 years ago | |
.travis.yml | 6 years ago | |
CONTRIBUTING.md | 6 years ago | |
README.md | 6 years ago | |
waf | 6 years ago | |
waf.bat | 6 years ago | |
wscript | 6 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
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.
- Multiple renderers support(OpenGL, GLES, 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 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)
- Open command line
- Navigate to
xash3d-fwgs
directory. - Carefully examine which build options are available:
waf --help
- 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
- Compile:
waf build
- Install:
waf install
Linux
- Examine which build options are available:
./waf --help
- Configure build:
./waf configure --build-type=release --vgui=vgui-dev
- Compile:
./waf build
- Install(optional):
./waf install
Running
- Copy libraries and main executable somewhere, if you're skipped installation stage.
- Copy game files to same directory
- Run
xash3d.exe
/xash3d.sh
/xash3d
depending on which platform you're using.
For additional info, run Xash3D with -help
command line key.