Zalupa.Online - Приватка
Процесс
Предоставление услуг
Сдельная оплата труда. Написание плагинов на заказ.
Трудоустройство в проект
Повременная оплата труда. Разработка режимов, плагинов, систем.
Экономика проекта
Участие в постройки экономической модели проекта и способов заработка для продолжения жизни проекта.
Получение опыта
Расхождение в интересах с командой. Уход с проекта. Более подробно https://t.me/tiplurka/1412
- Техническое описание проекта.
Zalupa.Online представлял собой приватный SMP-сервер, разработанный в рамках крупного игрового проекта под руководством стримера bratishkinoff. Основной целью проекта было создание стабильной серверной платформы для многопользовательского игрового режима с поддержкой высокой нагрузки и большого числа активных игроков.
Разработка велась на протяжении примерно 2.5 лет и включала создание серверной инфраструктуры, разработку игровых систем и интеграцию с кастомным серверным ядром. Проект ориентировался на высокую нагрузку, а ключевые системы проектировались с учетом многопоточности и масштабируемости.
В рамках работы над проектом я занимался разработкой серверных плагинов, архитектурой игровых систем и участием в техническом развитии платформы.
Со временем моя роль в проекте эволюционировала от разработки отдельных плагинов к участию в системном проектировании.
Основные направления работы
- разработка серверных плагинов для Spigot/Paper
- проектирование и реализация игровых систем
- интеграция с кастомным серверным ядром
- оптимизация систем под высокую нагрузку
- работа с базами данных и кешированием
- разработка архитектуры новых игровых подсистем
- участие в тестировании серверного ядра
В рамках проекта было реализовано несколько крупных систем и более десятка вспомогательных плагинов.
Cyonium Clans — система кланов
Cyonium Clans представляла собой одну из ключевых игровых систем сервера. Изначально проект задумывался как замена устаревшей системы кланов, однако со временем вырос в полноценный модуль серверной архитектуры.
Основные задачи
- создание масштабируемой системы кланов
- оптимизация работы под высокую нагрузку
- минимизация количества обращений к базе данных
- интеграция с другими игровыми системами
Архитектура
Плагин реализован на JDK 21 и использует модульную слоистую архитектуру.
Domain layer
- Clan
- ClanMember
- ClanDeputy
- ClanData
Доменные модели инкапсулируют состояние и поведение сущностей и не зависят от инфраструктуры.
Storage layer
Используется интерфейс:
- ClanStorage
С конкретной реализацией:
- SQLClanStorage
Это позволило изолировать слой хранения данных и обеспечить возможность замены источника данных без изменения бизнес-логики.
Repository / DAO layer
Реализованы централизованные CRUD-операции для управления:
- кланами
- участниками
- ролями
- метаданными
Используется JDBC с параметризованными запросами для предотвращения SQL-инъекций.
Работа с базой данных
Используемые технологии:
- MySQL
- HikariCP
- JDBC
Подключение реализовано через пул соединений HikariCP для обеспечения стабильной работы под нагрузкой.
Кэширование
Для повышения производительности реализован in-memory cache слой, который:
- хранит часто используемые данные кланов
- снижает нагрузку на MySQL
- ускоряет доступ к данным
Кэш управляется через менеджеры системы.
Сервисный слой
Бизнес-логика вынесена в отдельные сервисные компоненты:
- ClanManager
- ClanController
Эти компоненты отвечают за:
- управление кэшем
- координацию операций
- взаимодействие между слоями
Dependency injection реализован вручную через конструкторы.
Работа с данными
Для сериализации используются:
- Gson (JSON)
- Base64-сериализация Bukkit-объектов
Это позволяет хранить сложные игровые структуры вне базы данных.
Пользовательский интерфейс
Для системы сообщений используется:
- Adventure API
- MiniMessage
Реализованы:
- интерактивные сообщения
- кликабельные действия
- динамические плейсхолдеры
Это позволило реализовать интерактивный интерфейс управления кланами прямо в игровом чате.
Zalupa Streams
Плагин, реализующий интеграцию Twitch-стримов с игровым сервером.
Основная задача
- автоматически определять, ведет ли игрок стрим на Twitch, и предлагать ему активировать стримерский режим
Функциональность
- привязка Twitch-канала к игровому аккаунту
- проверка статуса стрима через Twitch API
- уведомление игрока при входе на сервер
- возможность активации стримерского режима
Техническая реализация
- интеграция с Twitch API
- поддержка Spigot/Paper и Velocity
- OOP-архитектура
- асинхронные запросы к API
Особенность: отсутствие OAuth-авторизации — пользователю достаточно указать имя канала.
Zalupa Passport / Zalupa Marry
Игровая система социальных взаимодействий между игроками.
Основная функциональность
- система паспортов игроков
- регистрация браков
- хранение игровых социальных связей
Архитектура
- PlayerPassport
- Marriage
- PlayerIdentity
Работа с базой данных
- ORMLite (первая версия)
- позднее переход на HikariCP и JDBC
Это позволило повысить производительность и упростить контроль над SQL-операциями.
Minatos — система валютных кошельков
Система виртуальных счетов игроков.
Возможности
- хранение игровой валюты
- переводы между игроками
- внесение наличных
- снятие средств
Архитектура
- DAO / Repository
- сервисный слой
- кэширование
TradesOverhaul
Плагин для гибкой настройки торгов жителей.
Основные возможности
- редактирование торгов по профессии
- редактирование торгов по уровню жителя
- фильтрация по биомам
- настройка по времени
- настройка по погоде
- настройка по типу мира
- настройка по реальному времени
Архитектура
- базовая настройка торгов
- фильтрация по биомам
- расширенная система условий
Данные конфигурации хранятся в JSON.
ZalupaMask
Утилитарный плагин.
Функциональность
- игрок становится невидимым на карте DynMap или BlueMap при надевании вырезанной тыквы
Технологии
- DynMap API
- BlueMap API
Orderix — система полиции
Игровая система правоохранительных органов.
Возможности
- объявление игроков в розыск
- снятие розыска
- специальные предметы полиции
- взаимодействие с системой паспортов
Архитектура
- DAO
- сервисный слой
- кэширование
Работа с серверным ядром
Проект использовал кастомное серверное ядро, разрабатываемое отдельно (не мною).
В рамках разработки плагинов учитывались:
- особенности работы ядра
- ограничения API
- поддержка многопоточности
Особое внимание уделялось совместимости с Folia, что требовало корректной работы с потоками и отказа от небезопасных операций. С моей стороны предлагались пути решения и практические примеры для понимания, что можно было бы реализовать.
Prismatic - ядро которое использовалось в начале 2024 года при масштабных тестах и ядро, которое использовалось уже на релизе лета 2025 года - абсолютно разные ядра на практике. Второе это форк Canvas, который ничего общего не имеет с первым.
Нагрузочное тестирование
В рамках тестирования серверного ядра и инфраструктуры проводились масштабные тесты.
Во время одного из тестирований сервер достиг:
- ~750 одновременных игроков
что продемонстрировало потенциал архитектуры для работы под высокой нагрузкой.
Основные результаты работы
За время работы над проектом:
- разработано 10+ серверных плагинов
- реализованы несколько ключевых игровых систем
- внедрена архитектура с разделением доменной логики и хранения
- оптимизированы обращения к базе данных
- реализованы системы кэширования
- проведены нагрузочные тестирования до ~750 игроков
Полученный опыт
Работа над проектом дала практический опыт в следующих областях:
- разработка серверных систем для высоконагруженных игровых проектов
- проектирование архитектуры серверных плагинов
- работа с многопоточностью (Folia)
- оптимизация работы с базами данных
- проектирование масштабируемых игровых систем
- интеграция различных сервисов и API
Понравился результат?
Давайте создадим ваш проект.
Написать мне в TelegramПигарев Вячеслав Сергеевич
Социальные сети
Прочие ссылки
Личная страница
Цифровое представительство автора, объединяющее творческие проекты и бизнес-процессы. Содержимое страницы является частной собственностью и защищено в соответствии с законодательством об авторском праве© 2020 - 2026 Pigarev Vyacheslav Sergeevich (tiplurka). All rights reserved.
Мега важная плашка с текстом. Такие дела..




