Сообщество Империал: CK2 Dev Diary №58: Моддинг и немного оптимизации - Crusader Kings II - Paradox Interactive - Библиотека Статей - Сообщество Империал

Сообщество ИмпериалБиблиотека Статей Paradox Interactive Crusader Kings II CK2 Dev Diary №58: Моддинг и немного оптимизации Проекты

Информация

Tempest
  • Автор: Tempest
  • Добавлено: 17 июл 2017, 19:39
  • Просмотров: 2 249

Последние Статьи

CoD: Advanced Warfare - общие впечатления
CoD: Advanced Warfare - общие впечатленияCountBagaturMonte · 07 мар 2024, 11:35
Как заработать в игре Плинко?
Как заработать в игре Плинко?Фонд Игровых · 28 фев 2024, 21:12
Демо версия игры Double
Демо версия игры DoubleФонд Игровых · 28 фев 2024, 21:12
Есть ли читы для игры Rocket X?
Есть ли читы для игры Rocket X?Фонд Игровых · 28 фев 2024, 21:11
Игровой слот Space XY
Игровой слот Space XYФонд Игровых · 28 фев 2024, 21:10
Вход в Пин Ап казино
Вход в Пин Ап казиноФонд Игровых · 28 фев 2024, 21:09
Превью Crystal Guardians
Превью Crystal GuardiansCandramelekh · 28 фев 2024, 20:24
Aurora Casino: основные правила начала игры
Aurora Casino: основные правила начала игрыФонд Игровых · 13 фев 2024, 18:08

CK2 Dev Diary №58: Моддинг и немного оптимизации

Дневники разработчиков и прочая информация про Crusader Kings 2
Автор: Tempest Tempest
Дата: 17 июл 2017, 19:39 · Просмотров: 2 249
Дневник разработчиков №58: Моддинг и немного оптимизации


Всем доброго дня. Я Magne «Meneth» Skjæran, программист CK2. Раньше я писал дневники разработчиков о моддинге, оптимизации и повышении удобства игры, а также дневник на прошлой неделе, рассказывающий о том, за что отвечает каждая роль в команде.

Лето всё ещё продолжается, и значительная часть офиса разъехалась до конца июля, включая большинство команды CK2. Шоу должно продолжаться, поэтому в эти четыре недели я напишу большинство или вообще все дневники разработчиков CK2.

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

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

Также я немного скажу о проделанной оптимизации для ускорения игры.
Также в конце дневника я поделюсь 5-ю пунктами из чейнджлога патча 2.8, выбранных (в большинстве своём) случайным образом.

Наша приверженность
Как я рассказывал в дневнике "Моды и телеметрия", мы считаем моды и моддеров прекрасным явлением в CK2. Моды увеличивают долговечность игры, позволяя корректировать её под свой вкус, исследователь альтернативные сценарии и миры. На время написания дневника лишь чуть менее половины (48%) игроков, игравших вчера, использовали хотя бы один мод, в сравнении с 42% во время написания дневника "Моды и телеметрия".
Более того, значительное количество народу в PDS являются бывшими моддерами.
К тому же, большинство из того, что делает моддеров счастливыми, облегчает работу наших дизайнеров контента или открывает полностью новые возможности.

То есть моддабельность долго была чем-то важным для нас, как команды, и в патче 2.8 это не будет исключением.

Немного основных моментов

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

- Большинство эффектов и триггеров, которые принимали число, теперь могут принимать имя переменной и будут брать переменную из текущей цели, например, "wealth = test_variable"

Это сильно добавляет гибкости в обращении с переменными. Тогда как раньше вы практически не могли использовать переменные вне локализации и сравнений, сейчас их можно использовать практически во всех числовых эффектах и триггерах.

- Следующие консольные команды, которые были доступны лишь разрабам и бета-тестерам, теперь доступны всем: guibounds, noai, join_society, leave_society, society_rank_up/down, society_currency, set_society_grandmaster, get_all_artifacts, activate_artifacts

Первая команда будет особенно полезной, причину этого я упоминал в дневнике о модах.

- Направленные решения теперь поддерживают 3-х лиц и артефакты

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

- Теперь можно хранить переменные также, как и цели события; любые переменные, которые начинаются с "local_", будут работать таким образом, то есть они будут существовать до тех пор, пока идёт цепочка событий, но к ним нельзя обращаться извне.

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

- Загрузка модов в Steam больше не ограничена в 50MB

Это изменение с самым большим, наверное, немедленным эффектом. Прямо сейчас максимальный размер модов CK2 сильно ограничен, но с 2.8 это будет в прошлом.

- Изменения цели эффектов и триггеров теперь имеют опциональный параметр "show_scope_change". При установке на "no" изменение не будет отображаться во всплывающей подсказке. Это будет отображаться просто как "effect description", а не "scope change: effect description". Этот функционал не поддерживается людыми/случайными целями.

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

- Добавлено "conditional_tooltip"; определяет, когда данная часть кода тригера должна отображаться. Её содержание оценивается только при отображении.

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

- Абсолютно все всп. подсказки теперь поддерживают свои локи. Как правило, "Root" будет игроком.

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

- Все числовые триггеры теперь поддерживают операторы сравнения (>=, <=, <, > и ==) за исключением триггеров ранга и among_most_powerful_vassals. Это исключения, связанные с тем, что триггеры операций ломают существующее поведение (например, "tier=duke" не является эквивалентом "tier >= duke", что предполагают операторы сравнения)

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

- Добавлена поддержка "else_if" и "else". Если что-то из этого разместить после "if" или "else_if", то они сработают при возвращении "false". Пример

    if = { limit = { something = yes } do_something = yes }
    else_if = { limit = { something_else = yes } do_something_else = yes }
    else = { do_another_thing = yes }


Это ещё один кусочек функциональности, который можно было повторять в коде, но это невероятно утомительно. Теперь количество этих ужасных проверок, в которых вы пытаетесь понять, какую из нескольких альтернатив использовать, можно значительно сократить.

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

Добавлено в тот же день, когда я это пишу, по просьбе Matthew Clohessy (моддер GoT, который работает дизайнером контента CK2 этим летом). Это должно помочь с цепочками событий, которые могут сработать неправильно из-за внешних событий.

Оптимизация
С освещением улучшений в моддинге мы покончили, давайте теперь немного поговорим о оптимизации.

Хоть повышение скорости не будет таким же большим, которое пришло с патчем 2.6, мы провели несколько дней, ускоряя игру. Частично это связанно с добавлением Тибета, но мы не остановились, просто сделав игру такой же быстрой, как в 2.7.1.

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

Вот частичный список того, что мы сделали для того, чтобы достичь этого:
  • Портировали оптимизацию интерфейса из HoI4, о которой упоминали полгода назад
  • Несколько других улучшений интерфейса, упоминания стоит ускорение аутлайнера
  • Часть вещей из последовательной оценки перемещены в параллельную оценку
  • Избежание ряда ненужных обновлений модификаторов провинций и персонажей. Например, получение артефактов без эффектов не будет обновлять модификаторы персонажа
  • Придворные будут проверяться на события реже (но у них останется тот же шанс получить их)
  • Убраны неиспользуемые переменные, которые были сохранены без веской причины
  • ИИ реже проверяет большое количество решений, если у него низкий шанс принять их. Т.е., если у него был шанс в 1% принять решение каждый месяц, в целом теперь у него будет 10% шанса принять его каждый год.
  • Дальнейшее уменьшение генерации ненужных персонажей. Например, если ИИ захочет избавиться от баронства, он сначала попробует найти кого-то подходящего, и при неудаче будет формировать случайного персонажа.
  • Различные структурные изменения в коде, чтобы сделать его более производительным.

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

Итоги
Моддинг и скорость игры очень важны для команды CK2, потому мы потратили время на их улучшение для 2.8

Теперь, как и было обещано, чейнджлог 2.8. Некоторые пункты, связанные с ещё не раскрытыми нововведениями, были убраны из списка. Список не является окончательным, до релиза 2.8 он почти наверняка пополнится

Спойлер (раскрыть)


Надеюсь, вам показалось интересным то, что мы сделали для моддеров в 2.8.

Как и обещал, вот 5 пунктов из чейнджлога 2.8:
- ИИ сказано, что если он атакует в войне, *может* быть хорошей идеей действительно пойти атаковать, даже если он атакует целое государство, а не определённый титул, и нужно немного п
- Иконка священных мест ересей теперь отображается в окне владения, если у родительской религии священные места другие (например, ибадистские и манихейские священные места)
- Исправлен экран гвардии, который отображал иконку конных лучников, даже если гвардия состояла из другого специального юнита
- Армии теперь использует самый лучший модификатор осады при определении лидерского бонуса в осадах и лучший модификатор скорости для определения скорости передвижения вне зависимости от фланга
- Авантюристы могут понять после поселения что им, может быть, стоит считать свои новые земли базой для военных операций и вернуть туда свои армии, если они ничем не заняты

Это всё на этой неделе. На следующей неделе бразды получит Gustav “Gruffa” Groth продукт-менеджер CK, который расскажет вам о том, что он и издательское подразделение Paradox делает для CK2.

Оригинал
    Воспользуйтесь одной из соц-сетей для входа
    РегистрацияВход на форум 
    Сообщество ИмпериалБиблиотека Статей Paradox Interactive Crusader Kings II CK2 Dev Diary №58: Моддинг и немного оптимизации Обратная Связь
    Стиль:Language: 
    «Империал» · Условия · Ответственность · Визитка · 19 мар 2024, 13:43 · Зеркала: Org, Site, Online · Эльдорадо казино · Gold казино · Счётчики