- Поддерживаемые версии
- 1.8
- 1.12
- 1.16
- 1.19
- 1.20
- 1.21
Это не полное руководство по технологии, а скорее статья в информационных целях для того, чтобы дать вам основу.
В 2019 году Hypixel публично предоставили технологию нового типа миров - Slime Worlds, который НАМНОГО быстрее и эффективнее обычных миров. Они использовали их для решения проблем межсерверной синхронизации, хранения миров в базе данных и занимаемого места на диске для Skyblock RPG. Без этих миров невозможно сделать режим такого масштаба, где используется и хранятся миллионы островов.
Данные миры работают почти в 7 раз быстрее и 3 раза меньше могут весить. В новых версиях и с использованием современного оборудования показатели скорости только растут. Вы можете ознакомиться в статье Hypixel, где рассказывается как это работает, там же есть много примеров и скинов тестов. С того времени формат улучшили разработчики из InfernalSuite
Начало
Начнем с того, что этот тип мира не подходит для больших миров. Не рекомендуется превышать размер мира 750х750. Все миры после инициализации будут работать в оперативной памяти сервера, именно по этому достигается феноменальная скорость. Хотя я для некоторых серверов загружал карты под 2000х2000, но так лучше не делать.
Были урезаны и переделаны многие dat и playerdata файлы в самих мирах, по этому для хорошей и эффективной системы синхронизации ваших данных вам рекомендуется развернуть систему по типу HuskSync и использовать плагины исключительно с поддержкой межсерверности и хранения данных в базе данных.
Где скачать и как использовать?
Первоисточный репозиторий (от разработчиков Hypixel) находиться тут
You must be logged in to see this link.
Но сейчас он не поддерживается. Изначально технология работала в виде javaagent и плагина, но сообщество, которые взялось за поддержку и улучшение slime миров переделали всё и теперь он вшит в ядро paper (есть и вариант для purpur, но он редко поддерживается). You must be logged in to see this link. - Именно этот вариант самый стабильный и эффективный, но он не совместим со старыми версиями (1.8/1.12.2). Для старых версий используйте первоисточник, он хорошо работает.
You must be logged in to see this link. - Стабильные билды скачать можно тут или дев-билды в их Discord сервере.
You must be logged in to see this link. - Я не буду описать заново гайд по установке и работе, смотрите официальный вики, там все прекрасно описано.
База данных
Для базы данных разработчики рекомендуют использовать MariaDB или MongoDB, но немногие знают, что Slime worlds поддерживает Redis. Если вы собираетесь использовать миры которые постоянно изменяются и сохраняются - вам рекомендуется Maria/Mongo. Но если ваши миры (например lobby, рпг и мини игры) не должны сохраняться, а только выгружаться - Redis. Так более безопасно.
Я для тестов выгрузил из Redia около сотни небольших миров на одном сервере за 94мс, когда такое же количество миров в MariaDB выгружались за 460мс (на старом железе). В новых версиях Redis, при грамотной настройке и с хорошим оборудованием, миры будут работать намного быстрее. И да, из каждого типа базы данных можно без проблем мигрировать мир в другой тип одной командой или через API. Полезно, если вы хотите, например с билд сервера (где лучше использовать обычный формат) сразу выгрузить мир в базу данных и в это же время другой сервер сможет получить доступ к этому миру.
Плагин для управления островами
Для работы с Slime Worlds я рекомендую использовать плагин You must be logged in to see this link. вместе с модулем You must be logged in to see this link. и You must be logged in to see this link.. Имейте ввиду, что SuperiorSkyblock2 может выступать в роли не только плагина на скайблок, но и просто менеджера миров/островов, он очень гибок в этом плане. Я даже знаю примеры, когда западные сервера использовали его для очень специфичных задач по типу личных камер на Prison.
Увы, но для такой же системы межсерверности как на том же Skyblock RPG, вам необходимо купить модуль SSBProxyBrige (30$ в месяц) и для специфичных задач нужно писать свой плагин/мост. Но для большинства задач будет достаточно SSBProxyBrige.
Кластеры и балансировка
Необходим SSBProxyBrige и собственные разработчики, которые умеют работать с Cross-server системами. Если вы планируете держать много игроков - вам нужна система кластеров. С этой системой будут выделятся сервера, рассчитанные на определённое количество игроков и миров. Для развёртывания и управления большого количества серверов подобного типа рекомендую использовать CloudNet с Docker (более удобнее будет) или чистый Docker.
Например как выглядит кластер для сервера типа Origin Realms & Hypixel Skyblock RPG.
Сервера локаций:
• Spawn-1
• Spawn-2
• Rpg-1
Сервера островов:
• Islands-mini-1
• Islands-big-1
• Islands-big-2
На спавне логично что находиться спавн, но вы также туда можете поместить и локации. Но если много локаций - создайте отдельный кластер под локации. Для сервера островов лучше использовать два типа: mini и big. Mini для островов с маленьким количеством игроков, а big - большого. Но тут вы уже вправе решать самим как распределять игроков.
Вынужденные необходимости
Почти все плагины на вашем проекте должны иметь поддержку базы данных и Cross-server. Использование брокеров по типу Redis/Rabbit/Nats является необходимостью для быстрой работы и полной поддержки нужного функционала.
Вам придётся заказывать или писать самим:
• Более гибкая балансировка нагрузки
• Управление кластерами
Хоть и есть публичные плагины, но их функционала и гибкости недостаточно. Но все же их использование ускорит разработку вашего проекта, а это очень важно, если вы не хотите проект с бесконечным циклом разработки.
Небольшой список полезных плагинов:
• You must be logged in to see this link. - Просто доступный и хорошо сделанный core плагин, который повторяет все основновые механики Skyblock rpg (и не только) с поддержкой редис и кросс-сервер.
• You must be logged in to see this link. - Он недавно вышел в релиз. Энтузиасты повторили почти полностью техническую часть Skyblock rpg, способная выдержать сотню тысяч игроков так же, как и на Hypixel. Он основан на ядре Minestom и микросервисах, по этому не совместим с плагинами paper/spigot/bukkit. Он использует аналог слаймов.
• You must be logged in to see this link. - Позволит вам удобно развернуть и масштабировать ваш сервер как угодно. Ускоряет и авторизует многие этапы разработки и продакшна. Вы так же там частично можете сделать систему балансировки нагрузки, например через их API или готовый модуль smart + docker.
• You must be logged in to see this link. - Это прокси нужно, если вы планируете маршрутизировать обрабатывая тысячи игроков с минимальными количеством памяти. Это самое производительное прокси в Minecraft, которое потребляет несколько десятков мегабайт памяти на тысячи игроков. Совместим с другими прокси (Velocity/Bungee) и Kubernetes.
• You must be logged in to see this link. - Многие плагины от этого автора (например HuskSync и HuskHomes) вам понадобятся, если хотите быстро сделать систему межсерверной синхронизации. Вы можете все сами написать, но спросите себя: действительно ли это необходимо?
• You must be logged in to see this link. - Форк RedisBungee, который имеет обратную совместимость с плагинами с поддержкой RedisBungee. Это вам необходимо, потому что удобно и полезно для такого типа сервера.
• You must be logged in to see this link. - Современный плагин на чат, он поможет вам создать гибкий кросс-серверный чат для всего проекта.
• You must be logged in to see this link. - Ещё один хороший плагин на современный чат со своими фишками.
• You must be logged in to see this link. - Это не всем пригодится, но плагин позволяет отправлять команды между серверами, а также выполнять шаблоны команд. Например ввел /save-all-servers и save-all отправился на десяток серверов.
• You must be logged in to see this link. - Один из лучших плагинов на Bedwars. Имеет поддержку Slime worlds и Cloudnet.
В 2019 году Hypixel публично предоставили технологию нового типа миров - Slime Worlds, который НАМНОГО быстрее и эффективнее обычных миров. Они использовали их для решения проблем межсерверной синхронизации, хранения миров в базе данных и занимаемого места на диске для Skyblock RPG. Без этих миров невозможно сделать режим такого масштаба, где используется и хранятся миллионы островов.
Данные миры работают почти в 7 раз быстрее и 3 раза меньше могут весить. В новых версиях и с использованием современного оборудования показатели скорости только растут. Вы можете ознакомиться в статье Hypixel, где рассказывается как это работает, там же есть много примеров и скинов тестов. С того времени формат улучшили разработчики из InfernalSuite
Начало
Начнем с того, что этот тип мира не подходит для больших миров. Не рекомендуется превышать размер мира 750х750. Все миры после инициализации будут работать в оперативной памяти сервера, именно по этому достигается феноменальная скорость. Хотя я для некоторых серверов загружал карты под 2000х2000, но так лучше не делать.
Были урезаны и переделаны многие dat и playerdata файлы в самих мирах, по этому для хорошей и эффективной системы синхронизации ваших данных вам рекомендуется развернуть систему по типу HuskSync и использовать плагины исключительно с поддержкой межсерверности и хранения данных в базе данных.
Где скачать и как использовать?
Первоисточный репозиторий (от разработчиков Hypixel) находиться тут
You must be logged in to see this link.
Но сейчас он не поддерживается. Изначально технология работала в виде javaagent и плагина, но сообщество, которые взялось за поддержку и улучшение slime миров переделали всё и теперь он вшит в ядро paper (есть и вариант для purpur, но он редко поддерживается). You must be logged in to see this link. - Именно этот вариант самый стабильный и эффективный, но он не совместим со старыми версиями (1.8/1.12.2). Для старых версий используйте первоисточник, он хорошо работает.
You must be logged in to see this link. - Стабильные билды скачать можно тут или дев-билды в их Discord сервере.
You must be logged in to see this link. - Я не буду описать заново гайд по установке и работе, смотрите официальный вики, там все прекрасно описано.
База данных
Для базы данных разработчики рекомендуют использовать MariaDB или MongoDB, но немногие знают, что Slime worlds поддерживает Redis. Если вы собираетесь использовать миры которые постоянно изменяются и сохраняются - вам рекомендуется Maria/Mongo. Но если ваши миры (например lobby, рпг и мини игры) не должны сохраняться, а только выгружаться - Redis. Так более безопасно.
Я для тестов выгрузил из Redia около сотни небольших миров на одном сервере за 94мс, когда такое же количество миров в MariaDB выгружались за 460мс (на старом железе). В новых версиях Redis, при грамотной настройке и с хорошим оборудованием, миры будут работать намного быстрее. И да, из каждого типа базы данных можно без проблем мигрировать мир в другой тип одной командой или через API. Полезно, если вы хотите, например с билд сервера (где лучше использовать обычный формат) сразу выгрузить мир в базу данных и в это же время другой сервер сможет получить доступ к этому миру.
Плагин для управления островами
Для работы с Slime Worlds я рекомендую использовать плагин You must be logged in to see this link. вместе с модулем You must be logged in to see this link. и You must be logged in to see this link.. Имейте ввиду, что SuperiorSkyblock2 может выступать в роли не только плагина на скайблок, но и просто менеджера миров/островов, он очень гибок в этом плане. Я даже знаю примеры, когда западные сервера использовали его для очень специфичных задач по типу личных камер на Prison.
Увы, но для такой же системы межсерверности как на том же Skyblock RPG, вам необходимо купить модуль SSBProxyBrige (30$ в месяц) и для специфичных задач нужно писать свой плагин/мост. Но для большинства задач будет достаточно SSBProxyBrige.
Кластеры и балансировка
Необходим SSBProxyBrige и собственные разработчики, которые умеют работать с Cross-server системами. Если вы планируете держать много игроков - вам нужна система кластеров. С этой системой будут выделятся сервера, рассчитанные на определённое количество игроков и миров. Для развёртывания и управления большого количества серверов подобного типа рекомендую использовать CloudNet с Docker (более удобнее будет) или чистый Docker.
Например как выглядит кластер для сервера типа Origin Realms & Hypixel Skyblock RPG.
Сервера локаций:
• Spawn-1
• Spawn-2
• Rpg-1
Сервера островов:
• Islands-mini-1
• Islands-big-1
• Islands-big-2
На спавне логично что находиться спавн, но вы также туда можете поместить и локации. Но если много локаций - создайте отдельный кластер под локации. Для сервера островов лучше использовать два типа: mini и big. Mini для островов с маленьким количеством игроков, а big - большого. Но тут вы уже вправе решать самим как распределять игроков.
Вынужденные необходимости
Почти все плагины на вашем проекте должны иметь поддержку базы данных и Cross-server. Использование брокеров по типу Redis/Rabbit/Nats является необходимостью для быстрой работы и полной поддержки нужного функционала.
Вам придётся заказывать или писать самим:
• Более гибкая балансировка нагрузки
• Управление кластерами
Хоть и есть публичные плагины, но их функционала и гибкости недостаточно. Но все же их использование ускорит разработку вашего проекта, а это очень важно, если вы не хотите проект с бесконечным циклом разработки.
Небольшой список полезных плагинов:
• You must be logged in to see this link. - Просто доступный и хорошо сделанный core плагин, который повторяет все основновые механики Skyblock rpg (и не только) с поддержкой редис и кросс-сервер.
• You must be logged in to see this link. - Он недавно вышел в релиз. Энтузиасты повторили почти полностью техническую часть Skyblock rpg, способная выдержать сотню тысяч игроков так же, как и на Hypixel. Он основан на ядре Minestom и микросервисах, по этому не совместим с плагинами paper/spigot/bukkit. Он использует аналог слаймов.
• You must be logged in to see this link. - Позволит вам удобно развернуть и масштабировать ваш сервер как угодно. Ускоряет и авторизует многие этапы разработки и продакшна. Вы так же там частично можете сделать систему балансировки нагрузки, например через их API или готовый модуль smart + docker.
• You must be logged in to see this link. - Это прокси нужно, если вы планируете маршрутизировать обрабатывая тысячи игроков с минимальными количеством памяти. Это самое производительное прокси в Minecraft, которое потребляет несколько десятков мегабайт памяти на тысячи игроков. Совместим с другими прокси (Velocity/Bungee) и Kubernetes.
• You must be logged in to see this link. - Многие плагины от этого автора (например HuskSync и HuskHomes) вам понадобятся, если хотите быстро сделать систему межсерверной синхронизации. Вы можете все сами написать, но спросите себя: действительно ли это необходимо?
• You must be logged in to see this link. - Форк RedisBungee, который имеет обратную совместимость с плагинами с поддержкой RedisBungee. Это вам необходимо, потому что удобно и полезно для такого типа сервера.
• You must be logged in to see this link. - Современный плагин на чат, он поможет вам создать гибкий кросс-серверный чат для всего проекта.
• You must be logged in to see this link. - Ещё один хороший плагин на современный чат со своими фишками.
• You must be logged in to see this link. - Это не всем пригодится, но плагин позволяет отправлять команды между серверами, а также выполнять шаблоны команд. Например ввел /save-all-servers и save-all отправился на десяток серверов.
• You must be logged in to see this link. - Один из лучших плагинов на Bedwars. Имеет поддержку Slime worlds и Cloudnet.