Дневник разработчиков О годах технической работы от 09.04.2019

Gor

Вольный горожанин
Депутат
Сообщения
313
Всем Бонжур! Это я, французский ле Парадокс, ваш проводник в этом дневнике разработчиков.

Сегодня мы поговорим о техническом долге. Как говорил @DDRJake, технический долг был важным направлением для команды EU4 с момента выхода патча 1.28.3, который мы сделали для обновления "Испания". В то время как наши дизайнеры очень много думают о предстоящем большом дополнении, мы, программисты, были заняты приведением в порядок кода EU4.

5072

Microsoft должна объединиться с Netflix, я бы глянул это эпическое шоу

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

В то время как EU4 была анонсирован на GamesCon 2012, фактическая разработка началась за год до этого, что делает код 8-летним. И, конечно, команда в то время не изобретала ничего заново, части кода были взяты из EU3, некоторые из которых все еще используются сегодня. Я предлагаю вам поугадывать что именно, в комментариях.

Уверен, вы все знаете, что технологии быстро развивается, и разработка программного обеспечения не является исключением. За 10 лет практика разработки изменилась, как из-за того, что индустрия продолжает обучаться и искать новые способы решения проблем, так и потому, что экосистема (аппаратное и программное обеспечение, на которых работают наши игры) также меняется.

10 лет назад SSD были не так широко распространены, 1080p только появилось, все только и говорили о DirectX 10, а большинство настолько ненавидело Windows Vista, что продолжало использовать 32-битную XP.

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

Вот несколько примеров того, чем мы занимались до сих пор.

64 бит

Как уже объяснял BattlePope в одном из прошлых дневников, 32 бита были разумным выбором, когда началась разработка EU4, но сегодня 64 бита это норма.
Благодаря этому EU4 сможет запускаться на следующем обновлении MacOS (которое удаляет поддержку 32-битных приложений) и использовать больше ОЗУ. Хотя у нас нет планов по сильному увеличению использования памяти игрой, это поможет поднять планку модам, добавляющим много новых провинций и стран.

Рендеринг

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

5073


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

5074

Найдите семь отличий между текущей версией и скриншотом из бета-версии

Репорты об ошибках

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

Со времён релиза EU4 наша команда по разработке движка создала новый, улучшенный инструмент отправки отчётов об ошибках, который даёт нам больше данных и помогает скорейшему решению проблемы. Что немаловажно, он также работает на Linux и MacOS, что облегчает устранение проблем на этих платформах. Также он позволяет нам добавить к отчёту некоторые метаданные, такие как текущий год, список включённых модификаций и сколько 6/6/6 наследников умерло на охоте, что поможет нам понять причину проблемы.

Время запуска

Ускорение времени загрузки игры - это то, что мы всегда хотели сделать. Хотя мы не можем внедрить наилучшее исправление (прекратить поддержку Windows, игра запускается на Linux и MacOS намного быстрее, поверьте мне), нам удалось найти некоторые вещи, которые мы могли бы сделать..

Наиболее заметным стало обновление PhysFS, стороннего программного обеспечения, которое используют множество видеоигр для загрузки своих ресурсов (файлов на диске, модификаций, ДЛС...). Хотя мы достаточно далеки от производительности на Unix, это поможет сэкономить несколько секунд во время запуска игры на Windows.

5075

Опытные игроки рекомендуют играть за Византию на Linux или Mac из-за очень малого времени для рестарта

Общая производительность

Скорость игры всегда была важной темой. Каждую ночь мы запускаем пару игр на бенчмарк машинах и всегда удостоверяемся, что средние значения ниже определенного значения (один игровой день за 80 миллисекунд — наш текущий предел).

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

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

Рассмотрим вот что: для каждых двух стран в игре каждый игровой день должна быть рассчитана куча вещей (отношение, мнение ИИ...). Для каждых двух провинций игре игра должна знать путь из точки А в точку Б (это мы называем поиском пути). Это известно как квадратичная задача. Для тех, кто не любит математику, это означает, что для Х провинций сложность задачи равна X в квадрате. Удвоение числа провинций не удваивает число необходимых вычислений, а увеличивает его в четыре раза. За прошедшие годы одной из наших задач было помощь EU4 вырасти с приблизительно 2000 провинций до более чем 4000. Не забывайте, что в разработке ПО оптимизация, делающая что-то на 0,1% быстрее, считается довольно хорошей, на 1% - превосходной, а 10% означает, что вы сделали серьезную ошибку (или исправили очень серьезную). Как же нам удалось улучшить все с такими числами? Ответ прост: все они в конце концов складываются.

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

На следующей неделе мы должны вернуться к более классическому дневнику с нашими дизайнерами, если вы не поможете мне убедить Джейка разделить вино в торговой системе по сортам винограда и видам почвы и решить вопрос, какие традиции виноделия лучше — бургундские или бордосские.

(*) Это немного сложнее, но должно быть достаточно для данного дневника

Оригинал: https://forum.paradoxplaza.com/forum/index.php?threads/eu4-development-diary-9th-of-april-2019.1164749/
 

Haikan

Вольный горожанин
Сообщения
244
Сами сказали, что убирают динамичную торговлю товарами из-за лагодрома, а теперь признаются, что дело было в расчётах между провинциями. Хотя это известно ещё со времён ЕУ3. А ведь всего-то и надо было убрать постройку увеличивающую ценность торговли, которая и влияла на ежемесячные перерасчёты ценности товара в каждой отдельной провинции и торговом узле. В итоге это и было сделано вместе с выпиливанием динамической торговли. :pepe1:
 
Reactions: Gor

Статистика форума

Темы
2,207
Сообщения
29,657
Пользователи
1,149
Новый пользователь
not Bob

Сообщения профилей

Два следующих сообщения очень хорошо сочетаются друг с другом
Санкции успешны :peka3:
Я тут вспомнил, что у нас есть форум.
Грава, солнышко мое, разбань меня пожалуйста
Организаторы мп-лиг! Продам пакет "повышенная битумная поддержка" за 500 рублей!
Настолки это круто

Пользователи онлайн

Сверху