Замість того, щоб вивалювати довгий та нудний список усього, над чим ми працюємо, я вирішив якнайдокладніше розглянути одну з нових будівель, що буде додана в наступнім оновленні, та показати які саме зусилля докладаються на втілення кожної будівлі в грі. Сподіваюся, що це надасть кращу перспективу на процес розробки та буде цікавішим для читачів.
Якщо поглянути на картку Trello, що називається “building_saltworks” (солеварня), можна дізнатися багато про її історію. Її було створено 17 серпня 2020 року. Того дня ми почали досліджувати історичні відомості та обмінюватись думками.
Є досить тонка межа між тим, наскільки делеко можна піти в напрямку історичної достовірності, та загальною іграбельністю. Ми намагаємося шукати рівновагу між цікавістю гри та легким просвітницьким елементом стосовно того, як було влаштовано промисловість до промислової революції.
Ми ітеруємо над різними дизайнами, поки не знайдемо той, що відповідає всім вимогам: має всі наявні функціональні елементи, виглядає унікальним, дотримується візуального стилю, має легко впізнавані риси та, звісно, просто має приємний вигляд.
Хоча ми й прагнемо якнайбільшої деталізації, деякі деталі не можуть бути вставлені прямо до гри. Ліворуч ви бачите високодеталізовану модель, яку нам довелося відобразити в пласкій текстурі з прозорими ділянками. Ми експериментували з різними варіантами в пошуку бажаного вигляду.
Судячи з численних відгуків, однією з найприємніших рис цієї грі є анімація будівництва. Дивитись, як будівлі складають з окремих частинок, відчувається, як ковток свіжого повітря, коли вже всі звикли, що будівлі просто вриваються в дійсність нізвідки.
Щойно модель солеварні готова, ми починаємо нову окрему модель, у якій указана кожна частина, з якої її збудовано.
Як ви можете побачити тут, будівля солеварні має 556 окремих частин, для кожної з яких було вказано порядковий номер відповідно до порядку будівництва та матеріал, з якого її зроблено. Деякі частини позначені як “milestone” для уникнення неправдоподібних ситуації, як-от частини даху, що висять у повітрі, коли ще не збудовано стіни. Ви можете також бачити ці позначки в властивостях будівлі під час будівництва:
У грі, коли будівельники приходять на місце, вони отримують завдання на будівництво певної частини, враховуючи її порядковий номер та наявність будівельних матеріалів. Вони беруть матеріали з відповідного стосу та встановлюють частину на місце, повторюючи аж поки не закінчиться їхній робочий день. Інколи певні частини виглядають надто дивно під час будівництва й нам потрібно змінювати їхній порядок, перерозподіляти матеріали, ставити додаткові майлстоуни, аж поки наш робочий день не закінчиться. На щастя навколо нас достатньо лавиць і ми можемо пізніше повернутися до роботи відпочинутими та сповненими сил.
В іграх, що базуються на сітці, кожна будівля займає прямокутну ділянку з клітин відповідної кількості завдовжки й завширшки. Для навігації це просто означає, що цими клітинами не можна ходити.
В Острові все значно складніше: тут немає сітки й будівлі можуть вільно обертатися. Містяни ходять скрізь, де їм заманеться, не зважаючи на будь-які сітки.
Щоб будівлі не накладалися одна на одну, для кожної з них указані ділянки, які вони займають ексклюзивно (жовта частина) та порожні точки входу, які вони можуть ділити з іншими будівлями (зелена частина). Звісно, все це можна було би спростити й навіть генерувати автоматично на основі геометрії моделі, але це позбавило би гру її теплого крафтового відчуття так само, як і можливості припхнути маленьку лавицю в тій смужці вільного місця біля входу.
Для навігаційних цілей кожній будівлі надається набір “вузлів” та “стін”, які зрештою стануть частинами глобальної навігаційної сітки, що об’єднує всі будівлі в місті. Тому для якнайкращої виробничості пошуку шляху в пізнішій грі важливо тримати кількість вузлів та стін у якнайменшій можливій кількості.
Також тут є вузли для особливих цілей, як-от місце зупинки возів та точки зберігання ресурсів під час будівництва. Цього разу ми нарешті додали в редакторі можливість указувати особливі вузли, замість того щоб прописувати їх у коді. Майбутні модороби мають радіти цьому.
Щоб містяни не ходили крізь сходи та двері, наче привиди, ми додаємо кожній будівлі геометрію підлоги для позиціонування моделей людей. Оскільки двері в Острові динамічні, їх також потрібно вказати як окремі об’єкти моделі.
У більшості містобудівних ігор немає суттєвих відмінностей між різними виробничими будівлями. Є візуальна модель, сировина та вихідна продукція. Ця концепція має сильну перевагу в тому, що її можна дуже легко масштабувати. Щойно ви зробили одну таку будівлю, додавати інші стає надзвичайно легко. Разом із користувацькими модифікаціями це стає невичерпним джерелом нового контенту. Це простий шлях, а отже це не наш шлях.
Коли я працював над грою самітно, увага до деталей була не завжди однаковою. Коли я поспішав перед випуском першої альфи в 2017 році, я додав кілька доволі бездушних будівель типу ткальні та кравецької робітні. Усе, що вони роблять, це просто стоять та перетворюють один ресурс на інший. Млин, натомість, є будівлею, яку я робив однією з найперших і це, можливо, найдеталізованіше зображення механізму роботи вітряного млина в історії відеоігор. Хотілося би, щоби в Острові було більше будівель на зразок цього вітряка.
Наша солеварня має насос із тваринним приводом, що викачує ропу з підземних джерел. В якості тяглової сили ви можете використовувати ях коней, так і волів. Ми обрали дизайн будівлі, що дозволяє бачити всередині тварин, які обертають своє колесо сансари заради кращого майбутнього людської цивілізвації, аж поки не заповниться відстійник. Потім робітник людської подоби затопить піч дровами або вугіллям (на ваш вибір) щоб випарити з ропи воду та отримати ще одну партію солі, готової для використання містом. Піч споживає пальне, тяглові тварини споживають корм та воду, часом помираючи через їхню нестачу. Як завжди, ви можете перемістити тварин або навіть покликати мужичка зі скотобійні, який радо відправить їх на спочинок. Весь цей процес працює на якихось 26Кб нового коду (я завжди обираю накоротші імена змінних), написаного переривчасто впродовж останніх п’яти місяців.
12 січня я пересунув картку “building_saltworks” до категорії “DONE”, але тут ще багато простору для вдосконалення. Якби тоді в серпні мені довелося спрогнозувати скільки часу займе розробка цієї будівлі, мої прогнози не були б навіть близькими до правди. Я також не знав, що написання цього посту займе в мене цілий день. Саме з цих причин я не називатиму дати виходу Альфи 4.
Тож ми повертаємося до обертання нашого колеса, щоб люди змогли нарешті вирощувати власну городину та відправляти дітей до школи.
Будьте чемні та здорові!
Євген.