13:16 Интересное письмо Нотча | |
Ах#енчик! Прямиком из моей головы, вот список главных фишек: Влияние изменения высоты: - Влияние на память: Исходя из внутреннего устройства чанков, единственный относительно простой путь увеличения высоты уровня - удвоить её. В результате, потребление памяти может очень быстро выйти из под контроля при увеличении количества битов, доступных в оси Y. Недальновидно будет указывать, что это полностью управляется в синглплеере, но, практически, мультиплеер это уже осиное гнездо в плане потребления RAM, и единственный путь увеличить высоту уровня - это удвоить объём памяти. Довольно хреново. - Влияние на CPU: Генерация чанков происходит кусками на X/Z плоскости, но считается, что чанк полностью заполнен в высоту, от админиума до неба. На самом деле, это можно смягчить, так как любой ландшафт выше определённой точки полностью предполагается как воздух, и весь ландшафт ниже другой определённой точки предполагается как камень, тем самым отбивая необходимость для просчёта температуры, влажности, биомов выше или ниже этой точки. Тем не менее, это всё ещё засорение кеша и забивание памяти. Что ещё хуже, так как подземные фичи генерируются в каждом чанке, то чтобы поддерживать равномерное распределение руды, нужно будет удвоить число вызовов, сделанных к определённому генератору, после каждого удвоения высоты. Это относительно ненапряжно для штук, типа руды, но вот генерация пещер происходит вдоль всей оси высоты, и, будучи рекурсивной функцией, она очень быстро станет ресурсоёмкой. - Влияние на жёсткий диск: Всё, что хранится в памяти, требуется
переносить на диск и обратно. Исходя из факта, что в синглплеере самый
главный убийца производительности - даже на моём зверском компьютере -
это ввод/вывод диска, серьёзно встаёт вопрос об удвоении записываемой на
диск информации. Я не совсем уверен, сжимаются ли чанки перед записью
на диск, или это происходит только при передаче их через сеть, но если
они сжимаются, то это бесполезно - сжатие облегчает работу диска, но в
то же время загружает CPU. Касательно изменения высоты уровня, это было "легко" в той степени, что это заняло у меня окло 4 часов вчерашнего утра чтобы сделать это, но только потому, что я ковырялся во внутренностях движка с января и психически отслеживал все предположения по поводу этого. Сверху вниз: - Найдите по коду "11" и "7", замените их "12" и "8" по мере необходимости. - Найдите по коду 128, это откроет большинство мест, относящихся к высоте карты, т.к. она равна 128. Надо сказать, что игра шла довольно за#%ись с высотой, поднятой до 256. Я думаю 512 не будет сильно напрягать моего железного зверя, но 1024 точно поставит его на колени. Ещё, одна из моих целей, просто для прикола, посмотреть, не смогу ли я сделать Nether с 0-127 блоков, обычный мир с 128-255, небо с 256-383, а потом новое измерение одной из групп моддеров, Aether, с 384-511. Это будет эпично. Ещё, есть один мод, который делает чанки 16х16х16, но он мне не нравится. Список багов такой же длинный, как хрен Джигурды, и ещё он не изменяет размеры генераторов всяких объектов, так что вы не получите ничего, типа такого: | |
|
Всего комментариев: 0 | |