Timeloop: Sink Again Beach — гра з дійсною симуляцією подорожей у часі
Хочу поділитися своїм досвідом технічної реалізації гри із симуляцією подорожей у часі. Маються на увазі саме подорожі у минуле, які обов’язково позначаються на майбутньому. Якщо ви полюбляєте наукову фантастику про подорожі в часі, то одразу розумієте основні складнощі та проблеми, з цим пов’язані. Основним завданням було створити максимально інтерактивну симуляцію з мінімальною кількістю часових парадоксів та помилок.
В основу, від якої я відштовхувався, я заклав такі правила:
- Гравець може переміститися в конкретний час в межах однієї доби (ранок, день, вечір і ніч) скільки завгодно разів і в будь-якій послідовності.
- Для переміщення в часі гравець використовує «телепорти», які мають статичну координату в просторі.
- З одного часу в інший не можна потрапити без явної телепортації (просто почекати).
Проблема зустрічі із собою з майбутнього
Це, мабуть, основний парадокс, який не можна списати на умовність.
Уявіть, що ваш персонаж опиняється вранці о 8:00 на острові, наприклад, на причалі. З цього моменту починається його перебування в цьому часі. Він 10 хвилин робить свої справи і після цього телепортується в інший час. Після цього цей самий персонаж переміщується в ранок о 8:00 ще 9 разів, але починаючи з різних точок у просторі (наприклад, в печері, в церкві, в будинку відьми і т.д.). Маємо ситуацію, коли той самий персонаж існує в цьому часі в 10 екземплярах. Для того, щоб
Але для достовірного досвіду симуляції треба якось показати першій копії (наймолодшій), що в цей час роблять копії з майбутнього. А це неможливо зробити, бо гравець ще цього не встиг зробити і гра цього знати не може.
Звук падаючого дерева за яким ніхто не спостерігає
Цю філософську концепцію я використав для вирішення проблеми, яка зазначена вище. В якості майже єдиного елементу ігрової механіки гравцю забороняється потрапляти собі минулому на очі. Потрапляючи у той самий час вдруге, гравець може натрапити на себе з минулого. В цьому немає проблеми, але минулий він вже не нентрапив на себе з майбутнього і гравець це знає. Для того, щоб не створювати мультиверс і зберегти минулий досвід гравця канонічним, ми просто забороняємо йому з теперішнього потрапляти минулому собі на очі, пояснюючи це тим, що не можна ламати просторово-часовий континуум, бо ці дії призведуть до краша всесвіту і він сам перестане існувати.
Це можно трактувати як умовності, хоча я вважаю це достатньо елегантним вирішенням першого парадоксу.
Уявіть, потрапивши в ранок вперше, ви як гравець ніяк не зможете побачити себе з майбутнього тільки тому, що майбутній ви будете ховатись від себе минулого по всіх кущах, аби продовжити існувати.
Хронологія для різних персонажів різна
Я спеціально зробив так, що протагоніст вперше потрапляє у простір острова не вранці, а вдень. Які ситуації це продукує? Наприклад, таку, що коли протагоніст вперше бачить іншого персонажа у своїй хронології (вдень) цей інший вже міг бачити протагоніста вранці. Виходить, що з точки зору хронології цього іншого персонажа — це вже не перша їхня зустріч.
Це явище продукує цікаві і заплутані ситуації. Бо персонаж А вже знайомий з персонажем B вранці коли B бачить A вперше. І навпаки, B вже знайомий з A вдень, коли А вперше в житті зустрічає В.
На цьому я побудував деякі наративні частини, які дуже складно мені далися.
Детермінованість часу
Близько місяця я витратив на наративну частину, яка була нерозривно пов’язана з ланцюжками дій, які гравець повинен або може виконати.
Відтворити дійсно безшовний і достовірний досвід персонажа, який інтерактивно переміщується у часі, неможливо в грі по типу пісочниці.
Відразу я зрозумів, що у подібній грі всі події мають бути детерміновані, за винятком тих ланцюжків подій, які не впливають на фінальний результат. І справа не в тому, що сам сюжет накладає подібні обмеження, а саме у досвіді персонажа в його хронологічній точці.
У грі з детермінованим часом і повною свободою переміщення в просторі та часі гравець може спочатку побачити наслідки, а вже потім створити причини цих наслідків. Причому, спочатку я гадав, що це проблема, яку треба вирішувати, але тест прототипа продемонстрував, що з точки зору тайм тревелу — це взагалі не проблема і не парадокс. Головне — виконувати правило, що причина майбутніх наслідків має бути обов’язковою подією, яку гравець мусить створити, для проходження гри. І тоді вже неважливо, в якій послідовності гравець стає спостерігачем чи учасником подій.
І на завершення
Це основні тези, до яких я прийшов шляхом довгих роздумів, моделювання і тестів. Саме на них я побудував дуже цікаву симуляцію в форматі комп’ютерної гри. Мене це так захопило, що я довів свій проект до релізу в Steam. Його можна знайти за назвою Timeloop: Sink again beach — нелінійний екшн-квест від першої особи у піратському сеттингу, професійно озвучений українською.
Я не буду лукавити, в грі є багато хронологічних помилок на різних рівнях. Наприклад, коли персонаж каже те, чого ще не може знати. Чи навпаки каже те, що вже не актуально. Про більшість таких помилок я знаю, але я не ставив за мету звести їх кількість до нуля. Було цікаво вирішити основні, які не вирішуються тривіально.
Можливо комусь це буде цікаво спробувати самому. Дякую за увагу!
Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев.
12 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів