top of page

Спершу один вид, потім п'ять: як росте ця гра 🪨

Фото автора: Marcel Dütscher
Marcel Dütscher
27 лип.
Читати 3 хв

Хто гляне на наш список версій, знайде 29 випусків за добрих п'ять тижнів: від 0.1.0 20 червня до 0.9.0 учора. Як це працює? Точно не так, що ми сідаємо й одним розмахом будуємо готову функцію. Ми будуємо етапами: спершу найменша версія, яка справді працює, а потім, коли вона стабільна й цікава, наступний етап. Зараз астероїди показують це краще за все.


Етап 1: вони взагалі існують. Коли в грі з'явилися астероїди, важливе було одне питання: чи працюють посадка, ходьба й видобуток на крихітному тілі, яке можна обійти за кілька хвилин? Астероїд — не маленька планета: у нього власний клас розміру, інша гравітація, інший горизонт. Це був етап 1, і все інше було свідомо другорядним. Тому й був рівно один вид: тип був зашитий у код, а оскільки в нього не було переліку можливих поверхонь, кожен стовпчик вкривали кристали. Кожен астероїд у всій галактиці виглядав однаково. Різнилися лише довжина обводу та місце, де випадково опинилися кратери.


Етап 2: тепер вони можуть відрізнятися. Другий етап завершено ще вчора, і він потрапить у гру з наступним оновленням. Тоді буде п'ять родин астероїдів, і кожна скеля вибиратиме свою за зваженою випадковістю. Кам'яна — робоча конячка, що несе залізо, силікат, мідь і олово. Металева — майже суцільний метал: усюди титан, глибше кобальт, вольфрам і платина. Крижана тримається на −95 °C і містить не метали, а леткі речовини: вуглець, літій, сірку. Багата на вуглець — сажовочорна, пронизана печерами, а глибоко в ній ховаються уран і алмаз. А кристалічна, точнісінько такими були всі астероїди раніше, тепер є рідкісною знахідкою. До того ж кожне тіло отримує власний рельєф кратерів: щільність, ширину улоговин, глибину, висоту валів і те, наскільки хвилястий пил між ними. Раніше це були п'ять фіксованих чисел на весь всесвіт, тому кожне тіло без атмосфери виглядало однаково. До речі, на місяцях це теж позначиться, бо вони проходять тим самим шляхом у коді.


Справжня віддача приходить потім. Чудова річ у чисто побудованому другому етапі — це третій: шоста родина вже не завдання з програмування, а запис у файлі даних: назва, поверхні, руди, частота, готово. «Хтось мав би це додати» перетворилося на «можемо спробувати це за один вечір». Саме тому перебудова варта зусиль.


Чому ми завжди робимо саме так. Три причини, і всі ми засвоїли на болісному досвіді. По-перше: наперед не знаєш, чи ідея весела. Малу першу версію можна випробувати з Justus за вечір, а потім знаєш, чи варте розширення зусиль, чи ідея насправді нудна. По-друге: малий крок можна переглянути, протестувати й за потреби скасувати. Гігантську функцію, що зачіпає одразу п'ятдесят місць, можна хіба що молитися. По-третє, і для нас це найважливіше: у цю гру грають діти. Напівготова гігантська функція для них гірша за малу, яка надійно працює.


Той самий візерунок усюди. Спершу блоки були кубами; пізніше з'явилися рампи, сходи й кулі, потім розфарбовування, потім тонкі фаски на краях, щоб ніщо більше не нагадувало картонну коробку. Планети починалися як сіра скеля; пізніше з'явилися справжні моря, системи печер, клімат залежно від висоти та вулкани, потім замерзлі моря на холодних світах, а тепер астероїди. У безпеці дітей спершу була лише команда скарги в чаті, потім бани з причинами та тайм-аути, а нещодавно невидимий режим спостерігача. А наші бандити, що щойно вийшли, самі ще на етапі 1: вони б'ють вас ефектом близькості, а не справжніми летючими снарядами. Це не недогляд, це записано в плані: етап 2, коли етап 1 себе покаже.


Чого коштує такий спосіб роботи. Двох речей, чесно. По-перше, наявні світи змінюються: оскільки тип небесного тіла перераховується при кожному завантаженні й ніколи не зберігається, астероїди у ваших старих світах з наступним оновленням отримають інші родини та інший рельєф. Ваші збудовані блоки збережуться, але можуть раптом висіти у повітрі або опинитися всередині скелі. Тому такі речі завжди потрапляють у примітки до випуску. По-друге, навіть перший етап треба будувати так, щоб другий узагалі був можливий. Для астероїдів це означає: тепер у коді є рівно одне місце, що відповідає на питання «чи це астероїд?», і тест, який для кожної згенерованої родини перевіряє, що її справді так класифікують. Пропусти хоч одного викликача, і повернеться неприємна стара помилка: скеля, де не можна видобути жодного блока.


І знову нас виручили тести. Під час створення нових родин спрацювала давня перевірка: вона гарантує, що в кожному світі з покладами руди можна дістатися рецепта кабелю. У трьох із п'яти нових родин просто не було міді: гравці застрягли б там у прогресі. Жодна людина цього не помітила; помітив тест, який хтось написав за кілька тижнів до того. Тепер усі родини містять мідь і силікат.


Далі на черзі ще один такий етап, десь між рослинами, тваринами й бандитами. Який саме, зазвичай вирішує Justus. 🌟

Останні пости

Дивитися всі
Невидимий вартовий — і блокування, які нарешті пояснюють, що сталося 👁️

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

 
 

Коментарі


Коментування цього посту більше не доступне. Зверніться до власника сайту, щоб дізнатися більше.
bottom of page