GameVerseArena is a C++17 games platform with two independently buildable applications:
GameVerseArena, the existing console collection of 14 turn-based board games, including shared player setup, Human/Computer selection, result detection, and an in-memory scoreboard.GameVerseArenaGUI, an SFML 3.1.0 graphical application with a launcher, game library, and a complete Classic Tic-Tac-Toe experience.
Classic Tic-Tac-Toe is the first game playable in the GUI. The other 13 board games remain playable in the console application only, and Ping Pong remains a planned arcade game rather than a playable feature.
- Classic Tic-Tac-Toe
- Numerical Tic-Tac-Toe
- SUS
- 5x5 Tic-Tac-Toe
- Misere Tic-Tac-Toe
- Four-in-a-Row
- 4x4 Tic-Tac-Toe
- Word Tic-Tac-Toe
- Pyramid Tic-Tac-Toe
- Diamond
- Infinity XO
- Ultimate XO
- Memory XO
- Obstacle Tic-Tac-Toe
- CMake 3.28 or newer
- Git (used by CMake FetchContent)
- A C++17 compiler, such as Visual Studio C++ or GNU C++
The graphical target uses SFML 3.1.0. CMake fetches the pinned release from the official SFML repository, so the first configure requires an internet connection and may take several minutes while SFML is downloaded and built. The console sources can still be compiled directly without SFML.
From PowerShell in the repository root:
cmake -S . -B build
cmake --build build --config ReleaseBuild either application individually with:
cmake --build build --config Release --target GameVerseArena
cmake --build build --config Release --target GameVerseArenaGUI
cmake --build build --config Release --target GameVerseArenaTests
ctest --test-dir build --output-on-failureWith a Visual Studio multi-configuration generator, the executables are normally at:
.\build\Release\GameVerseArena.exe
.\build\Release\GameVerseArenaGUI.exeFor a single-configuration generator, they are normally at build\GameVerseArena.exe and build\GameVerseArenaGUI.exe. Runtime GUI assets are copied into an assets directory beside GameVerseArenaGUI.
From a shell in the repository root:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/GameVerseArena
./build/GameVerseArenaGUIThe exact executable suffix and output folder can vary by platform and CMake generator.
When GNU C++ is available, the current source layout can also be built directly from the repository root:
g++ -std=c++17 *.cpp -o games_arena
./games_arenaOn Windows, run games_arena.exe instead.
Word Tic-Tac-Toe loads dic.txt at runtime. The CMake build copies the dictionary beside the built executable. For a direct compiler build, run the program from the repository root so the existing dic.txt is available.
The application entry point is XO_Demo.cpp, and the shared turn-based abstractions are defined in BoardGame_Classes.h. See Current Architecture for the module map and current application flow.
The existing Visual Studio solution and project files remain available for IDE builds.
- Move the pointer over a button to highlight it; click the left mouse button to activate it.
- Use Up and Down to change the selected main-menu item and Enter to activate it.
- Press Escape on Game Library, Settings, or About to return to the main menu.
- Press Escape on the main menu to close the application.
- Resize the window normally; the 16:9 interface view scales while preserving the layout. The practical design size is 960 x 540 or larger, with a default window size of 1280 x 720 and a 60 FPS frame limit.
Choose Play, select Classic Tic-Tac-Toe, complete Player Setup, and start the match. The graphical version supports:
- Human vs Human and Human vs Computer.
- Human choice of X or O; X always opens the round.
- Easy AI (random legal move), Medium AI (win, block, center, corner priority), and unbeatable Hard AI (alpha-beta Minimax).
- Single Game, Best of 3, and Best of 5 matches, with draws tracked separately.
- Next Round, Restart Round, New Match, Rematch, New Setup, and Return to Library flows as appropriate.
Setup is fully keyboard accessible: use Up/Down or Tab to move, Left/Right to change choices, Enter to edit names or activate a control, Backspace to edit, and Escape to go back. During a match, use the arrow keys to select a board cell and Enter or Space to play it. Mouse hover and click are supported throughout. Escape or Back to Library opens a confirmation before discarding an active in-memory match.
No player profile, score history, or other game data is persisted between application runs.