Общая информация
Общее описание
Simple Pythonic (but yet) Impressive Combat Engine
Spice - боевая система для текстовых ролевых игр, написанная на Python, созданная для любых приложений, поддерживающих использование REST и парсинг json.
В своей основе Spice создавался, придерживаясь следующих принципов:
- Гибкость превыше скорости. Spice не позиционируется, как легкая в запуске и настройке система. Основным критерием реализации той или иной механики была именно ее гибкость. Местами это могло усложнить синтаксис и требования к написанию игровых функций.
- Абстрактность. Spice не привязан к конкретному сеттингу или игровой вселенной. Можно устраивать как космические бои грозных флагманских кораблей, так и бои примитивных людей луками и копьями. Исключение из себя представляют различные навыки, атрибуты и прочие "контентные" особенности, сделанные под конкретный проект, однако их достаточно просто заменить, поскольку это просто строки с названиями.
- Обработчиками действий являются функции самого python'а, поэтому для настройки системы необходимо базовое знание этого языка программирования. Это было сделано для того, чтобы действия ничем не ограничивались и позволяли делать даже самые сложные комбинации для особо щепетильных гейм-дизайнеров (см. пункт 1).
- Чистая backend-система. У Spice есть API, основанный на REST API, но никаких других способов взаимодействия с его “внутренностями” не предусмотрено.
Дисклеймер
Данная документация составляется не с целью описания всех технических особенностей и реализации разных систем, а исключительно с целью упрощения составления собственных компонентов (итемов, абилок, энтитей и так далее). Как следствие, компоненты, предназначенные для "внутреннего" использования, не будут расписаны. Если очень хочется, придется читать исходники.
Использованные библиотеки
- mongoengine
- dice
- toml
- loguru
- fastapi
- PyYAML
- Shapely
Большое спасибо их авторам! Вы вряд ли знаете русский, но знайте, что без вас я бы потратил на это на пару лет больше!