Update the old. A love letter to Source Engine and Valve Software.
Source code is based on TF2 branch's 2018 leak. Don't use it for commercial purposes, as it contains a proprietary stuff that wasn't meant to be open-sourced.
Because SDK does not allow to make huge changes.
This project is using waf buildsystem. If you have waf-related questions look https://waf.io/book
- Android, macOS, FreeBSD, Windows, Linux (glibc, musl) support
- ARM support (except windows)
- 64bit support
- Partial support of modern toolchains
- Fixed many undefined behaviors
- Touchscreen support (even on windows/linux/osx)
- VTF 7.5 support
- PBR materials
- BSP v19-20 with partial v21 support.
- MDL v46-49 support
- Removed useless/unnecessary dependencies
- Achivements work without Steam
- Fixed many bugs
- Server Browser now works without Steam
- SDL3 support (located in SDL3-attempt branch) (Input partially works)
- Fresh viewmodel bob
- Increase map size limits
- Get rid of useless stuff like telemetry (Partially done now)
- Replace proprietary code with open source solutions
- Deferred lighting/shading (First attempt did not compile successfully, need to try again later)
- Port some utilities to Linux and get them interface! (Might not be easy as i thought)
take the following with grain of salt, as some of those might never get realized.
- Replace VGUI2 with RmlUI/Custom GUI
- FMOD support
- Replace DirectX with Vulkan!
- Change VMT syntax!
- Replace VTF with PNG/WEBP!
- Get rid of brushes and convert to mesh-based world (May require next feature)!!
- Replace MDL with GLB and BSP with GLTF (Requires previous feature)!!!
- Replace Hammer's UI with GTK4 and PORT TO LINUX!!!!
- Install
python3 libsdl3-dev libfreetype6-dev libfontconfig1-dev libopenal-dev libjpeg-dev libpng-dev libcurl4-openssl-dev libbz2-dev libedit-dev
. If you want a voice chat support, installlibopus-dev
and then add--enable-opus
argument to WAF.
Install git python gcc gcc-multilib sdl3 freetype2 fontconfig zlib bzip2 libjpeg libpng curl openal opus
.
- Execute
./waf.py configure -T release/debug
(choose one of the release or debug!). In case of errors inspect what went wrong and try to solve it. - After configuration is done successfully, run
./waf.py build
and wait for it to compile and link. In case of errors, you can try:- Reverting to the previous commit
- Wait for the next one, or...
- Grab a stable source code release from "Releases", when available.
- We will now proceed to put them in a structure similar to all of the Source Engine games. Write in terminal
./waf.py install --destdir=
and then write the path of where you want it to be. Put path around quotes in case it has spaces. - Now put your preferred game into the installed path. *DO NOT COPY YOUR PREFERRED GAME "bin" FOLDER'S .so FILES!
- Now go into the installed path, and run "SourceDEFUN".
Required dependencies
- Use
pkg ins python sdl2 freetype2 fontconfig curl pkgconf openal-soft jpeg-turbo png
. - Now, Follow instructions for all OS that has label "(needs contributor!)".
- Download and extract Android NDK r10e from here.
- Download and extract Clang 11 from GitHub or from apt.llvm.org.
- Run
export ANDROID_NDK_HOME="PATH/TO/NDK/android-ndk-r10e"
andexport PATH="PATH/TO/CLANG/bin:$PATH"
orexport PATH="/usr/lib/llvm-11/bin:$PATH"
if you're using llvm.sh. - Add to WAF argument
--togles --android=armeabi-v7a-hard,host,21
.armeabi-v7a-hard
can be replaced withaarch64
for arm64 build, but you need to add--64bits
argument. You can check your architecture by executinguname -m
in Termux.
- Install Xcode frop App Store.
- Install Xcode build tools with
xcode-select --install
command. - Install HomeBrew.
- Run
brew install sdl2 freetype2 fontconfig pkg-config opus libpng libedit
- Now, Follow instructions for all OS that has label "(needs contributor!)".
- Install MSVC 15.9 and Windows SDK from Visual Studio Installer. Or you can install full version of Visual Studio 2017 and use his MSVC 15.9.
- Install Python 3 and add it to Path.
- Build works for some reason only in PowerShell.
- Now, Follow instructions for all OS that has label "(needs contributor!)".
- You need to install Python 3 in order to use a WAF build system.
- Run
waf.py configure -T release/debug
(choose one of the release or debug!) - On windows, run
waf.bat
. - If waf says something like
/usr/bin/env: 'python': No such file or directory
usepython3
prefix before./waf.py
.
To compile as Dedicated server, just add -d
, while configuring engine.
Donate BTC: bc1qnjq92jj9uqjtafcx2zvnwd48q89hgtd6w8a6na
Donate ETH: 0x5d0D561146Ed758D266E59B56e85Af0b03ABAF46
Donate XMR: 48iXvX61MU24m5VGc77rXQYKmoww3dZh6hn7mEwDaLVTfGhyBKq2teoPpeBq6xvqj4itsGh6EzNTzBty6ZDDevApCFNpsJ