From 68f95146573036623f18da4f885b7e0a11952d2a Mon Sep 17 00:00:00 2001 From: Jasper Geurtz Date: Sat, 7 Nov 2026 00:10:32 +0100 Subject: [PATCH 1/2] Support OpenBW client connection on macOS (including Apple Silicon) --- build_with_openbw.md | 25 ++++++++++++++++--- pom.xml | 8 +++--- .../java/bwapi/ClientConnectionPosix.java | 22 +++++++++++----- 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/build_with_openbw.md b/build_with_openbw.md index 8df3f316..5937f959 100644 --- a/build_with_openbw.md +++ b/build_with_openbw.md @@ -26,11 +26,28 @@ unzip starcraft.zip "maps/BroodWar/ICCup/ICCup Destination 1.1.scx" BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" ./bin/BWAPILauncher ``` -Compiling and running openbw on macos with client support (not working): +Compiling and running openbw on macos with client support: ```bash -brew install cmake sdl2 sdl2_mixer gcc +# Download build deps +brew install cmake sdl2 sdl2_mixer + +# Build openbw with client support +git clone https://github.com/basil-ladder/openbw +git clone -b linux-client-support https://github.com/basil-ladder/bwapi +cd bwapi +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENBW_DIR=../../openbw -DOPENBW_ENABLE_UI=1 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +make -j4 + +# Download runtime deps +curl -L "https://web.archive.org/web/20250823150201id_/https://www.cs.mun.ca/~dchurchill/starcraftaicomp/files/Starcraft_1161.zip" -o starcraft.zip +unzip starcraft.zip patch_rt.mpq BROODAT.MPQ STARDAT.MPQ +mv patch_rt.mpq Patch_rt.mpq && mv BROODAT.MPQ BrooDat.mpq && mv STARDAT.MPQ StarDat.mpq + +# Run openbw using the map: Destination 1.1.scx +unzip starcraft.zip "maps/BroodWar/ICCup/ICCup Destination 1.1.scx" -cmake .. -D CMAKE_C_COMPILER=gcc-11 -D CMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Release -DOPENBW_DIR=../../openbw -DOPENBW_ENABLE_UI=1 -make -j4 +BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" OPENBW_ENABLE_UI=1 ./bin/BWAPILauncher ``` \ No newline at end of file diff --git a/pom.xml b/pom.xml index b2848cb1..0dab66e9 100644 --- a/pom.xml +++ b/pom.xml @@ -144,14 +144,14 @@ - no.fiken.oss.junixsocket + com.kohlschutter.junixsocket junixsocket-common - 1.0.2 + 2.10.1 - no.fiken.oss.junixsocket + com.kohlschutter.junixsocket junixsocket-native-common - 1.0.2 + 2.10.1 diff --git a/src/main/java/bwapi/ClientConnectionPosix.java b/src/main/java/bwapi/ClientConnectionPosix.java index 7c2685d9..b74cec76 100644 --- a/src/main/java/bwapi/ClientConnectionPosix.java +++ b/src/main/java/bwapi/ClientConnectionPosix.java @@ -3,6 +3,7 @@ import com.sun.jna.LastErrorException; import com.sun.jna.Library; import com.sun.jna.Native; +import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.platform.linux.Fcntl; import com.sun.jna.platform.linux.LibRT; @@ -24,7 +25,7 @@ class ClientConnectionPosix implements ClientConnection { interface LibCExt extends LibC { LibCExt INSTANCE = Native.load(LibCExt.class); - Pointer mmap(Pointer addr, int length, int prot, int flags, int fd, int offset) throws LastErrorException; + Pointer mmap(Pointer addr, NativeLong length, int prot, int flags, int fd, NativeLong offset) throws LastErrorException; } interface PosixShm extends Library { @@ -57,17 +58,26 @@ public void disconnect() { public WrappedBuffer getGameTable() { int fd = PosixShm.INSTANCE.shm_open("/bwapi_shared_memory_game_list", Fcntl.O_RDWR, 0); if (fd < 0) throw new IllegalStateException("SHM not found"); - Pointer gameTableView = LibCExt.INSTANCE.mmap(Pointer.NULL, GameTable.SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - return new WrappedBuffer(gameTableView, GameTable.SIZE); + try { + Pointer gameTableView = LibCExt.INSTANCE.mmap(Pointer.NULL, new NativeLong(GameTable.SIZE), PROT_READ | PROT_WRITE, MAP_SHARED, fd, new NativeLong(0)); + return new WrappedBuffer(gameTableView, GameTable.SIZE); + } finally { + LibCExt.INSTANCE.close(fd); + } } @Override public WrappedBuffer getSharedMemory(int serverProcID) { String sharedMemoryName = "/bwapi_shared_memory_" + serverProcID; try { - Pointer mapFileView = LibCExt.INSTANCE.mmap(Pointer.NULL, ClientData.GameData.SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, LibRT.INSTANCE.shm_open(sharedMemoryName, Fcntl.O_RDWR, 0), - 0); - return new WrappedBuffer(mapFileView, ClientData.GameData.SIZE); + int fd = PosixShm.INSTANCE.shm_open(sharedMemoryName, Fcntl.O_RDWR, 0); + if (fd < 0) throw new IllegalStateException("SHM not found"); + try { + Pointer mapFileView = LibCExt.INSTANCE.mmap(Pointer.NULL, new NativeLong(ClientData.GameData.SIZE), PROT_READ | PROT_WRITE, MAP_SHARED, fd, new NativeLong(0)); + return new WrappedBuffer(mapFileView, ClientData.GameData.SIZE); + } finally { + LibCExt.INSTANCE.close(fd); + } } catch (Exception e) { throw new SharedMemoryConnectionException(sharedMemoryName, e); } From 8e6f24fe9584ad96fcfeab6073fb06afde731cc3 Mon Sep 17 00:00:00 2001 From: Jasper Geurtz Date: Sat, 7 Nov 2026 09:44:16 +0100 Subject: [PATCH 2/2] Enable lightweight Linux OpenBW E2E GitHub Action (MarineHell vs SittingDuck) --- .github/workflows/e2e-linux.yml | 124 +++++++++++++++++++++++ .github/workflows/e2e-linux.yml.disabled | 50 --------- build_with_openbw.md | 24 ++--- it/(2)Destination.scx | Bin 0 -> 76990 bytes src/test/java/marinehell/MarineHell.java | 14 ++- 5 files changed, 143 insertions(+), 69 deletions(-) create mode 100644 .github/workflows/e2e-linux.yml delete mode 100644 .github/workflows/e2e-linux.yml.disabled create mode 100644 it/(2)Destination.scx diff --git a/.github/workflows/e2e-linux.yml b/.github/workflows/e2e-linux.yml new file mode 100644 index 00000000..b06df1dc --- /dev/null +++ b/.github/workflows/e2e-linux.yml @@ -0,0 +1,124 @@ +name: E2E OpenBW Linux + +on: + - pull_request + +jobs: + e2e: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + cache: maven + + - name: Cache OpenBW runtime and MPQs + id: cache-openbw + uses: actions/cache@v4 + with: + path: openbw-runtime + key: openbw-linux-v2 + + - name: Build OpenBW and fetch MPQs + if: steps.cache-openbw.outputs.cache-hit != 'true' + run: | + sudo apt-get update + sudo apt-get install -y clang libsdl2-dev libsdl2-mixer-dev + + git clone --depth 1 https://github.com/basil-ladder/openbw + git clone --depth 1 -b linux-client-support https://github.com/basil-ladder/bwapi + sed -i 's/switch *(command\.type)/switch ((UnitCommandType) command.type)/g' bwapi/bwapi/include/BWAPI/Client/CommandTemp.h + cmake -S bwapi -B bwapi/build \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_CXX_FLAGS="-include cstdint" \ + -DCMAKE_BUILD_TYPE=Release \ + -DOPENBW_DIR="$PWD/openbw" \ + -DOPENBW_ENABLE_UI=1 \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + cmake --build bwapi/build --target BWAPILauncher -j$(nproc) + + mkdir -p openbw-runtime/bin openbw-runtime/lib + cp bwapi/build/bin/BWAPILauncher openbw-runtime/bin/ + cp bwapi/build/lib/*.so openbw-runtime/lib/ + ldd bwapi/build/lib/libOpenBWData.so | awk '/=> \// {print $3}' | grep -vE '/(libc|libm|libmvec|libdl|libpthread|librt|libgcc_s|libstdc\+\+|ld-linux)(\.so|-)' | xargs -r cp -L -t openbw-runtime/lib/ + + git clone --depth 1 https://github.com/dgant/mpqs + cp mpqs/STARDAT.MPQ openbw-runtime/StarDat.mpq + cp mpqs/BROODAT.MPQ openbw-runtime/BrooDat.mpq + cp mpqs/patch_rt.mpq openbw-runtime/Patch_rt.mpq + + - name: Compile JBWAPI and test bots + run: | + mvn -B test-compile dependency:build-classpath -Dmdep.outputFile=cp.txt --file pom.xml + javac -cp "target/classes:$(cat cp.txt)" -d target/test-classes it/bots/SittingDuck/src/main/java/SittingDuck.java + + - name: Run MarineHell vs SittingDuck match + run: | + mkdir -p openbw-runtime/maps openbw-runtime/bwapi-data + cp "it/(2)Destination.scx" "openbw-runtime/maps/(2)Destination.scx" + + cat << 'EOF' > openbw-runtime/bwapi-data/bwapi.ini + [ai] + ai = NULL + ai_dbg = NULL + + [auto_menu] + auto_menu = LAN + pause_dbg = OFF + lan_mode = Local Area Network (UDP) + auto_restart = OFF + map = maps/(2)Destination.scx + mapiteration = Random + race = Terran + enemy_count = 1 + enemy_race = Terran + game_type = MELEE + wait_for_min_players = 2 + wait_for_max_players = 2 + wait_for_time = 60000 + + [config] + holiday = OFF + shared_memory = ON + show_warnings = YES + EOF + + BOT_CP="$PWD/target/classes:$PWD/target/test-classes:$(cat cp.txt)" + + cd openbw-runtime + export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH:-}" + rm -rf /tmp/openbw /tmp/bwapi_socket_* /dev/shm/bwapi_shared_memory_* /tmp/launcher1.log /tmp/launcher2.log /tmp/duck.log /tmp/marinehell.log + + BWAPI_CONFIG_AUTO_MENU__CHARACTER_NAME="SittingDuck" OPENBW_ENABLE_UI=0 ./bin/BWAPILauncher > /tmp/launcher1.log 2>&1 & + L1_PID=$! + + java -cp "$BOT_CP" SittingDuck > /tmp/duck.log 2>&1 & + B1_PID=$! + + for i in $(seq 1 30); do + if grep -q "Connected" /tmp/duck.log 2>/dev/null; then + echo "SittingDuck connected!" + break + fi + sleep 0.5 + done + + BWAPI_CONFIG_AUTO_MENU__CHARACTER_NAME="MarineHell" OPENBW_ENABLE_UI=0 ./bin/BWAPILauncher > /tmp/launcher2.log 2>&1 & + L2_PID=$! + + timeout 60 java -cp "$BOT_CP" marinehell.MarineHell | tee /tmp/marinehell.log || true + kill $L1_PID $L2_PID $B1_PID 2>/dev/null || true + + if ! grep -q "Hello from JBWAPI!" /tmp/launcher1.log /tmp/launcher2.log || ! grep -q "Game ended! Winner: true" /tmp/marinehell.log; then + echo "=== launcher1.log ===" && cat /tmp/launcher1.log || true + echo "=== launcher2.log ===" && cat /tmp/launcher2.log || true + echo "=== duck.log ===" && cat /tmp/duck.log || true + exit 1 + fi diff --git a/.github/workflows/e2e-linux.yml.disabled b/.github/workflows/e2e-linux.yml.disabled deleted file mode 100644 index 00dfa614..00000000 --- a/.github/workflows/e2e-linux.yml.disabled +++ /dev/null @@ -1,50 +0,0 @@ -name: Test Linux - -on: - - pull_request - -jobs: - e2e: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 8 - uses: actions/setup-java@v2 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - name: Build with Maven - run: mvn -B package --file pom.xml - - - name: Setup and launch openbw - run: | - sudo apt-get update - sudo apt-get install cmake libsdl2-dev libsdl2-mixer-dev - - git clone https://github.com/basil-ladder/openbw - git clone -b linux-client-support https://github.com/basil-ladder/bwapi - cd bwapi - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENBW_DIR=../../openbw -DOPENBW_ENABLE_UI=1 - make -j4 - - curl http://www.cs.mun.ca/~dchurchill/starcraftaicomp/files/Starcraft_1161.zip -o starcraft.zip - unzip starcraft.zip patch_rt.mpq BROODAT.MPQ STARDAT.MPQ - mv patch_rt.mpq Patch_rt.mpq && mv BROODAT.MPQ BrooDat.mpq && mv STARDAT.MPQ StarDat.mpq - unzip starcraft.zip "maps/BroodWar/ICCup/ICCup Destination 1.1.scx" - - BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" ./bin/BWAPILauncher& - BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" ./bin/BWAPILauncher& - - - name: Build & Run test bots - run: | - mvn install -DskipTests - mvn -f it/bots/pom.xml package - - java -jar it/bots/SittingDuck/target/SittingDuck-*-jar-with-dependencies.jar & - sleep 3 - java -jar it/bots/jbwapibot/target/MarineHell-*-jar-with-dependencies.jar | grep "Hello from JBWAPI!" || exit 1 diff --git a/build_with_openbw.md b/build_with_openbw.md index 5937f959..eff22363 100644 --- a/build_with_openbw.md +++ b/build_with_openbw.md @@ -16,14 +16,11 @@ cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENBW_DIR=../../openbw -DOPENBW_ENABLE_UI make -j4 # Download runtime deps -curl http://www.cs.mun.ca/~dchurchill/starcraftaicomp/files/Starcraft_1161.zip -o starcraft.zip -unzip starcraft.zip patch_rt.mpq BROODAT.MPQ STARDAT.MPQ -mv patch_rt.mpq Patch_rt.mpq && mv BROODAT.MPQ BrooDat.mpq && mv STARDAT.MPQ StarDat.mpq +git clone --depth 1 https://github.com/dgant/mpqs +cp mpqs/patch_rt.mpq Patch_rt.mpq && cp mpqs/BROODAT.MPQ BrooDat.mpq && cp mpqs/STARDAT.MPQ StarDat.mpq -# Run openbw using the map: Destination 1.1.scx -unzip starcraft.zip "maps/BroodWar/ICCup/ICCup Destination 1.1.scx" - -BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" ./bin/BWAPILauncher +# Run openbw using the map: (2)Destination.scx +BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="it/(2)Destination.scx" ./bin/BWAPILauncher ``` Compiling and running openbw on macos with client support: @@ -42,12 +39,9 @@ cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENBW_DIR=../../openbw -DOPENBW_ENABLE_UI make -j4 # Download runtime deps -curl -L "https://web.archive.org/web/20250823150201id_/https://www.cs.mun.ca/~dchurchill/starcraftaicomp/files/Starcraft_1161.zip" -o starcraft.zip -unzip starcraft.zip patch_rt.mpq BROODAT.MPQ STARDAT.MPQ -mv patch_rt.mpq Patch_rt.mpq && mv BROODAT.MPQ BrooDat.mpq && mv STARDAT.MPQ StarDat.mpq - -# Run openbw using the map: Destination 1.1.scx -unzip starcraft.zip "maps/BroodWar/ICCup/ICCup Destination 1.1.scx" +git clone --depth 1 https://github.com/dgant/mpqs +cp mpqs/patch_rt.mpq Patch_rt.mpq && cp mpqs/BROODAT.MPQ BrooDat.mpq && cp mpqs/STARDAT.MPQ StarDat.mpq -BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="maps/BroodWar/ICCup/ICCup Destination 1.1.scx" OPENBW_ENABLE_UI=1 ./bin/BWAPILauncher -``` \ No newline at end of file +# Run openbw using the map: (2)Destination.scx +BWAPI_CONFIG_AUTO_MENU__RACE=Terran BWAPI_CONFIG_AUTO_MENU__MAP="it/(2)Destination.scx" OPENBW_ENABLE_UI=1 ./bin/BWAPILauncher +``` diff --git a/it/(2)Destination.scx b/it/(2)Destination.scx new file mode 100644 index 0000000000000000000000000000000000000000..9b7970dddb5b60d8f3d9db08d69aae4fb93a6254 GIT binary patch literal 76990 zcmV(sK<&RxP*EBn0002KECB!j00RJ?>;M3sECB!j1ONa60000Y<+X<6(0i^iCZT;I zs>Hg^Quh<%EC+(QSapwqQ6y6V9D(ToWY(*j-bJw84Vt)L<#3pGLX3O97waC-`-F}~ z4Z!F}SaJX|=~>$q2a+59e7(Q9*QH5$jQIyj6T${(uBNNhuypl`kKNU*KCdILnpY#C zqU(*{x8N6<9QWuO>(M#(4;u!LyF*j;by2&`u@Umrv`7i!F)n1;L^OPc({+ruslgh; zeKKDV|KU=#IzKfJ$(zKn2*+f(1ucTnpBRT(n`QxR9xqDs75E!QRgrE2EYoHiG9AKkppBL;5LFAmm~FLf#_W0EPBmj$ zf`>kBze|QCToJmpyV#k;dCWbnB+*d2v6*C$kzK05vQd33nPj5e@hnBqO$ z+W_Ko%XxfAWInBKs`WhZxrBu#hDX*C9(mLv^Ta!}A zwi3FwP@R5RBy$;(#A(^4__vUbNX{&Ah3ha@A*0TOtx6U*kZn5l-e?(~@BlVGy&3LvXbDb!MJ zGcS}R0t4r6t5_$!w@%m)qX1@(K!7f`JrU#vCL8NQ8|NM&PoWTCI&t*-JW~d2*BfYo zhMWJrSP?3tK?%BvKE%XC%Y_k&dfFAyS^h2996E6k;Z>u|gGmB3E#e2F;x#qcm`AEjK!Z6`B6{?P3J%0Ar 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
    CWq0VI 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 literal 0 HcmV?d00001 diff --git a/src/test/java/marinehell/MarineHell.java b/src/test/java/marinehell/MarineHell.java index bdf48135..ff1be98c 100644 --- a/src/test/java/marinehell/MarineHell.java +++ b/src/test/java/marinehell/MarineHell.java @@ -72,7 +72,7 @@ public void onStart() { BWTA.analyze(); int i = 0; - System.out.printf("Map name: %s; Map file name: %s\n", game.mapName(), game.mapFileName()); + System.out.printf("Map name: %s; Map file name: %s; Race: %s; Units: %d\n", game.mapName(), game.mapFileName(), self.getRace(), self.getUnits().size()); // Add a DrawShape call to ensure this doesn't block game.drawCircleScreen(new Position(200, 200), 3, Color.Black); @@ -170,8 +170,9 @@ public void onFrame() { // patch if (myUnit.getType().isWorker() && myUnit.isIdle()) { boolean skip = false; - if (bunker == null && bunkerBuilder != null && myUnit.equals(bunkerBuilder) - && barracks.isEmpty() == false) { + if ((bunker == null && bunkerBuilder != null && myUnit.equals(bunkerBuilder) + && barracks.isEmpty() == false) + || (myUnit.equals(searcher) && searchingScv > 0)) { skip = true; } @@ -283,7 +284,7 @@ public void onFrame() { for (BaseLocation b : BWTA.getBaseLocations()) { // If this is a possible start location, - if (b.isStartLocation()) { + if (b.isStartLocation() && !b.getTilePosition().equals(self.getStartLocation())) { baseLocations.add(b); } @@ -399,6 +400,11 @@ public void onFrame() { // game.drawTextScreen(10, 25, units.toString()); } + @Override + public void onEnd(boolean isWinner) { + System.out.println("Game ended! Winner: " + isWinner); + } + public static void main(String[] args) { new MarineHell().run(); }