GameDev2023 - 2025 г.

Zalupa.Online - Приватка

120+
Онлайн
2.5 года
Стаж
Senior Developer
Роль
Высоконагруженный Minecraft SMP-сервер
Тип проекта
Java (JDK 16–22)FoliaSpigot/Paper APIVelocityMySQLJDBCHikariCPORMLiteGsonAdventure APIMiniMessageREST API
Стек
Zalupa.Online - Приватка

Процесс

01

Предоставление услуг

Сдельная оплата труда. Написание плагинов на заказ.

02

Трудоустройство в проект

Повременная оплата труда. Разработка режимов, плагинов, систем.

03

Экономика проекта

Участие в постройки экономической модели проекта и способов заработка для продолжения жизни проекта.

04

Получение опыта

Расхождение в интересах с командой. Уход с проекта. Более подробно 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

Галерея

Медиа для более наглядной демонстрации.

Project media 2
Project media 3
Project media 4
Project media 6

Понравился результат? Давайте создадим ваш проект.

Написать мне в Telegram

Пигарев Вячеслав Сергеевич

GitHub профильtiplur-ka
Почтовый адресme@tiplur.dev
Основной каналt.me/tiplurka

Личная страница

Цифровое представительство автора, объединяющее творческие проекты и бизнес-процессы. Содержимое страницы является частной собственностью и защищено в соответствии с законодательством об авторском праве

© 2020 - 2026 Pigarev Vyacheslav Sergeevich (tiplurka). All rights reserved.

Мега важная плашка с текстом. Такие дела..

CoreMC