Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
60c1050
Updated Makefile for compatibility & optimisations
Oct 1, 2019
c3df046
Removing danger costs makes bots less weird in their navigation.
stefanhendriks Oct 2, 2019
b64b86d
More logging with radio
stefanhendriks Oct 2, 2019
f0b7e0f
Take walking into account for reaching destination
stefanhendriks Oct 2, 2019
8613aa6
Started testing on as_oilrig again
stefanhendriks Oct 2, 2019
a6649c8
Re-enable danger cost
stefanhendriks Oct 2, 2019
2ca0716
Optimisation, reduced redundancy and add missing parameters
Feb 20, 2021
b9ef45c
Merge branch 'master' of https://github.com/APGRoboCop/RealBot
Feb 20, 2021
70da662
Linux Build prefers older GCC
Feb 20, 2021
3929979
Update Makefile
Feb 20, 2021
4d3efa1
UMP45 Fix by TokusyuSAT700
Feb 21, 2021
b2498cf
AMBuild support from AoiKagase
Feb 21, 2021
c01f767
Bug fix for newer GCC
Feb 21, 2021
9ea7788
Update todo.txt
Feb 22, 2021
54b94b4
Update todo.txt
Feb 22, 2021
67833b1
Update todo.txt
Feb 22, 2021
b72f9c9
Update todo.txt
Feb 22, 2021
097bf86
Reduced redundancy
Aug 5, 2021
b40564d
Modernised code
Aug 26, 2021
f218dcc
Version Updated
Dec 18, 2021
9d5807d
Non-static members initialised
Dec 18, 2021
15fa328
Performance enhancements
Dec 18, 2021
64f1787
Tiny tweaks
Dec 19, 2021
163ac16
Neatened the scripts
Dec 20, 2021
3a472e4
Converting misled doubles into floats
Feb 25, 2022
7ce1423
Code Modernised
Mar 1, 2022
53077f7
Update dll.cpp
Mar 1, 2022
b4997c9
Tiny fixes
Mar 1, 2022
04772ab
Version 4.0.3-APG ready
Mar 1, 2022
28cca69
Update todo.txt
Mar 1, 2022
394559d
Reducing risk bot stuck in a cluster
Mar 4, 2022
a9c66ea
Fixed CS 1.6 Buy for Five-seveN
Mar 4, 2022
33f94f6
Reduce chances of using pistols
Mar 4, 2022
a7a40d0
Altered BuyCode
Mar 4, 2022
cbfabb1
Experimental changes
Mar 4, 2022
9299daf
Update todo.txt
Mar 15, 2022
00f454d
Attempting fixing the Todos
Apr 2, 2022
c0dc3a8
Experimental tweaks
Apr 15, 2022
f48a54e
TODO added
Apr 15, 2022
6fe6e0a
Experiment refactoring and improved IniParser
Apr 27, 2022
da5ec1b
Update todo.txt
Apr 27, 2022
cacea18
Experimental additional def/implementations etc.
Apr 28, 2022
56e1db3
Update NodeMachine.cpp
Apr 28, 2022
b7cd0f0
Bsp2Rbn experimental proj added
Apr 30, 2022
df71d29
Adding Experimental DuckJump Node and Func
May 1, 2022
f4dc0a2
Node boundaries altered
May 2, 2022
b3ba6e4
Node boundaries readjusted
May 3, 2022
d1d5090
Update NodeDataTypes.h
May 3, 2022
f3b2faa
Node boundaries readjusted
May 4, 2022
52de5f8
Update todo.txt
May 4, 2022
dddfaa8
Updated Makefile Debug
May 4, 2022
03e6cd2
Update util.cpp
May 4, 2022
c2f4f2f
Reverted Node Boundaries
May 5, 2022
06f30c8
Update build.cpp
May 5, 2022
4e86ed7
Version 4.0.5beta2 out
May 5, 2022
58495a5
Merge branch 'master' of https://github.com/APGRoboCop/RealBot
May 5, 2022
a0339cc
Chat and wonder rate min increased
May 6, 2022
3a653be
Update NodeDataTypes.h
May 6, 2022
5d48382
INI and Boundaries readjusted
May 6, 2022
8f8fa1b
Update NodeDataTypes.h
May 6, 2022
50b24d4
Todo updated
May 6, 2022
d316bf5
Bsp2Rbn neatened and adding AMBuild
May 7, 2022
83b6b3d
VS Project adjusted
May 7, 2022
528365b
Update Bsp2Rbn.vcxproj
May 7, 2022
f7ef2bc
Update todo.txt
May 8, 2022
e5adb90
Version v4.0.5-beta3 out
May 10, 2022
3700bb4
AMBuild updated
May 10, 2022
1fbefec
Reverted Node Zone
Oct 22, 2022
3418f61
Added Chat Delay to prevent chat spam
Oct 22, 2022
386933c
converting floats
Oct 22, 2022
bb39de5
Update bot.cpp
Oct 22, 2022
702f02e
Neatened Scripts
Oct 23, 2022
43dd9ec
Reducing sizebuf_t crashes
Nov 2, 2022
b0befcb
Added more delay for bot_cfg_pause_time
Nov 7, 2022
594c72f
Added delay for respawn_time
Nov 7, 2022
2d8ac5f
Added sizebuf_t comment
Nov 7, 2022
acd23e3
AMBuild updated
Dec 10, 2022
f705c42
Removing old projects
Dec 10, 2022
2f2bf9f
Updating AMBuildScript
Jun 4, 2023
ce9bf89
Standard C++ refactoring and small optimisations
Jul 16, 2023
2f2e279
Using newer C++ Standard functions
Jul 30, 2023
d8a67cb
Reduced redundancy
Dec 22, 2023
eb94991
C++ Modernisation
Dec 25, 2023
8ef8a58
Converting doubles into floats
Dec 29, 2023
48c1f53
Version 4.0.5-beta4 released
Feb 19, 2024
30cd4f1
Reducing buffer overflows
Apr 13, 2024
471f754
Repaired rouge snprintf
Sep 5, 2024
6a868e8
Using C++ Algorithms and Modern Enums
Dec 7, 2024
4a804cd
Splitting the NodeMachine implementations
Dec 9, 2024
f124f08
Experimental fixes to bot's navigation
Dec 27, 2024
15c5c33
String modernisation
Mar 27, 2025
b31e679
Update util.cpp
Mar 27, 2025
b1c1898
More optimisations and modernisations
Mar 29, 2025
0ff643c
Adding experimental buildPath Function
Mar 29, 2025
392a3c2
Updated FUNC_FindBreakable
Mar 29, 2025
499f874
Updating headers for missing functions
Mar 29, 2025
8e08392
Improved global coding
Mar 29, 2025
03b4870
Experimental optimisations
May 22, 2025
edb6da8
Experimental Modernisation
May 22, 2025
934cee2
Redundant Condition Check in ChatEngine removed
May 31, 2025
2818764
Improved Conditional Handling
May 31, 2025
2c1f690
CZ Bots should no longer team attack
Aug 1, 2025
b9968f2
Updating AMBuild
Sep 12, 2025
c846b77
Update build.yml
Sep 12, 2025
37996b3
Update build.yml
Sep 12, 2025
9b26ec1
Experimental modernisation
Sep 13, 2025
8e914a3
Small tweaks
Sep 14, 2025
61264f4
Attempting to enhance Shoot Breakable code
Sep 18, 2025
6648e67
More attempts to func_breakable code
Sep 18, 2025
6e58ce0
Neatening code
Sep 18, 2025
0e2bc06
Enhancing bot's function to attack breakable
Sep 21, 2025
8b2e4a5
Update todo.txt
Sep 21, 2025
f3fbabe
Modernising createPath (May need to revert)
Sep 26, 2025
a44376b
Version 4.0.5-beta released!
Oct 3, 2025
f6727b0
Update build.cpp
Oct 3, 2025
7d6e4fc
Adding LTO
Dec 7, 2025
69752b6
Optimising performance - may need to revert
Jan 19, 2026
c3e487e
Adjusting bot's aim on func_breakable
Jan 22, 2026
caa9abf
Improving attacking breakable method
Feb 1, 2026
539cb07
Improving on unstuck code and djumping
Feb 2, 2026
93672f5
Modernising buildPath
Feb 3, 2026
a467161
Nodes and Exp compressed by sparse serialisation
Apr 9, 2026
d287b90
Update build.yml
APGRoboCop Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
175 changes: 175 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
name: Build

on: ["push", "workflow_dispatch"]

jobs:
build_main:
name: Build for ${{ matrix.os_short }}
runs-on: ${{ matrix.os_version }}
container: ${{ matrix.container }}

# skip build on '[ci skip]'
if: "!contains(github.event.head_commit.message, '[ci skip]')"

strategy:
fail-fast: false
matrix:
os:
- linux
- windows-x32
include:
# Built inside Debian 12 (glibc 2.36) rather than on the runner image.
# ubuntu-latest is now 24.04 (glibc 2.39) and produces binaries that
# will NOT load on a Debian 12 server. Bookworm-built binaries also
# run on Debian 13, so this is the safe direction.
- os: linux
os_short: linux
os_version: ubuntu-latest
container: debian:bookworm
package_ext: tar.gz
dbg_ext: dbg
cc: clang
cxx: clang++
vs_arch: unused
am_arch: x86

- os: windows-x32
os_short: win32
os_version: windows-latest
container: ''
package_ext: zip
dbg_ext: pdb
cc: not-used
cxx: not-used
vs_arch: x32
am_arch: x86

steps:
# Container runs as root, so no sudo. git and ca-certificates let
# actions/checkout do a real clone (and therefore submodules) rather than
# falling back to a tarball download.
- name: Install (Linux)
if: runner.os == 'Linux'
run: |
dpkg --add-architecture i386
apt-get update
apt-get install -y --no-install-recommends \
clang lld \
gcc-multilib g++-multilib libc6-dev-i386 \
python3 python3-pip python3-setuptools python3-wheel \
git ca-certificates binutils file
echo "CC=${{ matrix.cc }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV

- name: Add msbuild to PATH (Windows)
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v3

- name: Install (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
:: See https://github.com/microsoft/vswhere/wiki/Find-VC
for /f "usebackq delims=*" %%i in (`vswhere -latest -property installationPath`) do (
call "%%i"\Common7\Tools\vsdevcmd.bat -arch=${{ matrix.vs_arch }} -host_arch=x64
)

:: Loop over all environment variables and make them global.
for /f "delims== tokens=1,2" %%a in ('set') do (
echo>>"%GITHUB_ENV%" %%a=%%b
)

# Windows only: the Debian container already has python3, and setup-python
# would pull a build linked against the runner's newer glibc.
- name: Setup Python (Windows)
if: runner.os == 'Windows'
uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Setup ambuild
shell: bash
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
python3 -m pip install --break-system-packages --upgrade pip wheel
python3 -m pip install --break-system-packages \
git+https://github.com/alliedmodders/ambuild
else
python -m pip install --upgrade pip wheel
python -m pip install git+https://github.com/alliedmodders/ambuild
fi

- name: Fetch RealBot
uses: actions/checkout@v5
with:
path: realbot
submodules: recursive

# Catches a failed submodule clone here, with a clear message, rather than
# as a confusing configure error later.
- name: Verify checkout
shell: bash
working-directory: realbot
run: |
ls -la
[ -f configure.py ] || { echo "::error::configure.py missing"; exit 1; }
[ -f AMBuildScript ] || { echo "::error::AMBuildScript missing"; exit 1; }

- name: Build Files
shell: bash
working-directory: realbot
run: |
mkdir post
cd post

export AM_ARCH=${{ matrix.am_arch }}

python3 ../configure.py --symbol-files --enable-optimize

ambuild

# Fails the build if the plugin needs a glibc newer than the deployment
# target. Worth having: when a Metamod plugin fails to dlopen() on an ABI
# mismatch, the server logs nothing at all - it just doesn't load.
- name: Check glibc ABI (Linux)
if: runner.os == 'Linux'
shell: bash
working-directory: realbot
run: |
MAXVER="2.36" # Debian 12. Raise only when the servers move forward.
FOUND=0
while IFS= read -r so; do
FOUND=1
need=$(objdump -T "$so" 2>/dev/null | grep -oP 'GLIBC_[0-9.]+' \
| sed 's/GLIBC_//' | sort -uV | tail -1)
echo "$so -> glibc ${need:-none}"
if [ -n "$need" ] && \
[ "$(printf '%s\n%s\n' "$MAXVER" "$need" | sort -V | tail -1)" != "$MAXVER" ]; then
echo "::error file=$so::requires glibc $need, target is $MAXVER"
exit 1
fi
done < <(find post -name '*.so' -type f)
if [ "$FOUND" != "1" ]; then
echo "::error::No .so files found to check - did the build produce anything?"
exit 1
fi

# Replaces benjlevesque/short-sha, which still runs on Node.js 20.
- name: Short SHA
id: short-sha
shell: bash
run: echo "sha=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"

- name: Upload Binary
uses: actions/upload-artifact@v7
with:
name: realbot-${{ matrix.os_short }}-${{ steps.short-sha.outputs.sha }}
path: |
realbot/post/*

- name: Upload Debug Symbols
uses: actions/upload-artifact@v7
with:
name: realbot-dbgsym-${{ matrix.os_short }}-${{ steps.short-sha.outputs.sha }}
path: |
realbot/post/**/*.${{ matrix.dbg_ext }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
x64/
x86/
build/
build_linux/
bld/
[Bb]in/
[Oo]bj/
Expand Down Expand Up @@ -216,3 +217,5 @@ CMakeLists.txt
cmake-build-debug/

*.o
realbot_mm.so
apg-load
Loading