Вопрос Распределение нагрузки на сервер

Pe4en1e

Пользователь
Сообщения
10
Всем привет

Как происходит прогрузка мира, каждый мир на определенном потоке, или все в одном?
Если все на одном, то есть ли возможность распределить нагрузку?

Заранее спасибо
 
Всем привет

Как происходит прогрузка мира, каждый мир на определенном потоке, или все в одном?
Если все на одном, то есть ли возможность распределить нагрузку?

Заранее спасибо
Почти все в одном потоке идёт. Все бакит форки однопоточны.
Хочешь многопоток но с некоторыми приколами - folia/multipaper
 
В paper даже чанки загружаются в разных потоках, вопросы?
Если быть точным то только чанки он генит раздельно, в остальном проблемы бакита на лицо. Да, кое-где есть разделения, но они не дадут нормального прироста в работе
 
Почти все в одном потоке идёт. Все бакит форки однопоточны.
Хочешь многопоток но с некоторыми приколами - folia/multipaper
Происходит всё в одном потоке, что может вызвать огромные проблемы. Я знаю, что чат в отдельном потоке и загрузка чанков в множестве других, но всё синхронится, в отдельных потоках берутся данные и проводятся просчёты + сама генерация
Объединено

Кто не понимает как работает сервер в майнкрафте игра, то могу кратко объяснить, кто поймёт тот поймёт.
Есть один поток, каждая строка кода выполняется строго по своему порядку, в строгой последовательности как эти строки написаны разработчиком. Если создавать второй поток, то будет смещение потоков, возможно не так явно, но каждый раз то один поток, то второй будут смещаться друг от друга, то обгоняя, то отставая, из-за этого могут возникнуть проблемы, такие как дюп предметов, неправильное отображение какой-либо информации и так далее. Все просчёты можно выполнять в асинхроне, а в синхрон кидать уже готовый вариант, но опять же, это далеко не везде работает.
Это проблема майнкрафта, огромная проблема, у этой игры есть предел оптимизации и скоро либо мы ударимся в потолок, либо увидим новый майнкрафт с глобальным обновлением от моджанг
 
Последнее редактирование:
Тогда как мне лучше поступить если я на смп сервере хочу разделить мир ферм и построек дабы уменьшить нагрузку? Если через банжи/велосити то как переносить инвентарь игроков между мирами?
 
Это проблема майнкрафта
Нет, это проблема ядра ванилла. На рынке есть ядра, написанные с нуля без можанг - они таких проблем не имеют
Для решения проблемы, которую ты описал, существует множество подходов по написанию потокобезопасного кода

Например, Minestom спокойно использует пул потоков и не требует костылей, по типу разделения мира на куски (как Folia) или использования нескольких серверов (как MultiPaper). Однако, ядро сервера это очень большой проект и поэтому на Minestom крайне сложно воссоздать ванильные механики в полной мере. Он подходит для миниигр

Отмечу, что подход Folia немного похож на Minestom. Но неуверен, что они смогут добиться таких же результатов
 
и не требует костылей
Вопрос возможно спорный, но как такие костыли могут отразиться негативно на процессе самой игры? Пробовал и мультибумагу и фолию, все вполне нормально работает. Или тут уже вопрос глубже связанный с механиками и прочим? Или же эти костыли более чем юзабельны и ничего в этом такого нет?
 
Вопрос возможно спорный, но как такие костыли могут отразиться негативно на процессе самой игры? Пробовал и мультибумагу и фолию, все вполне нормально работает. Или тут уже вопрос глубже связанный с механиками и прочим? Или же эти костыли более чем юзабельны и ничего в этом такого нет?
Костыли в программировании это далеко не всегда про плохой пользовательский опыт. Тут вопросы связаны со сложностью разработки - это было в бакките всегда, так как баккит основан на ванилле. Мало того, что оригинальная ванилла не открытый проект и приходится иметь дело с обфускацией (благо майкрософт после 1.14 стали распространять оригинальные маппинги, хотя бы немного понятнее стало), так она ещё и написана плохо. Поменять архитектуру существующего закрытого огромного проекта так, чтобы ничего не поломалось и увеличилась производительность, нереально

Соответсвенно, попытки это сделать приводят к костылям, но выбора особо нет. Невозможно взять и реализовать ядро целиком на чистой архитектуре
 
Назад
Сверху Снизу