/arcade

Primary LanguageC++

EPITECH

Arcade

Arcade is a gaming platform: a program that lets the user choose a game to play and keeps a register of player scores. Create your own clone of famous games. Your project should comply with a structure that separates the heart of your game launcher and its graphic dependencies. You should dynamically load them with the help of the dl library.

Before continuing...

This project is an EPITECH Project. If you are an EPITECH student, move out the way!

Nothing to see here... I don't want to be involved to your -42.

I'm watching you

If you're not, no worries! You're welcome here!

Prerequisites

To use this project, you'll need a compiler that supports C++ 20 and Criterion for the unit tests.

3 different graphical libraries are also implemented:

Usage

Building program

Arcade is a B-OOP-400 EPITECH module project. It is build with Makefile.

You can use this program as it follows:

$> make
// Build the entire programm

$> make core
// Build the core programm

$> make graphics
// Build the different libraries

$> make games
// Build the different games

You can also launch unit tests by using the command below at root of the repository:

$> make tests_run
// Compile and launch test binary
$> make coverage
// Show the code coverage

Launch program

Launch Arcade by giving in argument the graphical library you want to use.
Don't worry you can change it in the menu.

The library must be in a /lib folder at the root of the project.

$> ./arcade ./lib/[LIBRARY_NAME].so

Key Bindings

Arcade provides multiple keybindings:

General

Key Action
M Go to the menu
G Switch to next game
N Switch to next graphical library
Q Quit Arcade

Username selection

Key Action
ENTER Confirm username

Menu

Key Action
UP Arrow Go up
DOWN Arrow Go down
RIGHT Arrow Go to the game selection
LEFT Arrow Go to the graphical library selection
A Apply selection and launch game
T Change username

In game

Key Action
UP Arrow Go up
DOWN Arrow Go down
RIGHT Arrow Go to the right
LEFT Arrow Go to the left
ESCAPE Pause the game
R Restart the game

Commit norm

The commits are normed thanks to a program made by Adrien Ricou.

Commit type Description
[ADD] 🚀 Deploying new code
[MODIFY] ✨ Modifying code
[COD.STY] ⚡ Improving performance
[FIX] 🐛 Fixing a bug
[HANDLE] ✨ Handling new features
[INCLUDE] 🔧 Modifying user defined headers
[LIB] 🔧 Modifying libraries files
[REMOVE] 🔥 Removing code or files
[UNIT.TESTS] ✅ Added tests
[MERGE] 🔀 Merging branches

**Emoji are available thanks to the Gitmoji tool

Authors

We must shared our graphical and game library interfaces with an other project group. Please not that only the interfaces were shared and not the rest of the program. Neither the games nor the graphical libraries implementation were shared.

Here are the members:

And the group we shared our interfaces with: