Skip to content

MAbdulhady00/Coin-Quest-OpenGL-Game

Repository files navigation

🏆 CoinQuest: Ball's Runaway Adventure

📑 About

This an OpenGL 3.x game engine and a game made in C++ for the course of Computer Graphics at the University of Cairo faculty of Engineering.

Coin Quest: A Ball's Runaway Adventure

Welcome to Coin Quest: A Ball's Runaway Adventure! This README file provides an overview of the game and instructions on how to set it up and play. Game Description

Coin Quest is an exciting arcade-style game where you control a rolling ball in a quest to collect as many coins as possible. Your ball must navigate through a series of challenging obstacles. Can you guide the ball to victory and become the ultimate coin collector?

🏁 Demo and ScreenShots

Demo Video

GAME_APPLICATION_EPBZq9I7dq.mp4

ScreenShots

GAME_APPLICATION_aVlv4mN4Ll

GAME_APPLICATION_sx7eWPZxBy

✅ System Requirements

To enjoy Coin Quest, ensure that your system meets the following requirements:

Operating System: Windows 10, macOS, or Linux
Graphics Card: OpenGL 3.3 compatible or higher
Processor: Dual-core CPU or better
RAM: 4 GB or more
Disk Space: 16 MB of free space

⚙️ Installation

You Can Simply download our release from here and run the batch file if you are using windows.

Or you can do it manually and follow the steps below to install and set up Coin Quest on your computer:

  1. Clone the repository or download the latest release from the Coin Quest GitHub page.
git clone https://github.com/MohammedAbdulhady00/Coin-Quest-OpenGL-Game.git
  1. Ensure you have OpenGL drivers installed and up to date on your system. Open a terminal or command prompt and navigate to the game's directory. Compile the source code using a C++ compiler with support for OpenGL through CMake.
cmake -S . -B build
  1. Once the compilation is successful, open a terminal and run:
./bin/GAME_APPLICATION.exe

Enjoy playing Coin Quest!

🎮 Controls

Use the following controls to navigate your ball in the game:

A, D or Arrow Keys: Move the ball left and right.
W or Arrow Up: Jump (if enabled in the level).
Space: Start the game (if paused).
Esc: Exit the game.

🔐 License

Coin Quest is released under the MIT License. Feel free to use, modify, and distribute the game as per the terms of the license.

📚 Libraries

  • OpenGL: A powerful cross-platform API for rendering 2D and 3D graphics.

  • glad: glad is a library that manages OpenGL function pointers. It provides a simple way to load and use OpenGL functions in your application, making it easier to work with the OpenGL API.

  • glfw: glfw (OpenGL FrameWork) is a lightweight library for creating and managing windows, handling user input (keyboard, mouse), and managing OpenGL contexts. It provides a simple and cross-platform API for creating OpenGL applications.

  • glm: glm is a header-only C++ mathematics library designed for OpenGL. It provides classes and functions for vectors, matrices, transformations, and other mathematical operations commonly used in computer graphics. glm follows the GLSL specification, making it compatible with OpenGL.

  • imgui: imgui (Immediate Mode Graphical User Interface) is a graphical user interface library that allows for the easy creation of GUIs within OpenGL applications. It provides a simple and efficient way to create and interact with UI elements, making it useful for in-game interfaces, debug tools, and more.

  • sdl: Simple DirectMedia Layer (SDL) is a cross-platform development library that provides low-level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. SDL simplifies the development of multimedia applications, including games, by abstracting platform-specific details.

  • stb: stb is a collection of single-file public domain libraries for C/C++ that provide various useful functions for graphics programming, such as image loading and saving, font rendering, and more. These libraries are lightweight, easy to integrate, and widely used in the game development community.

  • tinyobj: tinyobj is a small and easy-to-use C++ library for loading Wavefront OBJ files, which are commonly used to store 3D models and their associated material information. It allows you to load OBJ files into your application and access vertex positions, normals, texture coordinates, and material properties.

  • nlohmann json: nlohmann json is a JSON (JavaScript Object Notation) library for modern C++. It provides a simple and intuitive API for parsing, serializing, and manipulating JSON data. It is lightweight, flexible, and widely used for data interchange between different programming languages and platforms.

✍️ Contributors

Mohamed Kamal
Mohamed Kamal

Mohammed Abdulhady
Mohammed Abdulhady

Mohamed Nabil
Mohamed Nabil

Mohamed Kotb
Mohamed Kotb

Thank you for checking out Coin Quest: A Ball's Runaway Adventure. Get ready for an exhilarating journey through the world of rolling and collecting coins!