Skip to content

tschumann/basis

Repository files navigation

Basis

Something like Spirit of Half-Life. The intent is to add more features to the Half-Life SDK and better documenting the engine's features while maintaining the same style.

How to fork this without using GitHub's forking

# clone the repo
git clone --mirror https://github.com/tschumann/basis
cd basis
# push the checkout of Basis into a repo that you have created
git push --mirror https://github.com/you/basis-mirror

# clone your repo
git clone https://github.com/you/repo
# create a new remote that points to Basis
git remote add basis https://github.com/tschumann/basis
# pull and merge the latest changes from Basis
git pull basis master

Getting started

Clone and get the submodules.

git clone https://github.com/tschumann/basis
git submodule init
git submodule update

Change the values in settings.bat/settings.ps1/settings.sh as required.

Build all the required projects.

Windows Git Bash:

MSYS_NO_PATHCONV=1 cmd /c init.bat

Compiling

Build the code and assets.

Windows Git Bash:

MSYS_NO_PATHCONV=1 cmd /c build.bat

Linux bash:

sudo apt-get install libgl-dev
cd linux
make

Cleaning

Windows Git Bash:

powershell ./clean.ps1
MSYS_NO_PATHCONV=1 cmd /c clean.bat

Linux bash:

./clean.sh

Tests

Run the unit tests:

powershell ./test.ps1

Updating Steamworks SDK

The current required version of the Steamworks SDK is 1.53a

The version of the Steamworks SDK to build with needs to match steamapps/common/Half-Life/steam_api.dll: go to https://partner.steamgames.com/downloads/list and find the version whose sdk\redistributable_bin\steam_api.dll has the same version as steamapps/common/Half-Life/steam_api.dll

Copy sdk/redistributable_bin/steam_api.lib to lib/public/, copy sdk/redistributable_bin/linux32/libsteam_api.so to linux/ and copy sdk/public/steam/*.h to public/steam/

Pulling in upstream changes

Pull in the latest changes from https://github.com/ValveSoftware/halflife

Windows Git Bash:

powershell ./update.ps1
MSYS_NO_PATHCONV=1 cmd /c update.bat

Linux bash:

./update.sh