Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arcade

A virtual set of games and display libraries that can be switched at runtime!

Introduction

This project aims at creating a set of abstractions that allows for the development of games and display libraries without having to worry about the underlying implementation details of the core program.

Interopability is achieved by using a common set of interfaces shared across other groups who also develop the project.

How to Use It

Pre-Requisites

This project requires the following tools and libraries to be installed.

Dependency Runtime dependency Version Description
CMake 3.27+ The build system used to build the project
GCC 13.2.x+ The C++ compiler used to compile the project
SDL2 ✔️ 2.30.1+ For the SDL2 display library - image, gfx and mixer modules required
SFML ✔️ 2.5.1+ For the SFML display library - graphics, window and audio modules required
termios ✔️ N/A For the terminal/ncurses display library - UNIX-like system required

Do note that older version of the libraries may work, but the versions listed are the ones that have been tested with.

Getting the Source

To get the source code, clone the repository using the following command:

git clone git@github.com:TheodoreBillotte/Arcade.git

You should now have a directory named Arcade containing the source code of the project.

Building the Project

To build the project, follow the steps below.

  1. Create a build directory at the root of the project, so that the source directory is kept clean:

    mkdir build
  2. Run CMake to configure the project:

    cmake --source . --build build

    Note: You can pass additional options to CMake to configure the project. By default, the project will compile for a release build. To compile for a debug build, pass the -DCMAKE_BUILD_TYPE=Debug option to CMake. Have a look at the official CMake documentation for more information regarding the use of CMake.

  3. Build the project using the generated build system:

    cmake --build build --parallel $(nproc)

    Note: The --parallel option is used to build the project in parallel. This can speed up the build process significantly.

  4. The compiled binary and libraries will be located at the root of the source directory.

Running the Project

A binary named arcade will be generated in the root of the source directory. To run the project, execute the binary along with the path to the display library you want to use:

./arcade ./lib/arcade_sfml.so

The project will then run using the specified display library.

Special Keys

You may switch between display libraries at runtime by pressing the P key. The same goes for games, you may switch between them at runtime by pressing the O key. To go back to the main meny at any time, use the M key.

Develop a Game or Display Library

To develop a game or display library, you will certainly have to have a read through the documentation to understand how the project is structured and how to interface with the project.

That documentation is available in the doc/content directory:

  • Arcade — overview of the core program and how the pieces fit together
  • Display — how to write a display (graphics) library
  • Game — how to write a game library

Authors

Other

For this project, we shared our structure and interfaces with other groups. You can find the email address of the group owners below:

About

Arcade — a C++ retro-gaming platform with hot-swappable graphics libraries and games (.so) loaded at runtime. Epitech 2nd-year team project.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages