Пятничные факты #286 – Исправление загрязнения

Поделиться

опубликовал Klonan

Неделя в офисе

Эта неделя – еще одна неделя  исправления ошибок, поэтому я подумал, что мы сделаем  изменение стиля и по днях  будем рассказывать, что именно происходило на неделе

Понедельник

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

  1. Найти ошибку, над которой можно поработать – просмотреть форум или отчеты об автоматических сбоях.
  2. Попробовать воспроизвести проблему или каким-то образом выяснить, что пошло не так.
  3. Попробовать исправить проблему. Иногда это очень легко, а иногда  занимает часы / дни.
  4. Убедиться, что решение эффективно для исправления ошибки.
  5. Проверить, что решение не сломало что-то еще. Для этого у нас есть более 1300 интеграционных тестов, которые охватывают большой объем кода. У нас также есть сервер, который запускает тесты для всех платформ, когда что-либо передается в master
  6. Зафиксируется решение с записью в журнале изменений в master
  7. Если применимо, перенести отчет об ошибке на форуме в «Решено для следующего патча».

Было около 4 часов вечера, когда мы должны были принять решение о патче. Ничего сверхъестественного не сломалось, но была проблема со скриптом Вступительной Кампании, которую мы решили, поэтому мы решили начать процесс запуска.

Чтобы быть кратким, процесс запуска патча выглядит следующим образом:

  1. Мы вводим консольную команду на сервере релиза.
  2. Сервер делает свою магию автоматизации, собирает все платформы и загружает их везде, обновляет перевод из Crowdin и т. Д.
  3. Человек завершает неавтоматизированные этапы, а именно публикует журнал изменений в Steam и настраивает выпуск в реальном времени в Steam.

Обычно это занимает около 90 минут.
Процесс развертывания 0.17.10 выполнен без нареканий.

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

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

Вторник

Вторник начался обычным образом, большая часть команды прибыла в офис к 11 утра, а Бен прибыл после долгой поездки на автобусе из Германии. Незадолго до обеда kovarex открыл дискуссию в офисе о балансе загрязнения, вызванную этим сообщением на форуме.

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

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

К концу рабочего дня у kovarex была статистика загрязнения в игре, а некоторая доработка была запланирована позже.

В остальном, довольно типичный день поиска ошибок, исправления ошибок Rseding потратил некоторое время на логику кнопки «Назад» в графическом интерфейсе управления модами. Это не так просто, как «кнопка, которая возвращает», так как теперь у нас есть  система, которая будет показывать подсказку о любых неподтвержденных изменениях в GUI и о том, что вы хотите, чтобы произошло.

Вечером kovarex завершил статистику загрязнения, добавив статистику по поглощению деревьев и поглощению клеток. Очень часто kovarex  работал в «ночную смену» в течение нескольких часов после того, как он уложил трех своих мальчиков спать. Другим изменением, которое было предложено при просмотре всех этих статистических графических интерфейсов, была логика сглаживания статистики. Как и прежде, все статистические данные имели сглаживание 0, за исключением статистики по производству, что означало, что они были чрезвычайно резкими.

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

Среда

Довольно типичный день исправления ошибок. Kovarex завершил статистику загрязнения и приступил к нормализации значений загрязнения. Внутреннее значение прототипа было переименовано в emissions_per_tick_per_watt, а старое значение прототипа выбросов будет преобразовано внутри, если оно будет присутствовать. Другим изменением было изменение определения поглощения прототипа каждой клетки. В настоящее время это называется старением, что это вообще значит? Так что теперь он переименован в pollution_absorption_per_second, что дает некоторое представление о том, что он делает.

Следующим шагом в этой переработке было показать загрязнение как значение «х / с», а не текущее необъяснимое число. При показе игроку в этом формате числа были очень большими и не «чистые», например, «83,33 / с». Цель состояла в том, чтобы «нормализовать» значения, чтобы у нас были чистые числа, такие как 1 / с, 5 / с, сохраняя баланс относительно одинаковым. Общий результат состоит в том, что все внутренние значения примерно разделены на 60, и было много миграций, которые должны были поддержать это:

  • Количество загрязнения на чанк.
  • Количество загрязнения, поглощаемых спаунерами
  • Количество загрязнения, поглощаемых деревьями.

Результат примерно такой:

После обеда posila добавил новый графический параметр для версии macOS: рендеринг в собственном разрешении. Игра по умолчанию сообщит macOS, чтобы она отображалась в родном разрешении Retina, однако у некоторых людей были проблемы с производительностью на старых и более слабых MacBook, поэтому мы добавили эту настройку, чтобы ее можно было отключить. Иногда тяжело разрабатывать игру, многие игроки MacOS долгое время говорили нам о поддержке экранов  с высоким DPI, и что они не могут поверить, что мы не сделали чего-то такого базового, как установка флага конфигурации. Таким образом, мы добавили его для 0,17, и мы получили еще одну группу игроков, которые жаловались, что мы включили его. Иногда ты не можешь победить.

Четверг

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

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

Еще одним приятным дополнением было добавление информации о том, какие кусаки будут порождаться и сколько загрязнения будет поглощать спавнер, когда отправит отряд в атаку:

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

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

Около 16:30 мы решили начать развертывание и сделали внутреннее объявление. Это внутреннее объявление сообщает всем в команде и дает достаточно времени, чтобы закончить и ускорить любую работу, и предлагает им высказаться, если есть причина, задерживающая выпуск. Одной из последних вещей в выпуске 0.17.12 было объединение ветви Домиником, связанной с подземными трубами и модами, в частности, перемещение поддержки подземных соединений из класса PipeToGround в FluidBox. Когда у нас есть такие большие изменения, мы обрабатываем их с помощью Pull requests. Rseding в качестве нашего назначенного рецензента кода будет проходить PR для любых ошибок или проблем, и если все это выглядит хорошо, он будет обрабатывать слияние его с главной веткой.

Так что все это выглядело хорошо для PR после некоторой незначительной очистки, поэтому оно было объединено, и после прохождения тестов мы начали процесс релиза. Примерно в 20:00 CET все развертывание было завершено, 0.17.12 была доступна для всех игроков.

Пятница

В некотором смысле, план сработал, так как после релиза у нас были отзывы о «вещах, которые мы пропустили»:

  • Миграция  настроек карты того, как загрязнение увеличивает фактор эволюции. (загрязнение увеличивало эволюцию в 16,6 раза быстрее, чем следовало бы для существующих сохранений).
  • Выбросы стальной печи были слишком низкими по сравнению с 0,16.
  • Изменен map_settings_example.json, чтобы не иметь (сейчас) нелепых значений загрязнения.

Увеличение вашего фактора эволюции в 16 раз по сравнению с нормой? Это острые ощущения от игры!
Мы также планировали объединить пакет исправлений и изменений Вступительной кампании. Мы хотели сделать это в начале дня, поэтому у нас есть время протестировать его и убедиться, что он работает, а также, что у нас будет достаточно времени, чтобы сделать исправления, прежде чем мы хотим выпустить. Более того, нам нужно достаточно времени, чтобы избежать катастрофической ошибки, мы можем сделать еще один выпуск в тот же день.

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

Сейчас только 5 вечера, большая часть команды уходит на выходные. Количество сообщений об ошибках на форуме составляет 366, что ниже 372 на прошлой неделе. Похоже, что мы можем преодолеть пик кривой, где отчеты об ошибках больше не появляются быстрее, чем мы можем их закрыть. У нас есть 0.17.13, более 100 отчетов об ошибках, исправленных за последние 7 дней, и несколько новых функций для всех вас. Я бы сказал, что это была довольно хорошая неделя. Последний заказ на этой неделе – публикация пятничных фактов.

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

Как всегда, дайте нам знать, что вы думаете на нашем форуме


Поделиться

Комментарии: