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

ioGame — это Java-сетевой фреймворк для онлайн-игр, IoT и внутренних систем, требующих постоянных соединений. Он построен на архитектуре без блокировок, асинхронной и управляемой событиями, которая из коробки поддерживает кластеризацию и распределение без внешнего промежуточного ПО или баз данных — достаточно только JVM. Основные возможности: - **Лёгкость**: небольшой jar (~15 МБ), быстрый запуск (<1 секунды), низкое потребление памяти. - **Гибкая архитектура**: трёхчастная конструкция (внешний сервер, брокер/шлюз, сервер игровой логики), которая может работать независимо или слитно, адаптируясь к любому типу игры. - **Динамическое масштабирование**: добавление или удаление серверов на лету, что обеспечивает обновления без простоев. - **Децентрализованная кластеризация**: кластер брокеров без главного узла, самоорганизующийся, без единой точки отказа. - **Мультипротокольность**: одна кодовая база одновременно поддерживает TCP, WebSocket, UDP; расширяемо до KCP, QUIC и др. Протоколы данных (Protobuf, JSON) переключаются одной строкой. - **Полная трассировка распределённых запросов**: уникальные идентификаторы трассировки на всех машинах и процессах. - **Богатые модели взаимодействия**: запрос/ответ, широковещательная рассылка, шина событий и другие — всё работает между процессами. - **Потокобезопасность для каждого игрока**: фреймворк гарантирует конкурентность без блокировок для отдельных игроков. - **Генерация кода**: пишите один раз на Java, генерируйте клиентские SDK для Godot, UE, Unity, Cocos Creator, React, Vue, Angular и др. - **Удобство для разработчика**: стиль MVC, валидация JSR380, утверждения, горячая замена протоколов, аффинитет процессов, отладка нескольких серверов в одном процессе. - **Безопасность по дизайну**: серверы логики не открывают порты, что защищает от атак сканированием портов. - **Современная Java**: требует JDK 21+, использует Generational ZGC для пауз менее миллисекунды. ioGame выпущен под лицензией AGPL 3.0, с обязательством активной поддержки не менее десяти лет начиная с 2022-03-01. Он подходит как для игровых серверов, так и для приложений IoT, выдерживая миллионы соединений.