Initial commit
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Сборка проекта
|
||||
|
||||
Для сборки нужно иметь CMake минимум `3.24`, make и, соответственно, компилятор C (подойдёт как Clang, так и GCC).
|
||||
|
||||
```bash
|
||||
cmake -B build
|
||||
cd build
|
||||
make
|
||||
```
|
||||
|
||||
В результате сборки получится исполняемый файл `magic_scrolls`.
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Класс `Engine`
|
||||
|
||||
Класс `Engine` является основной сущностью, которая управляет всем процессом игры.
|
||||
Для его инициализации нужен список подключаемых модулей, которые он провалидирует на совместимость, а затем запустит.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Модули движка
|
||||
|
||||
Движок Magic Scrolls строится на основе модульной архитектуры. По-умолчанию, без модулей, движок предоставляет:
|
||||
|
||||
- Событийную шину
|
||||
- Реестр модулей
|
||||
- Публичный API для модулей
|
||||
|
||||
Вся остальная логика, включая REST API, realtime коммуникации и игровые фичи реализуются через модули, которые могут общаться между собой посредством событийной шины.
|
||||
|
||||
Игровой модуль реализуется через свой основной класс, который наследуется от `MscEngineModule`. Сам модуль хранит о себе основную информацию в виде:
|
||||
|
||||
- Имени модуля, для записи в реестр и обращении;
|
||||
- Ревизии модуля, для проверки зависимостей;
|
||||
- Список зависимостей, описываемых как карта "название требуемого модуля" <-> "диапазон допустимых ревизий" (`MscRevisionRange`)
|
||||
|
||||
Reference in New Issue
Block a user