Game of Ur 0.3.3
This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.
Loading...
Searching...
No Matches
Game of Ur Project

Project Description

Introduction

This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.

Game of Ur is a competitive, two-player board game. The player who moves all 5 of their pieces to the end of the course first, wins the game. The variant implemented in this adaptation is based on a paper by Irving Finkel. See the game design document for more information.

Documentation

Documentation for this game and its engine is available on this project's github pages.

Motivation

I spent 2023-2024 studying C++, OpenGL, SDL, and 3D graphics by following the tutorials on learncpp, Lazy Foo, and Learn OpenGL among others. With this project, I hope to both cement and demonstrate my newly acquired skills.

I decided against making an original game because I wanted to focus on the technical aspects of game development, and not on game design. Adapting an existing game seemed like a good way to limit the scope of my first project.

Installation

Note that at the moment the project is only available on Windows. I have not yet attempted to run or build it on any other platform.

Pre-built executable

The latest build of the project can be downloaded from this project's releases page.

Once downloaded, the game zip can be extracted to any location of your choice, and then launched with Game_Of_Ur.exe.

Building from source

Requirements

Note
This application has not been tested with anything other than the Windows MinGW package available via MSYS2's package manager.

This project uses CMake for its build system, so make sure to have that installed.

On your platform, download the following packages and place them somewhere discoverable by your compiler toolchain.

  • MinGW-w64 – For the C++ standard library headers, and for the compiler toolchain for building native Windows applications.
  • SDL – For abstracting away platform specific tasks, like requesting a window for the application.
  • SDL Image – For loading of images in various formats.
  • SDL TTF – For loading and rendering fonts.
  • GLEW – For exposing OpenGL functionality available on this platform.
  • Nlohmann JSON – For serialization/deserialization of data to and from JSON.
  • GLM – For linear algebra functions resembling those in GLSL, and for quaternion math.
  • Assimp – For importing assets of various kinds, mainly 3D models.

If you'd like to generate and tinker with the documentation generated for the project, also install Doxygen.

Finally, clone this repository, or download its snapshot.

Compiling

  1. Enter the root directory of the project (the same one where README.md and LICENSE.txt are found).
  2. Run cmake . -B build/ -DCMAKE_BUILD_TYPE=Debug to initialize the build directory.
  3. Change to the build directory using cd build, then run cmake --build . to build the Debug version of the project.
  4. Run the (debug build of the) game using the generated Game_Of_Ur-d.exe file in the build folder.

Goals

  • Stylized 3D graphics
  • Offline multiplayer
  • AI opponent
  • Music and sound effects (I'm tired)
  • Tutorialization (I'm very very tired)
  • Playable on Windows
  • Playable on Android (Maybe some day)
  • Itch.io release
  • Play Store release (Maybe a day long after the other days)
  • Code Documentation

Contributing

I'm not planning to accept contributions to this project any time soon. Feel free to fork the project and make it your own, though!

LICENSE

raynmetal/game-of-ur is distributed under the terms of the MIT License.

This program makes extensive use of the following libraries: