Об этом проекте

Bevy Replicon — это крейт серверной репликации, разработанный для игрового движка Bevy. Его цель — упростить реализацию многопользовательской сетевой игры за счёт предоставления надёжного и высокооптимизированного фреймворка. ### Ключевые возможности - **Автоматическая репликация мира**: обеспечивает синхронизацию игровых миров между сервером и клиентами. - **Удалённые события и триггеры**: позволяют выполнять действия по сети. - **Поддержка авторизации**: предоставляет встроенные хуки для проверки действий клиентов. - **Управление видимостью для клиентов**: тонкий контроль над тем, какие сущности и компоненты видимы каким клиентам. - **Правила синхронизации на основе ECS**: использует связи Entity Component System (ECS) Bevy для определения правил репликации. - **Настраиваемая сериализация**: поддерживает пользовательскую логику сериализации даже для сложных типов, таких как `Box<dyn Reflect>`, которые не реализуют стандартные трейты `serde`. - **Абстрагированная игровая логика**: позволяет одной и той же кодовой базе работать в режиме одиночной игры, клиента, выделенного сервера или listen-сервера. - **Отсутствие встроенного ввода-вывода**: не привязан к конкретным сетевым транспортным протоколам, что позволяет интегрироваться с различными бэкендами обмена сообщениями. - **Оптимизированность и надёжность**: сильно оптимизирован по производительности, имеет высокое покрытие тестами и поддержку окружений `no_std`. ### Экосистема и интеграции Replicon интегрируется с несколькими бэкендами обмена сообщениями, включая: - `bevy_replicon_renet` и `bevy_replicon_renet2` (для Bevy Renet) - `bevy_replicon_quinnet` (для Bevy Quinnet) - `aeronet_replicon` (для Aeronet) - `bevy_replicon_matchbox` (для Matchbox) Кроме того, экосистема поддерживает клиентское предсказание, интерполяцию и откат через такие библиотеки, как `bevy_rewind` и `bevy_timewarp`. ### Совместимость Крейт поддерживает строгую совместимость семантического версионирования с различными версиями движка Bevy, от Bevy 0.10 до 0.19. ### Лицензия Выпускается под лицензией Apache License 2.0 или MIT License.