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