Проект "CraftOut" - MMORPG игра по мотивам Fallout на основе движка Minecraft. Прежде всего, это сама игра (клиент и серверы), но для его работы нужны также свои сайт, лаунчер, а далее и некоторые сервисы для связи серверов и продуктивной разработки. Основная цель - разработать и поднять всю систему до состояния "играбельного".
Нужно придумать логотип, который сочетает в себе как темы Fallout, так и Minecraft. Основной конценпией стало объединение куба и молнии. Из вариаций выбрали фигуру с наклоненным силуэтом куба и молнией посередине. Также были проработаны варианты для светлого и темного фонов, а также с акцентным цветом и без него.
В качестве основных элементов дизайна взяты кнопки, похожие на стилистику старых терминалов, как в Fallout. Цвета - черный, янтарный и дополнительные акцентные цвета. Дизайн сам по себе простой и с его помощью можно собрать любые страницы.
Для сайта игры, в целом, не требуется большого количества страниц. Основная страница содержит слоган и кнопку для начала игры с инструкцией, а также возможность регистрации. Дополнительные страницы правил, "Premium", статических страниц. При входе в аккаунт - пополнение баланса, покупка "Premium", настройки аккаунта. Главная сайта может быть дополнена информацией о игре для привлечения внимания.
Панель управления - это основная часть системы. Здесь администратор может управлять всем контентом и данными игроков.
Разработана система в стилистике основного сайта, благодаря компонентам Vue всё унифицировано, может быть расширено любой страницей с помощью конструктора. Система включает в себя:
Лаунчер был сделан на GravitLauncher, глобально дизайн остался стандартным, но слегка изменён для того, чтобы он сочетался с основным сайтом. Основной проблемой этого лаунчера является то, что он написан на Java и требует уже установленную версию на ПК, поэтому дополнительно сделан установщик, чтобы максимально упростить жизнь игрокам!
Серверов для игры планируется много, кроме того, сами серверы непростые - нужны разные подсерверы для кланов, данжей и прочих игровых механик. Для этого создан сервис распределения игроков: он отслеживает текущий онлайн на серверах и выдаёт IP, на какой сервер нужно пустить игрока. Также здесь происходит проверка, не находится ли он в бане.
Для отслеживания состояния серверов были настроены Prometheus и Grafana, они дают общее представление, как нагружены серверы.
Сервис управления Discord-ботом позволяет отправлять информацию в официальный сервер о разных событиях (механика бурь и аирдропов), а также устанавливает всем игрокам ники на такие, какие у них заданы в игре. Кроме того, сервис управляет самими каналами на сервере и позволяет создавать голосовые каналы отрядов.
Вся разработка ведётся через TeamCity - настроено более 70 конфигов сборок для автоматической сборки и деплоя модов на деве/билд-сервере/проде, выгрузки карты из билд-сервера на прод, управление серверами (загрузка сборки из git и пересборка конфигов из .env файлов, остановка и запуск серверов, включение и отключение вайтлистов). Всё это позволяет очень удобно заливать все изменения в пару кликов без отвлечения от кода!