GameController is the official match control software used in RoboCup competitions to manage robot soccer games — including timing, game phases, penalties, and more. This guide covers the setup of the Rust + Tauri version of the GameController, which replaces the older Java-based version previously used in SPL and the Humanoid League.
Platform Notes
This guide assumes a Linux environment with GUI support is available, as GameController requires a graphical interface.
For Windows users:
- On Windows 11, GUI support is built-in via WSLg.
- On Windows 10, or for more control, use tools like XLaunch, as described in the Prerequisites section from here.
For macOS users:
- Install equivalent dependencies using Homebrew.
- GUI behavior and windowing may differ slightly from Linux.
Prerequisites
Install Rust and add Cargo to your shell environment:
curl https://sh.rustup.rs -sSf | shsource $HOME/.cargo/envInstall required system dependencies
sudo apt updatesudo apt install build-essential pkg-config libgtk-3-dev libglib2.0-dev libsoup2.4-dev \libpango1.0-dev libcairo2-dev libwebkit2gtk-4.0-dev libjavascriptcoregtk-4.0-dev \clang libclang-dev llvm-dev(Optional) Install a modern Node.js version
Required if your system Node.js is missing or older than v18
# Remove outdated Node.js if installedsudo apt remove --purge nodejs npmsudo apt autoremove# Install Node Version Manager (nvm)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bashsource ~/.bashrc# Install latest LTS Node.js and activate itnvm install --ltsnvm use --lts
Building and Running GameController
Clone the RoboCup TC GameController repo and move into the folder:
cd ~git clone https://github.com/RoboCup-Humanoid-TC/GameControllercd GameControllerBuild the frontend:
cd frontendnpm cinpm run buildcd ..Build GameController:
cargo build --releaseRun GameController:
./target/release/game_controller_app
Using GameController
- After launching the application, a graphical interface should appear.
- For more detailed usage instructions, refer to the official README.