GameController Setup

Setup instructions for GameController.
Kim Khang Hoang GitHub avatar
Updated 28 June 2025

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

  1. Install Rust and add Cargo to your shell environment:

    curl https://sh.rustup.rs -sSf | sh
    source $HOME/.cargo/env
  2. Install required system dependencies

    sudo apt update
    sudo 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
  3. (Optional) Install a modern Node.js version

    Required if your system Node.js is missing or older than v18

    # Remove outdated Node.js if installed
    sudo apt remove --purge nodejs npm
    sudo apt autoremove
    # Install Node Version Manager (nvm)
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
    source ~/.bashrc
    # Install latest LTS Node.js and activate it
    nvm install --lts
    nvm use --lts

Building and Running GameController

  1. Clone the RoboCup TC GameController repo and move into the folder:

    cd ~
    git clone https://github.com/RoboCup-Humanoid-TC/GameController
    cd GameController
  2. Build the frontend:

    cd frontend
    npm ci
    npm run build
    cd ..
  3. Build GameController:

    cargo build --release
  4. Run 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.
NUbots acknowledges the traditional custodians of the lands within our footprint areas: Awabakal, Darkinjung, Biripai, Worimi, Wonnarua, and Eora Nations. We acknowledge that our laboratory is situated on unceded Pambalong land. We pay respect to the wisdom of our Elders past and present.
Copyright © 2025 NUbots - CC-BY-4.0
Deploys by Netlify