• Stars
    star
    1,495
  • Rank 31,403 (Top 0.7 %)
  • Language
    C
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Xash3D FWGS engine.

Xash3D FWGS Engine

GitHub Actions 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.
  • Voice support.
  • External filesystem module like in GoldSrc engine.
  • External vgui support module.
  • PNG image format support.
  • A set of small improvements, without broken compatibility.

Planned fork features

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

Installation & Running

  1. Get Xash3D FWGS binaries: you can use testing build or you can compile engine from source code.
  2. Copy engine binaries to some directory.
  3. Copy valve directory from Half-Life to directory with engine binaries. If your CPU is NOT x86 compatible or you're running 64-bit version of the engine, you may want to compile Half-Life SDK. This repository contains our fork of HLSDK and restored source code for some of the mods. Not all of them, of course. You still needed to copy valve directory as all game resources located there.
  4. Run the main executable (xash3d.exe or AppImage).

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

If your CPU is x86 compatible, we are building 32-bit code by default. This was done to maintain 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!

If your CPU is NOT x86 compatible or you decided build 64-bit version of engine, you may want to compile Half-Life SDK. This repository contains our fork of HLSDK and restored source code for some of the mods. Not all of them, of course.

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

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

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
  5. Compile: waf build
  6. Install: waf install --destdir=c:/path/to/any/output/directory

Linux

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.

  1. Examine which build options are available: ./waf --help
  2. Configure build: ./waf configure -T release (You need to pass -8 to compile 64-bit engine on 64-bit x86 processor)
  3. Compile: ./waf build
  4. Install(optional): ./waf install --destdir=/path/to/any/output/directory

More Repositories

1

xash3d

DEPRECATED in favor of https://github.com/FWGS/xash3d-fwgs. Only bugfixes are accepted.
C
549
star
2

hlsdk-portable

Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
C++
260
star
3

xash3d-android-project

Xash3D Android Project for NDK.
Java
222
star
4

nanogl

OpenGL 1.x to OpenGL ES 1.x wrapper (extracted from Quake 2 port)
C++
39
star
5

halflife

Half-Life 1 engine based games (deprecated. See hlsdk-xash3d repo)
C++
33
star
6

xash3d-deploy

Autobuilds
33
star
7

xash-extras

Extras files for Xash3D FWGS engine. Includes textures for WON-style menu, some recommended configs, etc
31
star
8

mainui_cpp

Main menu UI toolkit for Xash3D FWGS engine
C++
31
star
9

Husky

MOVED TO https://git.sr.ht/~captainepoch/husky
Kotlin
25
star
10

wsproxy

websocket tcp/udp proxy (based on websockify-c)
C
12
star
11

XashXT

XashXT Linux Port (WIP)
C++
10
star
12

xashds-android

Android dedicated server with x86 dynamic translator and dll support
Java
9
star
13

xashxt-fwgs

XashXT
C++
8
star
14

QuakeRemakeDevkit

Crossplatform port of Quake Remake game
C++
8
star
15

waifu

Waf build system with additional experimental tools by FWGS
Python
8
star
16

vgui-dev

vgui_support dependencies
C++
7
star
17

UMHLT

UnkleMike's VHLT (untested)
C++
7
star
18

SpiritOfHalfLife

Latest version of SoHL ported to Linux/Android
C++
7
star
19

paranoia_toolkit

Paranoia 1 Source Code fork
C++
7
star
20

pymaster

Master server written in Python. Replacement for HLMaster
Python
7
star
21

vgui_support

VGUI1 support module for Xash3D FWGS
C++
7
star
22

quakewrapper

C++
5
star
23

xash3d-android-tools-toolchain

Toolchain from gcc-termux. Removed termux dependency, but may still depend on android-5
C
5
star
24

stubserver

Pure stub server implementation
C
5
star
25

mod-sample

Sample android project for mod
Java
5
star
26

microndk

Makefile collection to emulate ndk on standalone toolchains for xash3d builds
C
4
star
27

filesystem_stdio_xash

Experiment to implement Valve's filesystem_stdio over Xash3D filesystem. USELESS, but fixes some problems with SC5.0
C++
4
star
28

regamelite

mirror of gitlab repo
C++
4
star
29

Xash3DArchive

Unkle Mike's archive of Xash3D builds from 2007 to it's final release in 2019. (and custom patches archive in branches)
C++
4
star
30

fwgs-artwork

Various artwork done by different artists for Flying With Gauss
4
star
31

fwgs.github.io_deprecated

CSS
3
star
32

SoHL-android

Android project files for Spirit of Half-Life port
Java
3
star
33

ndk-gcc13

Overlay for android-ndk-r10 with gcc-13 compiler (may be used standalone with waifu/xcompile)
C
3
star
34

xash3d-android-tools-gdb

GDB from AIDE NDK with lauch script
Shell
3
star
35

xash3d-sailfish

Xash3D FWGS SailfishOS port
2
star
36

libvinterface

Experiments with loading libraries with Valve's interface.
C++
2
star
37

xash3d-tizen-project

Tizen project for Xash3D FWGS engine
CMake
2
star
38

quakeremake

Crossplatform port of original Quake Remake mod with modern Xash3D FWGS build
C++
2
star
39

shtudio

A minimal MSVC6 compiler
2
star
40

vgui_support_bin

VGUI support backend binaries
1
star
41

xash3d-android-tools-sysroot

Basic sysroot to build xash3d on android (arm only)
C
1
star
42

fwgs.github.io

FWGS website
HTML
1
star
43

http-folder-uploader

Simple http server for managing data folder on restricted android environment
C
1
star
44

dllemu

DLL loader based on mplayer win32codecs code
C
1
star
45

libfontrenderer

An abstraction layer on the top of FreeType, Win32 API or stb_truetype, developed for mainui_cpp.
1
star
46

naturalselection

Natural Selection
C++
1
star