The Arcade API is a set of tools allowing the user to conceive, create and play arcade-like games, such as Pac-man, Snake or Centipede.
The goal of this documentation is to help you unterstand the usage basics of the Arcade API, and to give you all the useful tools to create your own games.
For more infos about the Arcade project, click here.
The Arcade API is an architecture template. It is the base of the Arcade project, and allows the user to dynamically load and play games and graphic libraries. Thanks to the linking of dynamic libraries, the user can play games and load graphic libraries event at run-time.
There are several rules to respect while using this API, which will be explained in this documentation. However, we recommend you to take a look at the "Classes" section of this documentation, to comprehend better what we are going to talk about now.
As you might have seen, this architexture is guite simple. But it must respond to several rules.
The game logic is axed around the cell logic. We call cell logic the fact that positions and graphical actions are calculated thanks to a cell system.
This cell system is a grid pattern where a square is of a given size. The sprites and actions will occur between them, and will not affect the neighbor cells.
Moving responding to the cell logic can't display fluid animations. It reproduces the behavious os the old Arcade games.
The ressource files such as images or spritesheets must be situated at the same place as the Arcade project executable.
Every method must be created if you want to create your own dynamic library. Here are a few precisions :
- Your context class must contain a IGraphic interface and a IEvents interface. It must have getters to interact with them.
- The context must implement 2 different function prototyped as follows :
- extern "C" arcade::api::IContext *entry_point();
- extern "C" void delete_point(arcade::api::IContext *mod);
- The graphic libs must be in the "./lib" directory
- The game libs must be in the "./games" directory
Hoping this documentation will help you playing with the Arcade project !