Arcade is a gaming platform: a program that lets the user choose a game to play and keeps a register of player scores. To be able to deal with the elements of your gaming plate-form at run-time, your graphics libraries and your games must be implemented as dynamic libraries, loaded at run-time. Each GUI available for the program must be used as a shared library that will be loaded and used dynamically by the main program.
It is STRICTLY FORBIDDEN to refer to a graphics library explicitly in your main program. Only your dynamic libraries can do so. This also applies to your games.
- CMake 3.22
- C++20
- SDL2
- NCURSES
- SFML
$> ./build.sh build
[...]$> ./arcade [graphical_library.so]
[...]| Actions | ncurses | sfml | sdl2 |
|---|---|---|---|
| Next graphic lib | F1 |
F1 |
F1 |
| Go back to menu | F2 |
F2 |
F2 |
| Move up | ↑ |
↑ |
↑ |
| Move down | ↓ |
↓ |
↓ |
| Move left | ← |
← |
← |
| Move right | → |
→ |
→ |
| Select | ENTER | ENTER | ENTER |
| Quit | ESC | ESC | ESC |
arcade
│
│─ .github/workflows/ Workflows
│
│─ assets/ assets files (images, sounds, etc.)
│
│─ cmake/modules/ cmake modules
│
│─ doc/ Documentation
│
│─ Core/ Core program source code
│
│─ Games/ Games libraries source code
│
│─ Graphics/ Graphicals libraries source code
│
└─ lib/ Libraries binaries
| Commit Type | Description |
|---|---|
| build | Changes that affect the build system or external dependencies (npm, make, etc.) |
| ci | Changes related to integration files and scripts or configuration (Travis, Ansible, BrowserStack, etc.) |
| feat | Addition of a new feature |
| fix | Bug fix |
| perf | Performance improvements |
| refactor | Modification that neither adds a new feature nor improves performance |
| style | Change that does not affect functionality or semantics (indentation, formatting, adding space, renaming a variable, etc.) |
| docs | Writing or updating documentation |
| test | Addition or modification of tests |

