Все хотят играть красиво!

8 апр 2016
Все хотят играть красиво!
  • Все хотят играть красиво!
    Дорогой читатель! Наверняка тебе известно, что с начала года проект MM Classic переехал на новую карту с версией 1.8.8. Можно долго петь дифирамбы о том, каким красивым и реалистичным стал сервер, насколько удобны дороги и насколько величественен теперь Спавноград. Все это так. Мой рассказ пойдет немного о другом.
    После перехода на новую версию я внезапно обнаружил, что играть стало жутко некомфортно. Мучали постоянные глюки и лаги. Прошел месяц, все вроде устаканилось, а антипрелести никуда не пропали. Вот тут-то я и задался вопросом – так ли хорош мой компьютер?
    Начались мучительные поиски истины. Множественные консультации, копание в «Великой помойке» и все в таком духе. Итог – мой компьютер не полный отстой, но уж точно слабоват. По ходу действия выяснились еще некоторые нюансы. Но обо всем по порядку:

    • Пожалуй, основным недостатком является то, что Minecraft написан на Java. Одним из свойств среды Java является неслыханный аппетит к оперативной памяти.
    • У Minecraft плохо оптимизирован программный код.
    • Хочешь красоты - покупай видеокарту помощнее.
    • Качество связи, обеспечиваемое интернет-провайдером, играет не последнюю роль.
    Мой рецепт «долголетия».
    Как показала практика, в качестве основы лучше иметь операционную систему x64. Как минимум, это даст возможность операционной системе использовать более 4 Гб оперативной памяти. В моем случае это Windows 7 ultimate x64. Установил Java x64 (именно x64, не перепутайте) и увеличил оперативную память с 4 до 10 Гб (так уж получилось).
    Программная начинка. Начинаем жизнь с чистого листа! Качаем «нулевой» клиент. Предварительно не забываем скопировать греющую сердце папочку c:\Users\ЮЗЕР\AppData\Roaming\.minemoscow в укромное место (а вдруг что) и полностью удаляем ее по указанному пути. Клиент сам докачает вновь все необходимые файлы по указанному адресу. Вуаля, клиент установлен, правда не умеет говорить по-русски. Ничего, научим. К слову, (!) клиент Minecraft Moscow содержит предустановленные актуальные версии Forge, Optifine и Voxelmap. По сути, все. Если игрок не заморочен визуальными эффектами и расширяющими функционал плагинами, то этого должно хватить.

    Немного о Java.
    Я не ахти какой специалист в тонкостях вопроса, но вот что удалось наковырять на просторах «Великой помойки». Как известно, прямо из клиента можно задать верхний предел использования оперативной памяти Java для работы Minecraft. Делается это так: в настройках профиля в строке «Аргументы командной строки» прописывается -Xmx1G, где число - это объем выделяемой памяти в гигабайтах. Соответственно, его можно увеличить до 2, 3 и более. Я, в конечном счете, выделил 6. Если вы озадачились сменой системы и увеличением объема оперативной памяти, то советую увеличить хотя бы до 2.
    В сети советуют непосредственно в настройках Java изменить этот и другие параметры. Сделать это очень просто. Заходим в панель управления и запускаем управление Java (Java Control Panel). Во вкладке Java нажимаем кнопку View. Откроется окно Java Runtime Inveronment Settings. В этом окне должна находиться единственная строка, соответствующая установленному у вас приложению Java. В ячейке Runtime Parameters можно прописать следующие параметры:

    • -Xms1024m изначальный объем выделяемой оперативной памяти;
    • -Xmx6144m максимальный объем выделяемой оперативной памяти,
    Где число – это количество мегабайт выделаемой памяти.
    Теперь пробуем запускать игру. Для чистоты эксперимента не меняйте первое время настройки клиента по умолчанию. Если все работает и устраивает, то играйте на здоровье! Почему я выделил 6 Гб оперативной памяти? А из интереса – сколько «скушает» эта обжора Java? Так вот, при работе программы максимальное количество «потребляемой» оперативной памяти в моем случае составляет 5.5-5.7 Гб.
    !Примечание: на относительно слабых машинах с ОС x32 может вполне хватить установки чистого клиента, правда, играть придется на дефолтных текстурах, возможно, с заниженными параметрами графики. Но об этом я еще расскажу далее.

    Любителям всевозможных плагинов посвящается.
    Как я уже упоминал, у меня установлен чистый клиент с одним-единственным на данный момент профилем MMClassic. Безо всяких проблем я установил на него Macro Keybind mod и WorldEdit для одиночной игры. Предполагаю, что и мод Schematica установится легким движением руки. Также возможен перенос точек пути.

    Очень важным аспектом комфортной игры является качество связи, которое обеспечивает ваш провайдер сети интернет.

    • Во-первых, желательно использовать прямое подключение компьютера через патч корд к роутеру. Если такая возможность отсутствует, то установите внутренний беспроводной адаптер (не USB).
    • Во-вторых, здоровый пинг еще никому не вредил! Проверьте пинг от вашего компьютера до игрового сервера MM. Делается это просто. В меню Пуск выбираем «выполнить» и вводим команду cmd (вызываем консоль). В позиции мигающего курсора вводим команду ping game.Minecraft-Moscow.com -t (пробел перед -t обязателен). Нажимаем ввод. Начнется пингование вашего компьютера с игровым сервером.
    Справка: Ping - это специальная сетевая программа, которая поставляется со всеми современными операционными системами. Программа эта позволяет измерить время ответа (иногда говорят «время реакции») компьютера на запрос в сети.
    Следует обратить внимание на параметр время (time). Нормальный пинг ниже 100 мс, а показания времени стабильные ± 1 мс. Если ваш пинг превышает 110-115 мс, играть будет некомфортно с любой конфигурацией компьютера. Варианты – изменить подключение (прямое кабельное с последующей проверкой пинга) или сменить провайдера.
    В моем случае при прямом подключении стабильный пинг 94-97 мс. Играть вполне комфортно.

    На сладкое. Ресурспаки и шейдерпаки. С чем это едят и как не подавиться?

    Понять – значит упростить
    Д. Строгов

    Всегда и везде найдутся гурманы визуальных эффектов. Такие эффекты в игре Minecraft достигаются двумя способами – установкой ресурспаков и шейдерпаков. Ресурспаки частично или полностью изменяют внешний вид всех объектов в игре, а шейдерпаки добавляют световые эффекты, гладь воды, отражения, туманность, вид дождя, эффект покачивания листвы - в общем, все то, что делает игру намного реалистичней в рамках «quadratum mundi», то бишь квадратного мира.
    Не буду томить ожиданием читателей. Тем, кто хочет использовать на полную катушку визуальные эффекты (особенно шейдерпаки), придется раскошелиться на добротную видеокарту. Ресурспаки оказывают много меньшую нагрузку, нежели шейдерпаки, но на относительно слабых машинах могут заметно снизить FPS.
    Чтобы до конца разобраться с работой шейдеров, мне пришлось заменить и видеокарту. Признаться честно, это было не столько необходимостью, сколько желанием. Все мои попытки хоть чуточку примирить свое восприятие с работой шейдеров на моей GT 440 окончились полным фиаско. Снижение FPS до 10-15 категорически не способствовало примирению. Произвел замену видеокарты на GTX 750 ti. И – о, чудо! На дефолтных текстурах FPS шкалит за 250, а с текстурпаком 128х128, довольно «тяжелыми» шейдерами и настройками графики «выше скромного» FPS удерживался в пределах 60-80.
    Разумеется, все немного сложнее. Помимо хорошего «железа» необходима корректная настройка графики.
    На этом можно было бы остановить мой рассказ, но разве можно обойти стороной людей, жаждущих играть и не имеющих дорогого и мощного «железа»? Конечно же, нет. Тем более, что я обещал об этом сказать.
    На относительно слабых компьютерах можно играть в Minecraft. И, прежде всего, хотелось бы пояснить, какие компьютеры я считаю относительно слабыми. На мой взгляд, это машина со следующими параметрами:

    • Процессор Core i3
    • Оперативная память до 4 Гб
    • Видеокарта типа GeForce GT 440
    • ОС Windows x32
    Примерно так.
    Игроку, имеющему компьютер с подобными параметрами, скорее всего, придется свыкнуться с мыслью, что играть он будет на дефолтных текстурах без шейдерпаков. Такой пример есть у меня дома. После установки чистого клиента и оптимизации работы Java, игра запускается без проблем. Но для того, чтобы поднять FPS пришлось повоевать с настройками графики посредством Optifine. Ранее я упоминал, что в «клиент» ММ интегрирован Optifine и вам не придется ломать мозг над тем, как его установить.
    Справка: OptiFine – мод, значительно увеличивающий производительность игры, добавляющий поддержку HD ресурспаков, а также сглаживание, анизотропную фильтрацию и прочее.
    Вы, конечно, можете найти информацию по настройке Optifine в «Великой помойке», прежде всего это страничка Вики. Там в общих чертах описаны настройки. Я попробую сократить вам путь.


    Настройка Optifine и графики в целом.
    Зайдя в «Настройки», а затем в «Настройки графики» в игре, можно увидеть много новых кнопок и улучшенные старые.
    Справка: настройки по умолчанию или дефолту (default) – значения параметров (настроек) какой-либо программы, предустановленные разработчиком.
    FPS – аббревиатура от «Frame Per Seconds», буквально переводится как «кадры в секунду». Чем больше величина FPS, тем быстрее, плавней и качественней будет геймплей.

    • Графика – «быстрая» и «детальная». Детальность графики, разумеется, влияет на производительность. Эта настройка управляет несколькими опциями раздела Details.
    • Дальность прорисовки – изменяется от tiny до extreme. У меня стоит 9 normal. Также влияет на производительность.
    • Наибольшая частота кадров – регулируется от 0% (VSync вертикальная синхронизация) до 100% (max FPS максимально возможное количество кадров в секунду). Я установил на максимум.
    • Мягкое освещение – имеет три положения «выкл.», «минимум», «максимум». Для максимальной производительности рекомендуется установить на «Минимум» или отключить. При отключении опции, будет немного некомфортно глазам, но этим можно поступиться.
    • Smooth Lightning – регулируется от 0% (отсутствие сглаживания освещения) до 100% (максимальное сглаживание). В комментариях написано 50% - светлые тени, 100% - темные тени. Я установил 50%.
    • Яркость – это яркость. Экспериментируйте! Я довольно хорошо вижу в темноте при яркости 100%.
    • Fog – регулирует внешний вид тумана или отключает его. Для слабых компьютеров рекомендуется отключить.
    • Fog start – расстояние между туманом и игроком.

    Раздел Details (детали).
    • Clouds – облака. По дефолту устанавливается согласно настройкам Графики. Также могут быть fast (рендеринг 2D), fancy (рендеринг 3D) или отключены. Влияет на производительность.
    • Cloud Hight – регулируется высота облаков.
    • Trees – деревья. По дефолту устанавливается согласно установкам Графики. Также могут быть fast (непрозрачные), fancy (прозрачные). Влияет на производительность.
    • Rain and Snow – дождь и снег. По дефолту устанавливается согласно установкам Графики. Также могут быть fast (быстрее), fancy (качественнее) или отключены. При отключении опции вспышки молнии и звук дождя присутствуют. Влияет на производительность.
    • Sky – небо. Отключено или включено - соответственно, с отключенным быстрее. Когда небо отключено, луна и солнце остаются видимыми.
    • Stars – звезды. Включены, отключены.
    • Sun & Moon – луна и солнце. Включены, отключены. По дефолту включены.
    • Show capes – показывать плащи.
    • Translucent blocks - управляет цветовым переходом полупрозрачных блоков с различным цветом (стеклянная панель, вода, лед), когда они размещены друг позади друга с воздухом между ними. По дефолту fancy (корректный цветовой переход), можно поставить fast (быстрее).
    • Held item tooltips – подсказки для предметов в руке.
    • Dropped items – брошенные предметы. По дефолту устанавливается согласно установкам Графики. Также могут быть fast (рендеринг 2D), fancy (рендеринг 3D). Влияет на производительность.
    • Vignette – эффект виньетки, когда углы экрана слегка затемняются. По дефолту регулируется установками Графики. Также могут быть fast (отключен), fancy (включен, медленнее). Эффект виньетки может значительно влиять на FPS, особенно в полноэкранном режиме.
    В разделе Animations содержатся все настройки анимации – вода, огонь, красная пыль, порталы и пр. Для слабых компьютеров их можно отключить, нажав на кнопку All off.

    Раздел Quality (качество).
    • Mipmap Level или уровень MIP-текстурирования – улучшает внешний вид далеких блоков за счет сглаживания текстуры. Изменяется от «выкл.» до уровня 4. Изменение именно этой настройки (уменьшение) дало мне максимальный прирост FPS. Визуальный эффект – при рассмотрении отдаленных блоков видно зернистую текстуру. Привыкнуть можно.
    • Mipmap type – изменяет тип сглаживания дальних текстур. Имеет четыре уровня от минимального nearest до максимального trilinear. Вывод очевиден.
    • Anisotropic filtering – анизотропная фильтрация позволяет регулировать качество сглаженных функцией Mipmap текстур. Чем выше, тем тяжелее «железу».
    • Antialiasing – сглаживание краев моделей. Эта настройка сильно влияет на производительность.
    • Clear water – прозрачность воды
    • Better grass – улучшенная трава (насколько помню, показывает цельный блок травы, а не только верхнюю часть).
    • Random mobs – использование различных текстур для одного вида мобов (должно поддерживаться ресурспаком).
    • Better snow – показывает снег под прозрачными блоками (забор, высокая трава), когда они граничат с блоками снега.
    • Custom fonts – поддержка шрифтов из ресурспаков.
    • Custom colors – поддержка цветов из ресурспаков.
    • Swamp colors – цвет болот.
    • Smooth biomes – сглаживание границ биомов.
    • Connected textures – убирает границы блоков (сливает блоки), расположенных вплотную (стекло, книжные полки), опция должна поддерживаться ресурспаком.
    • Natural textures – убирает сетку между повторяющимися блоками одного типа, опция должна поддерживаться ресурспаком.
    • Custom sky – поддержка неба из ресурспака.
    • Custom items – поддержка предметов из ресурспаков.
    Настройки в разделах Perfomance и Other я оставил без изменений, за исключением одной – Other>Show FPS>ON. При включении этой опции в левом верхнем углу вы будете видеть ваш текущий FPS и еще некоторую информацию.
    Предлагаю вам, читатели, в разделах Perfomance и Other разобраться самим.

    Для максимальной производительности на Вики рекомендуют использовать следующие настройки:

    • Графика – быстрая
    • Дальность прорисовки – не выше normal
    • Мягкое освещение – выключено или минимально
    • Smooth Lightning – выключено
    • Наибольшая частота кадров – max FPS
    • Clouds – off
    • Fog – off
    • Animations – all off
    • Sky – off
    • Stars – off
    Справедливости ради добавлю, что тонкая настройка графики помогает увеличить комфортность игрового процесса и на компьютерах с хорошим «железом».
    Вот и подошел к концу мой рассказ. Если моя писанина кому-то помогла, буду только рад. Засим, откланяюсь.

    С пожеланиями добра и света!
    Pashaoff

    P. S. Все написанное получено мной эмпирическим путем, многодневными изысканиями крупиц информации в «Великой помойке» и не претендует на истину в последней инстанции. Экспериментируйте, друзья!

    P. P. S. Еще о Java.
    По материалам статьи автора jadedcat.
    В Java существует несколько областей памяти, размером каждой из которых можно управлять.
    Большинство лаунчеров могут регулировать только размер кучи (heap). Эта область позволяет вместить большой объём данных не зависимо от количества переменных.
    Это, конечно, хорошо, но клиентам с большим количеством модов важна и еще одна область памяти - Permanent Gengeneration. Она отвечает, грубо говоря, за количество переменных, которым процесс Java сможет оперировать. Именно в ней создаются все новые объекты, прежде чем переместиться в кучу (основная память).
    Эту область лаунчеры позволяют регулировать очень и очень редко.
    Собственно, Java позволяет оперировать размерами областей памяти и другими параметрами ВМ (ВМ - виртуальная машина джавы, JVM) несколькими способами, два основных из которых:

    • Аргументами командной строки (как это делают лаунчеры и BATники).
    • Специальной системной переменной _JAVA_OPTIONS
    О втором способе и о некоторых аргументах ВМ я и хочу сейчас рассказать. Оговорюсь сразу - я буду рассказывать, опираясь в примерах на операционную систему Windows 7, так как именно она стоит у меня на рабочем компьютере. Как устанавливать системные переменные для других ОС вы сможете отыскать в интернете.

    Для того, чтобы создать системную переменную, нужно:

    • Открыть Панель управления (Пуск - Панель управления) и выбрать меню Система. Либо, кликнув правой кнопкой мыши на Мой компьютер и выбрав Свойства.
    • В левой части открывшегося окна нажать Дополнительные параметры системы.
    • Перейти на вкладку Дополнительно и нажать Переменные среды.
    • В верхнем списке проверить наличие переменной _JAVA_OPTIONS, и если она есть - удалить её (выделив и нажав кнопку Удалить).
    • Нажать кнопку Создать.
    • В верхнее поле открывшегося окна (Имя переменной) писать _JAVA_OPTIONS, а в нижнее - необходимые аргументы ВМ (о них я расскажу ниже).
    • Закрыть все окна, нажав в каждом из них кнопку ОК.

    Аргументы Виртуальной Машины Java:
    -Xms Изначальный объем памяти кучи, который выделен ВМ. Идеальное, на мой взгляд, значение - это 1024m. Больше не имеет смысла, чем больше памяти клиент откусит - тем более неповоротливым он станет. Существенное увеличение потребления памяти, вопреки ожиданию большинства игроков, только усугубит лаги.
    -Xmx Максимальный объем памяти кучи, доступный конкретному экземпляру ВМ. Именно этот параметр регулируется в лаунчере. Рекомендую устанавливать значение или равное предыдущему, или на 512m больше.
    -XX:РermSize Изначальный объем памяти типов (PermGen). Очень и очень полезен для клиентов с большим количеством модов. По умолчанию выделяется 128m для x32 систем и 256m для x64. Идеальное значение для наших клиентов - 512m. Слишком большое значение выставлять не рекомендую.
    -XX:MaxPermSize Максимальный объем памяти типов. Крайне рекомендую устанавливать такой же объем, как и для прошлого аргумента.
    Внимание! Если у вас установлена Java 8, то последние 2 аргумента (-XX:РermSize и -XX:MaxPermSize) не имеют ни какого эффекта. Дело в том, что в Java 8 область PermGen была упразднена и заменена на новый тип памяти metaspace, который более оптимизирован и его размер изменяется автоматически.
    -XX:+DoEscapeAnalysis Очень интересный аргумент с точки зрения программиста. В некоторых случаях позволяет ускорить алгоритмы до 10 раз. С точки зрения игрока - может немного увеличить ФПС, но не всегда.
    -XX:+AggressiveOpts Включает несколько других аргументов, которые приносят агрессивную оптимизацию в выполнение приложения. На практике - на некоторых компьютерах (я бы сказал на большинстве) дает довольно ощутимый прирост ФПС.
    -XX:+UseCompressedOops На x64 системах позволяет существенно (до 60%) сократить потребление памяти кучи. Из недостатков - невозможность задать размер памяти кучи больше 4Гб (нам не актуально) и несущественные дополнительные расходы процессорного времени.
    -XX:+EliminateLocks Позволяет исправить некоторые, весьма нагружающие код, ляпы программистов. В теории должно немного поднять ФПС. На практике не обращал внимания.
    Существует еще довольно много аргументов ВМ (больше 700), многие из которых довольно интересны, но вышеперечисленные дают самую заметную выгоду из всех.
    Итак, подводя итоги... На мой взгляд, хорошим набором аргументов ВМ будет следующий:

    -Xms1024m -Xmx1536m -XX:РermSize=512m -XX:MaxPermSize=512m -XX:+DoEscapeAnalysis -XX:+AggressiveOpts -XX:+EliminateLocks

    Следует учесть, что для пользователей Java 8 строки "-XX:РermSize=512m -XX:MaxPermSize=512m" не будут иметь ни какого смысла.
    Не бойтесь экспериментировать с аргументами, ничего страшного с их помощью вы не сможете сделать, однако при их тонкой подгонке под свой компьютер можно получить очень большой прирост FPS.

    Об ошибках.
    Иногда (всех причин я понять не смог) при таком указании аргументов ВМ некоторые процессы Java (в том числе клиент и лаунчер) перестают работать. Выводится соответствующее сообщение вместо запуска лаунчера (или другого приложения).
    В некоторых случаях это может быть вызвано некорректными аргументами. Попробуйте еще поэкспериментировать с ними.
    В других случаях не запускаются только некоторые Java приложения (например, Zona), в то время как клиент майнкрафта очень хорошо работает. В таких случаях можно временно отключать настройку аргументов, переименовав _JAVA_OPTIONS, к примеру, в ex_JAVA_OPTIONS. Java сразу перестанет подхватывать такие инструкции.
    В некоторых, очень редких случаях, сама инструкция _JAVA_OPTIONS (даже с самыми безопасными аргументами) приводит к полной неработоспособности Java. В таких случаях я могу посоветовать только переустановку Java. Некоторым помогает, но не всегда. Был случай, когда никакими способами я так и не заставил работать эту инструкцию у друга.
    P.S. Пара небольших советов:

    1. Переустановить Windows на версию х64. Обязательно, и не обсуждается.
    2. Переустановить Java на х64 принудительно. Обязательно, и не обсуждается.
    jadedcat

    Все хотят играть красиво! Часть II. Неистребимое стремление к прекрасному. Шейдеры и ресурспаки.
    Ссылка на обсуждение статьи в форуме.

    Для просмотра оффлайн
    Скачать CHM-версию статьи.



  • Загрузка...
Wenn и Rueil нравится это.