Category: it

Category was added automatically. Read all entries about "it".

Пятничное - о наболевшем



Кстати, деактивированный "поросенок" ожидает отдел баланса где-то уже год. Сомовывоз, адрес по запросу :)
  • kruta

9.0 enableBalanceCPU

Всем привет.

Пост будет информационный+сбор данных.

В версии 9.0 мы добавили одну интересную фичу - перебрасывание процесса танков на ядро, не занятое системой.
На ядре, где работает система, работает, соответственно и видео драйвер.
Разделение потоков системы и игры во многих случаях может дать неплохой прирост производительности (что как раз и наблюдается у многих игроков в версии 9.0).

Но, к сожалению, это работает не всегда. И, как оказалось, в определённых случаях это может дать как уменьшение производительности в целом, так и добавить фризы и просадки.

Если у вас наблюдаются проблемы с производительностью или резкие просадки (которых не было в предыдущей версии 8.11) то можно попробовать выключить этот параметр и, соответственно, сделать так чтобы процесс игры работал на том же ядре что и процессы системы.

Что для этого нужно сделать:

Сам параметр для настройки находится в файле res/engine_config.xml в папке с игрой.
Старый файлик для начала нужно сохранить куда нибудь в сухое и прохладное место для надёжности.

Если вы кулхацкер и умеете распаковывать XML (декомпиляторы!!!), то тогда вам нужно найти в этом файле параметр enableBalanceCPU и установить его в значение false.

Если вы не хотите лезть в файл и менять там параметры, то вот тут можно скачать архив (спасибо доброму человеку с форума MoreBlood), в котором находятся 2 файлика (измененный и старый на всякий случай).
Файл engine_config.xml из архива нужно положить в папку res, которая находится в папке с игрой.

Если вам это внезапно помогло (fps подрос или пропали просадки производительности), то очень прошу скинуть в эту тему в комментарии ваш dxdiag и настройки игры, которыми вы пользуетесь (скрины настроек).

Всех желающих прошу проголосовать в опросе.
Poll #1964995 enableBalanceCPU

Помогла ли вам установка параметра enableBalanceCPU в значение false?

Да, помогла - производительность увеличилась.
58(11.2%)
Да, помогла - производительность особо не изменилась, но пропали фризы и просадки fps.
69(13.3%)
Попробовал, но ничего не поменялось.
138(26.6%)
Попробовал, но стало хуже - упал fps или появились просадки производительности.
45(8.7%)
Не пробовал - меня устраивает та производительность что есть.
108(20.8%)
Непробовал т.к. не хочу/не играю в танки/атака НЛО/посевная/брачный сезон и т.п.
101(19.5%)


Заранее всем спасибо за отзывы.

Серьезная тема - процедурная генерация текстур и всего остального.

Процедурно генерируемые текстуры. Тема сложная, но нужная. Есть три довода, почему это надо делать.

Во-первых, проблема сейчас в том, что игра не только имеет большой размер, но и со временем будет еще больше пухнуть. Скачивать ее станет все труднее. Особенно плачевно это скажется на людях с не очень скоростным интернетом и с не очень новым компьютером. Следует задуматься о том, как сжать игру. Сейчас она сжата ZIP-ом, а надо добиться принципиально нового сжатия, уменьшающего размер в несколько раз. Есть только один способ это сделать: процедурная генерация текстур, происходящая либо при загрузке игры, либо при установке игры. Если делать генерацию при загрузке, то время загрузки увеличится, а если при установке - то время установки и размер игры на диске увеличатся. Думаю, что выбор следует предоставить самим игрокам.

Во-вторых, со временем игровая индустрия шагнет вперед и графику нужно будет опять улучшать. Вам хочется опять заново переделывать все текстуры, прорисовывая их с более высоким разрешением? С процедурной генерацией такой фигни не будет. Вы просто меняете два числа в программном коде (ширина и высота текстуры) - и дело сделано. Очень удобно.

В-третьих, можно подстраивать размер текстур динамически, в зависимости от того, какая у игрока видеокарта и сколько в ней видеопамяти. Если мало - сгенерировать при загрузке игры маленькие текстуры, если много - сгенерировать большие.

Делать процедурную генерацию реалистичных текстур, особенно фототекстур, сложно. А, ведь, это очень даже перспективная тема. Да и результаты разработки можно спокойно прменить для всех трех проектов: WOT, WOWP и WOWS. Никто из крупных компаний пока так не делал, но в 2000-х годах энтузиасты писали мини игры размером около 100 килобайт, в которых весь контент (текстуры, звуки, карты) был целиком процедурно генерируемым (название игры - .kkrieger, размер 98 килобайт). Жаль, что это направление не стало развиваться. А, ведь, стоит задуматься.

Читаем статью про процедурную генерацию.
http://en.wikipedia.org/wiki/Procedural_generation

Смотрим сайт разработчика процедурно генерируемых штуковин.
http://www.theproduct.de/

PS: А, ведь, еще можно будет сделать процедурно генерируемые модели: деревья, постройки, камни и прочее. Или вам охота перерисовывать домики с высокой детализацией под новую графику?

PPS: Потом, наверное, вы дойдете до динамических, генерируемых при загрузке карт, подобно тому, как сделано в Diablo. В 1997 году, в первом Diablo была реализована рандомная генерация карт из набора готовых блоков. В остальных сериях Diablo эта фишка сохраняется. Случайная генерация лабиринтов грамотно состыкована с системой клиент-сервер. Несколько игроков бродят по одной такой карте совершенно спокойно. А вам охота каждый раз рисовать новые карты вручную? Ведь, старые карты надоедают. А если каждый раз карта новая, то и игра не надоест. Вы подумайте.
Электронный Ра

Ливеры

Раздумываем о том, чтобы уменьшить количество ливеров (чуть ли не на старте). Ключевая задача - чтобы оставшиеся 14 игроков в команде не расстраивались из-за ухода одного из них. Например, блокировать выход в ангар, если танк игрока не уничтожен.
Что вы об этом думаете?
Какие варианты решения проблемы вам кажутся правильными?
Спасибо.

UPD: Ливер, это игрок, который намеренно нажал на кнопку "Выйти в ангар". AFK, бот, игрок с дисконнектом - ливерами не считаются.

Тестирование WG Public API

Товарищи, я тут нечастый гость (в том смысле, что ЖЖ не веду), поэтому если пишу не туда, скажите. Моя цель - достучаться до кого-нибудь из разработчиков или сотрудников Варгейминга, потому что других способов я не вижу. Я знаю, что они здесь появляются, поэтому и пишу.

По профессии я разработчик. То есть программист. Сижу себе, пишу код, компиляю, запускаю, радуюсь. И в один прекрасный день узнаю, что ВГ запускает тестирование своего Public API. Даже придумали WG Developer Program или как ее там, не помню.

Я тут сделаю небольшое отступление, чтобы рассказать о том, почему, по моему мнению, Варгейминг запустил эту Developer Program (Let's Develop же!). Если мои представления не верны, то дальше можно не читать.
По-моему, когда компания Варгейминг запустила эту программу, она хотела привлечь к разработке околоигровых ресурсов нормальных сторонних разработчиков. Красивый живой пример сервиса, который создали сторонние девелоперы - это всем известный wotreplays. Отличный сервис, которому и задонатить копеечку было бы не жалко, но они не просят. Более того, Варгейминг им и правда помог, нарисовал дизайн и, наверное, что-то еще сделал приятное, не знаю. Честь и хвала Варгеймингу за такое.

Вернемся к истории. Увидел я это объявление по поводу начала тестирования и вспомнил, что давно хотел запилить сервис поиска взвода, который пока никто не написал и пока не собирается. Даже провел маркетинговое исследование на фокус-группе из пары десятков посетителей coreanrandom: тыц.
В общем, подал заявку на тестирование. И тут как бы началось.

Я человек нетерпеливый, поэтому нарыл в сети описание текущего, закрытого API, поговорил с людьми, которые уже доступ получили и они мне подствердили, что новый Public API - это старый Private API. Я решил не ждать выдачи доступа, а начать пилить сервис сразу же. Как оказалось, не зря, потому как выдача доступа к тестированию затянулась на неделю или две. Ладно, чего уж тут сетовать, не впервой же. Проехали, выдали мне корочку бета-тестера API, даже доступ дали к кабинету разработчика пару дней назад.

Главной проблемой работы с API оказалось две. Одна - сугубо техническая. 503, 504, обрывы соединения - это печальная и суровая реальность. Но это же тест, можно и потерпеть. А вот вторая проблема уже сложнее и просто невыносимо бомбит. Форум.

Я понимаю, что на форуме контингент особенный, и разговаривать с людьми на форуме товарищи из ВГ не привыкли. Но когда вы создаете раздел форума для сторонних разработчиков, то общаться с ними вам придется, хоть убейте. Но то, что я вижу там сейчас, заставляет меня каждый день оттирать золу с ламината под стулом.
Мало того, что обсудить технические вопросы нельзя (модераторы трут), нельзя рассказать об архитектуре и особенностях реализации своего сервиса (модераторы трут), нельзя рассказать о своих думках о том, почему таки сыпятся 50х (модераторы трут), так еще и вопросы задавать нельзя. Ну то есть можно, конечно, но диалог выглядит примерно так:
Я: Здравствуйте, а сколько у вас стоит булка хлеба?
ВГ: Здравствуйте. Мы вчера были на складе хлебобулочной продукции, там все офигенно. Кстати, скоро мы выпустим новый батон, stay tuned.
Ну вот же живой пример.

WAT. Еще раз, товарищи из Варгейминга, если вы и правда хотите в результате своей работы получить хотя бы пару нормальных сторонних сервисов, а не еще десяток сайтов со статой, то вам придется общаться с разработчиками, хотите вы этого или нет. Вам придется раскрывать некоторую внутреннюю информацию, хотите вы этого или нет. Количество игроков на кластере - это закрытая информация? Если да, то у меня для вас плохие новости, я все равно это вычислю, потому что API позволяет.

Если у вас есть другие каналы связи с адекватными личностями из числа сотрудников, с которыми можно без этой вашей политической фигни на форуме обсудить технические вопросы, дайте мне их, от этого будет гораздо больше пользы, чем от всего форума, вместе взятого. На форум я больше писать ничего не буду - это бесполезно и абсолютно деморализует.

Итог:
Форум - отстой.
Техническая реализация API - отстой, но это тест, поэтому надеемся и верим, юзаем что дают.
Дайте контакты разработчиков этого вашего API или что-нибудь еще, потому что вести разработку так, как это делается сейчас, невозможно.

Я все.