olimpiada80
Гражданин
- Сообщения
- 690
- Реакции
- 1.066
- Баллы
- 420
Весь мир Minecraft разделён на куски площадью 16х16 кубов и высотой от бедрока до «космоса» Этот кусок называется - Чанк. Высоту чанка можно ограничивать. Все чанки в радиусе видимости игроков загружены в память сервера. В многопользовательском режиме чанки загружаются в радиусе 10 чанков от игрока (21 на 21 чанк). Радиус загрузки настраивается. За «один такт» сервера обрабатывается каждый загруженный чанк. В это время выполняется следующее, все активные чанки, находящиеся в определенном радиусе от игроков обновляются (обрабатываются) по очереди.
Для каждого чанка выполняется обработка:
1. Обработка погоды. Снег, дождь.
2. Случайная обработка блоков — из всего чанка выбирается несколько десятков случайных блоков, проверяется по типу каждого блока, нужно ли эти блоки обновлять. Например, установка/удаление блоков с карты или быстрое заполнением пространства жидкостью.
3. Обязательная обработка блоков - печи (соотношение сожженного материала к топливу), стойки зельеварения, спаунеры мобов.
4. Срочная обработка блоков – блоки, на которые влияет игрок в игре. Это огонь, вода и все что связано с редстоуном, причем учитываются задержки (например, на повторителе).
5. Обновление света. Minecraft использует статическое освещение, разделенное на блоки. Каждый блок имеет свой уровень освещённости от 15 до 0. При изменении блоков их освещённость должна быть пересчитана. Есть два типа освещения — от блоков (факелов, огня, ламп, лавы) и от неба, если оно есть (в Нижнем мире его нет). Оба типа рассчитываться независимо.
6. Обработка объектов. К объектам относятся мобы, предметы, валяющиеся на земле (с убитого игрока или лут), тележки, лодки, картины, рамки, таблички-магазины, молния, стрелы. При обработке проверяется их наличие (например, живы ли мобы). Если объекта нет, то он удаляется из памяти сервера.
7. Спаун мобов. Мобы спаунятся в определенном радиусе от игрока, при этом выбирается случайная точка в чанке и на основе нескольких сдвигов в разные стороны выбирается, можно ли поставить туда моба, после чего моб появляется.
8. Обработка игроков. Тут обрабатывается обмен пакетов сервер – клиент (лаунчер игрока).
9. Генерация или загрузка чанка. Пример генерации чанка, когда после вайпа нижнего мира вы видите, как перед вами начинает с потолка течь лава, образуя привычный для той карты «водопад» лавы. Пример загрузки чанка, когда игрок видит перед собой огромную пропасть до дна, но не может в неё упасть (если чанк не загружается можно поставить рядом факел или переподключится к серверу).
10. Сохранение чанка. Происходит во время общего сохранения сервера или просто, когда чанк долго не использовался (неактивные чанки на карте остановлены и являются полностью статичными), он может быть выгружен и сохранится.
Для каждого чанка выполняется обработка:
1. Обработка погоды. Снег, дождь.
2. Случайная обработка блоков — из всего чанка выбирается несколько десятков случайных блоков, проверяется по типу каждого блока, нужно ли эти блоки обновлять. Например, установка/удаление блоков с карты или быстрое заполнением пространства жидкостью.
3. Обязательная обработка блоков - печи (соотношение сожженного материала к топливу), стойки зельеварения, спаунеры мобов.
4. Срочная обработка блоков – блоки, на которые влияет игрок в игре. Это огонь, вода и все что связано с редстоуном, причем учитываются задержки (например, на повторителе).
5. Обновление света. Minecraft использует статическое освещение, разделенное на блоки. Каждый блок имеет свой уровень освещённости от 15 до 0. При изменении блоков их освещённость должна быть пересчитана. Есть два типа освещения — от блоков (факелов, огня, ламп, лавы) и от неба, если оно есть (в Нижнем мире его нет). Оба типа рассчитываться независимо.
6. Обработка объектов. К объектам относятся мобы, предметы, валяющиеся на земле (с убитого игрока или лут), тележки, лодки, картины, рамки, таблички-магазины, молния, стрелы. При обработке проверяется их наличие (например, живы ли мобы). Если объекта нет, то он удаляется из памяти сервера.
7. Спаун мобов. Мобы спаунятся в определенном радиусе от игрока, при этом выбирается случайная точка в чанке и на основе нескольких сдвигов в разные стороны выбирается, можно ли поставить туда моба, после чего моб появляется.
8. Обработка игроков. Тут обрабатывается обмен пакетов сервер – клиент (лаунчер игрока).
9. Генерация или загрузка чанка. Пример генерации чанка, когда после вайпа нижнего мира вы видите, как перед вами начинает с потолка течь лава, образуя привычный для той карты «водопад» лавы. Пример загрузки чанка, когда игрок видит перед собой огромную пропасть до дна, но не может в неё упасть (если чанк не загружается можно поставить рядом факел или переподключится к серверу).
10. Сохранение чанка. Происходит во время общего сохранения сервера или просто, когда чанк долго не использовался (неактивные чанки на карте остановлены и являются полностью статичными), он может быть выгружен и сохранится.
Последнее редактирование: