Блог розробників (FFF#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 днів, і кілька нових функцій для всіх вас. Я б сказав, що це була досить хороша тиждень. Останнє замовлення на цьому тижні – публікація п’ятничних фактів.
В цьому останньому випуску є нова версія ознайомчої кампанії, і ми були б вдячні, якби кожен міг пройти ще раз, щоб ми могли отримати якомога більше відгуків, і в ідеалі, щоб хтось незнайомий з грою спробував її.

Як завжди, дайте нам знати, що ви думаєте на нашому форумі


Поделиться

Comments: