Gitlab 2 Player Games -
| Feature | Review | |---------|--------| | No account required | Most games work straight in browser. No login, no ads, no tracking. | | Works on school/work networks | GitLab Pages domains often unblocked where GitHub Pages is restricted. | | Hotseat or same-device play | Perfect for playing with a friend on one laptop/tablet. | | Open source | Code is visible, moddable, and forkable. | | Lightweight | Usually vanilla JS, HTML5 Canvas — runs on old hardware. |
Abstract
Developing a two-player game (digital or web-based) with a partner introduces challenges: code merging, asset conflicts, playtesting, and deployment. GitLab provides a unified solution. This paper presents a reproducible pipeline where two developers can use GitLab’s free tier for version control, issue tracking, CI/CD testing, and even live deployment of browser-based two-player games.
GitLab 2-Player Games is a collection of real-time, two-player web games designed to be played collaboratively or competitively over a shared GitLab environment. The project leverages GitLab's infrastructure (e.g., CI/CD, Pages, or even Merge Requests as game actions) to create a unique, developer-friendly gaming experience.
Whether you're taking a break from code reviews or want to challenge a teammate in Tic-Tac-Toe, Chess, or a custom coding duel — this hub makes it possible.
Could GitLab ever compete with itch.io or Game Jolt? Unlikely, and that's not the goal. The beauty of "gitlab 2 player games" is their ephemeral, ironic nature. They are inside jokes made manifest in code. gitlab 2 player games
However, as WebGPU and WebAssembly mature, we may see more complex 3D two-player games hosted entirely on GitLab Pages. Imagine a lightweight "GitLab Golf" or "CI/CD Pong" tournament.
One thing is certain: The next time your merge request is stuck in "pending," don't refresh the page for the 10th time. Instead, open a second tab, find a friend, and challenge them to a round of Pipeline Panic.
The Board: The game is played on a GitLab Issue Board. The board consists of 3 columns:
The Units: Issues represent units.
Turn Structure: Each turn lasts exactly 60 seconds. Players use standard GitLab actions to perform moves:
This feature utilizes existing GitLab APIs to gamify standard behaviors.
A. The Game Master Bot (CI/CD Pipeline)
A dedicated .gitlab-ci.yml configuration runs a pipeline every minute (cron job) to calculate the game state.
# .gitlab-ci.yml stages: - game_loop
calculate_state: stage: game_loop script: - ./game_engine.sh rules: - if: '$CI_PIPELINE_SOURCE == "schedule"'| Feature | Review | |---------|--------| | No
B. Scoring Logic (Pseudo-code) The bot checks the board state:
C. The Visualizer
A custom GitLab Page reads the issues.json artifact generated by the pipeline. It displays a retro pixel-art map of the current battlefield, showing units moving between columns in real-time.
| Action | GitLab tool | |--------|--------------| | Discuss player 2’s ability | Issue + task list | | Propose new game mechanic | Merge Request description + code suggestions | | Test multiplayer latency | GitLab Pages + two real devices | | Rollback a broken feature | Pipeline logs + revert MR | Abstract Developing a two-player game (digital or web-based)