Во первых новое сообщение из блога нотча. Тут просто копипаста с minecrafting.com:
Я вкратце поговорил с чокнутыми инженерами из Bat Country Entertainment насчёт модов, изменяющих лимит высоты в Minecraft. Райан скинул мне это интересное письмо, какие тут есть разные компромиссы и его опыт работы с этим:
Ах#*нчик! Прямиком из моей головы, вот список главных фишек:
Влияние изменения высоты:
— Влияние на память: Исходя из внутреннего устройства чанков, единственный относительно простой путь увеличения высоты уровня — удвоить её. В результате, потребление памяти может очень быстро выйти из под контроля при увеличении количества битов, доступных в оси Y. Недальновидно будет указывать, что это полностью управляется в синглплеере, но, практически, мультиплеер это уже осиное гнездо в плане потребления RAM, и единственный путь увеличить высоту уровня — это удвоить объём памяти. Довольно хреново.
— Влияние на CPU: Генерация чанков происходит кусками на X/Z плоскости, но считается, что чанк полностью заполнен в высоту, от админиума до неба. На самом деле, это можно смягчить, так как любой ландшафт выше определённой точки полностью предполагается как воздух, и весь ландшафт ниже другой определённой точки предполагается как камень, тем самым отбивая необходимость для просчёта температуры, влажности, биомов выше или ниже этой точки. Тем не менее, это всё ещё засорение кеша и забивание памяти. Что ещё хуже, так как подземные фичи генерируются в каждом чанке, то чтобы поддерживать равномерное распределение руды, нужно будет удвоить число вызовов, сделанных к определённому генератору, после каждого удвоения высоты. Это относительно ненапряжно для штук, типа руды, но вот генерация пещер происходит вдоль всей оси высоты, и, будучи рекурсивной функцией, она очень быстро станет ресурсоёмкой.
— Влияние на жёсткий диск: Всё, что хранится в памяти, требуется переносить на диск и обратно. Исходя из факта, что в синглплеере самый главный убийца производительности — даже на моём зверском компьютере — это ввод/вывод диска, серьёзно встаёт вопрос об удвоении записываемой на диск информации. Я не совсем уверен, сжимаются ли чанки перед записью на диск, или это происходит только при передаче их через сеть, но если они сжимаются, то это бесполезно — сжатие облегчает работу диска, но в то же время загружает CPU.
— Влияние на сеть: В мультиплеере чанки нужно передавать гораздо большему количеству людей и гораздо большее количество раз, чем в синглплеере. Это само собой разумеется с точки зрения клиента, сколько данных надо распихать серверу, и, хотя сетевые пакеты и сжимаются, это по прежнему дополнительная нагрузка сети и CPU.
Касательно изменения высоты уровня, это было «легко» в той степени, что это заняло у меня окло 4 часов вчерашнего утра чтобы сделать это, но только потому, что я ковырялся во внутренностях движка с января и психически отслеживал все предположения по поводу этого. Сверху вниз:
— Найдите по коду «11» и «7», замените их «12» и «8» по мере необходимости.
— Найдите по коду 128, это откроет большинство мест, относящихся к высоте карты, т.к. она равна 128.
— Когда меняете места, указанные выше, сохраните себе время рекомпиляции и убедитесь, что изменили все переменные от байтов до коротких целочисленных и т.д., если вы увеличиваете их больше 128. Будучи С++ кодером, я постоянно забывал, что в Java все переменные со знаком.
— Найдите по коду 127, это откроет оставшиееся места, относящиеся к высоте.
— Найдите «64» и «63», это места, где указывается уровень моря — 64, а также лимит высоты железной руды. Лично я поднял уровень воды до 96, вместо того, чтобы удваивать до 128, чтобы иметь 32 тайла дополнительной высоты воды, зато целых 96 дополнительной высоты земли.
— Поправьте генераторы редстоуна, алмазов, золота и т.д.
— Сделайте «grep» через все классы генератора, удваивая RNG baseline и распространяя для каждого.
— Исправьте пару «32768» на «65536», чтобы соответствовать 16*256*16, вместо 16*128*16.
— Я не уверен сколько из этого — результат JAD и сколько — собственно, код, но есть ещё парочка «char whatever = ‘\200’;” в MCP коде, исправьте это на short или int, содержащую 256 вместо 128.
Надо сказать, что игра шла довольно за#%ись с высотой, поднятой до 256. Я думаю 512 не будет сильно напрягать моего железного зверя, но 1024 точно поставит его на колени. Ещё, одна из моих целей, просто для прикола, посмотреть, не смогу ли я сделать Nether с 0-127 блоков, обычный мир с 128-255, небо с 256-383, а потом новое измерение одной из групп моддеров, Aether, с 384-511. Это будет эпично.
Ещё, есть один мод, который делает чанки 16х16х16, но он мне не нравится. Список багов такой же длинный, как хрен Джигурды, и ещё он не изменяет размеры генераторов всяких объектов, так что вы не получите ничего, типа такого:
Так что теперь я пытаюсь сделать то же самое сам. Я заполняю все чанки выше высоты 256 воздухом, ниже нуля — камнем, вручную запускаю генератор пещер, и, теоретически, всё заработает. Хотя в принципе, теория довольно шаткая штука, чтобы на неё опираться, поэтому я вылавливал баги последние 4-5 часов. На данный момент я уже могу зайти в игру, но чанки разбросаны, так что, я полагаю, я упустил какую-нибудь функцию хешинга, это также объяснит почему он постоянно плюётся ошибками „Wrong location!“, когда пытается заспаунить животное — уровень пытается подпихнуть не тот чанк.
— Райан
Теперь все известные нам скриншоты:
01
На этом скриншоте показан овраг, который будет генерироватся по новому методу генератора.Еще можно заметить более мягкое освещение.
02
Скриношот оврага с руинами.Справа какое-то серое растение, внизу зомби и только-что умерший скелет.Если хорошо посмотреть, то можно увидеть дверь.
03
Обычные руины, один из самых первых скриншотов.
04
Жаренная курочка: Р Так и съел бы :D. А еще Jeb говорит что добавили 5 рецептов еды. А внизу можно увидеть что похоже добавили голод, а между поясом и здоровьем появилась загадочная полоса, указывающаю то-ли опыт, то-ли жажду(но навряд-ли)
05
Тут сразу бросается в глаза — увеличина максимальная высота до n-ого значения.
Еще можно увидеть летающий остров.
06
Один из первых скриншотов. Во-первых на нем можно увидеть новый биом — большие грибы. Во-вторых мы можем увидеть деревни NPC.
Пока это всё.
P.S. Нотч запустил тест нового лаунчера.Вот ссылка на него: launch.minecraft.net/test.html
P.P.S Cледите за обновлениями в твиттерах разработчиков и бложике майнкрафта.
Обсуждаем :3
Лучшие комментарии
1.Круг магов…
2.Деревню Редклиф и замок…
3.Денерим(необязательно, это очень сложно)
4.Орзаммар…
Вообще, мне в HLDM ооочень наравится грантомет, во-первых, потому что можно увернуться от ракеты, во-вторых, даже если увернулся, есть вероятность, что ракета вернется!: З
Так-как я плохо себя вел, я не могу засунуть это в блог майнкрафта,: С
WoW задрот.