Текстова, фентезійна, антипутінська гра — AFM-1: Northern Enemy

Всім привіт!

Трохи більше року, у вільний від основної роботи час, я створював інтерактивну книгу-гру під андроїд «Пригода Для Мене — Том 1: Північний Ворог / Adventure For Me — Volume 1: Northern Enemy». Вона вже доступна у плеймаркеті за посиланням:

AFM-1: Northern Enemy

Дія гри відбувається у фентезійному світі, але багато персонажів та подій перегукуються з нашою реальністю:

На далеких північних територіях, у зловісному Замку Злоби, злий чаклун Влад Жутін замислив мерзенну змову, щоб знищити мирних мешканців Пшеничної долини. Військові плани складено, армія споряджена і майбутній напад видається неминучим. Одного ранку, без будь-якого офіційного оголошення війни, його війська вторглися в Пшеничну долину, взяли в облогу столицю і... зіткнулися з сильним опором! Хоча ворогів були відкинуто, п’ята частина долини все ще залишається під контролем військ чаклуна

Гетьман Зел Єн, командувачі Зал Уж, Сир Скай, Пав Люк і шеф розвідки Будан шукають героя для надсекретної місії. Як Боєць, Маг, Волоцюга або Авантюрист, тільки ви здатні вирушити в подорож, яка кине виклик самому серцю зловісного царства Влада Жутіна. Небезпеки попереду невідомі, і хто може передбачити, які жахливі істоти чекають на вас?

Гравцю зустрінеться гоблін-шаман, зомбі-боброїдка симоньян, генерал приг, розбійник рамзан та багато інших, а в фіналі гри він побореться у поєдинку з головним гадом — злим чаклуном владом жутіним!

Але як і в будь-якій казці, крім боротьби добра зі злом, буває що тупо не пощастило — на лісовій дорозі вам може зустрітися карета незламності і вербувальники заберуть вас у тренувальний табір:

Я не хотів щоб політична сатира псувала задоволення від гри і сподіваюся що вдалося витримати баланс, наприклад у двох книгах «Аліси» Керрола є безліч алюзій до сучасної йому політичної ситуації (відразу згадується сцена «Вів за корону бій на смерть із Левом Єдиноріг..») , але вона прекрасно читається навіть через століття. Або взяти «Подорожі Гулівера» Свіфта — теж сприймається як фантасмагорична казка, якщо не вдаватися у релігійно-політичне підґрунтя. Зрозуміло я не вважаю свою книгу настільки значною, просто намагаюся наслідувати авторитетам.

Біля витоків жанру

Механіку гри я взяв у класичної серії паперових книг — Fighting Fantasy, що стартувала на початку 80-х років. Це серія рольових книг-ігор для синглового проходження, створена Стівом Джексоном та Яном Лівінгстоном, була опублікована вперше у видавництві Puffin; на даний момент права належать Wizard Books.

Книги-ігри «Бойове фентезі» були схожі на інші інтерактивні книги, що випускалися на той час, особливо на серію Choose Your Own Adventure («Обери собі пригоду»): читач керував головним героєм, вибираючи ту чи іншу дію в процесі оповідання, і переходив за відповідними параграфами, щоб дізнатися про результат. Серія «Бойове фентезі» виділялася тим, що використовувала 2 шестигранні кубики для ведення бою та додавання елемента випадковості в різних ситуаціях, на відміну, наприклад, від Dungeons & Dragons та інших рольових ігор. У цьому сенсі вона була простішою. Проте елемент несподіванки додавав невизначеність у процес, що збільшувало задоволення від гри. Багато інших видань стали відтворювати стиль «Fighting Fantasy», але з додаванням множинності шляхів вирішення: «Самотній вовк» Джо Девера (Joe Dever) досяг майже такого ж успіху як і «Бойове фентезі». Фраза «Fighting Fantasy» свого часу використовувалася як синонім усіх синглових рольових книг-ігор, навіть зараз під цим описом на eBay продається велика кількість найменувань книг. «Бойове фентезі» та інші книги-ігри стали воротами у світ РПГ для багатьох гравців-початківців. Втім «Бойове фентезі» не було піонером жанру. Формат книги-гри спочатку був представлений у серії пригод, випущених для рольової гри Tunnels and Trolls («Тунелі та тролі»), першою з яких був «Buffalo Castle» (1976).

До речі, класична реалізація однієї з ігор «Fighting Fantasy» серії — «Bloodbones» доступна під андроїд у плеймаркеті:

Fighting Fantasy Classics

Якщо зацікавитеся та зіграєте, хотілося б вислухати ваші зауваження у порівнянні з моєю реалізацією.

У своєму проекті я додав деякі зміни до правил, щоб зробити гру більш динамічною та цікавою сучасним гравцям, подробиці нижче.

Передісторія

Дуже давно, на початку 90-х років минулого століття та тисячоліття, вступивши на 1-й курс КПІ, я обстежував книгарні у пошуках цікавинок. Першої стипендії в 981 купон (якщо не зраджує пам’ять) якраз вистачало на кілька книг :-) Тоді і купив незвичайну книгу-гру Дмитра Браславського «Підземелля Чорного Замку», де гравець сам вибирав дорогу, кидав шестигранні кубики, бився з монстрами і скрупульозно записував зміни в характеристиках персонажа та вміст дорожньої торби.

Щоб не заблукати, доводилося малювати карту на аркуші ватману і це навіть не напружувало! Нинішній я, розбещений компасом у «The Elder Scrolls IV: Oblivion» або гірше того — блискучою «кокаїновою» доріжкою у квестах «Neverwinter Online», точно полінувався б)

А мої однокурсники у якомусь бібліотечному журналі відшукали «Стань сталевим щуром!» Гаррісона і грали в неї на лекціях. Часи були важкі, не те що мобілок, навіть пейджерів не було — «не народись я хлопчиком і гратися було б нічим» © ;-)

Я ще не знав, що, не дивлячись на всі переваги книги, ігрові правила не були оригінальним винаходом Браславського, а швидше за все поцуплені з британських fighting fantasy books . І якби не клятий совок із залізною завісою, то я міг би читати комікси і грати в Dungeons & Dragons на 10-15 років раніше.

А тоді мені відразу захотілося написати свою книгу-гру, пам’ятаю як накидав кілька десятків сторінок сетингу з Конаном-варваром у головній ролі, але швидко закинув. Пройшло 30+ років , і я реалізував стару мрію як пет-проект.

Швидкий погляд на мономіф

Наприкінці кожного параграфа читачеві пропонується зробити свій вибір, від якого залежить подальше проходження. Останній параграф книги найчастіше є фінальним, що, втім, не заважає деяким авторам розташувати заключну главу у середині книги, щоб уникнути спокуси дізнатися, чим закінчилася історія.

Простий приклад розвилки:

Існує цікава теорія «мономіфу» або «єдиного міфу». Це ідея того, що всі міфи мають єдину структуру сюжету — шлях героя. Герой під тиском обставин чи за внутрішнім прагненням наважується вирушити зі світу повсякденності в світ невідомий чи страшний для нього. Там він зустрічається з невідомими йому досі силами, долає перешкоди і повертається наділеним можливостями для вдосконалення світу.

Термін мономіф вперше використав Джозеф Кемпбелл, який запозичив його з роману Джеймса Джойса «Поминки за Фіннеганом». На думку Кемпбелла, у кожному з відомих нам міфів герой проходить одні й ті ж самі випробування, той самий життєвий шлях. Одна й та ж сама міфологема характерна як для Стародавньої Греції чи Скандинавії, так і для індійській міфології.

Мені настільки сподобалася ця схема, круговороту героя у подорожах, з вікіпедії,

що крім звичного «лабіринту» переміщення по замку, я також реалізував своєрідну «карусель» випадкових подій у чарівному лісі:

<rndevents id="RND1" rndlst="511,496,513,514,516,520,525,528,534,539,542,545,559,563,570,626" rndend="409"/> 

Для кожної ігрової сесії масив з 16 локацій перемішується випадковим чином, а, після блукання лісом, герой знову виходить до роздоріжжя (за винятком тих випадків, коли доброзичливі жителі лісу допомагають йому пробратися в замок манівцями). Якщо гравець захоче повторно пройти лісовими стежками, то він виявить, що деякі локації змінилися, наприклад поляна на якій ви розмовляли з вмираючим розбійником Рамзаном — при повторному відвідуванні побачите, що від нього залишився обгризений скелет.

Оригінальні правила гри

Ці правила взяті з книги «Цитадель Хаоса» Стіва Джексона (1983).

Майстерність, Витривалість, Талан та Магія

Перш за все, ви повинні використати кубики, щоб визначити початкову Майстерність, Витривалість, Талан та Магію.

Киньте кубик. Додайте 6 до результату та запишіть суму — це ваш початковий показник Майстерності.

Киньте два кубики. Додайте 12 до результату Запишіть цю суму — це ваша початкова Витривалість.

Киньте кубик, додайте 6 до результату та запишіть суму — це ваш початковий показник Талана.

Киньте два кубики. Додайте 6 до результату і запишіть цю суму — це ваша початкова Магія.

З причин, які будуть пояснені нижче, показники Майстерності, Витривалості, Талана та Магії постійно змінюватимуться під час пригод. Ви повинні вести точний облік цих параметрів, і тому ми рекомендуємо тримати під рукою гумку. Але ніколи не стирайте ваші початкові показники. Хоча ви можете отримати додаткові пункти Майстерності, Витривалості та Талана, ці параметри не можуть перевищити початкові показники, за винятком рідкісних випадків.

Ваш показник Майстерності відображає ваші навички фехтування та загальний бойовий досвід, чим вище, тим краще. Ваш показник Витривалості відображає вашу статуру і загальну живучість, чим вищий рівень Витривалості, тим довше ви будете в змозі боротися. Ваш показник Талана визначає, чи ви везуча людина. Талан та Магія — це те, що не можна скидати з рахунків у царстві фентезі, яке ви збираєтесь досліджувати.

Битви

На сторінках книги вам часто будуть зустрічатися вказівки битися з тією чи іншою істотою. Може наводитися і варіант втечі, але якщо його немає, або якщо ви все одно вирішили напасти на істоту, ви повинні провести битву, як описано нижче. Спочатку запишіть Майстерність та Витривалість істоти у перше порожнє поле битви з монстром на аркуші персонажа.

Щоразу, коли зустрінете монстра, значення його характеристик буде вказано у книзі.

Хід битви такий:

  1. Киньте два кубики за істоту. Додайте його Майстерність. Результат, що вийшов, буде його силою атаки.
  2. Киньте два кубики за себе. Додайте свою Майстерність на даний момент. Це — ваша сила атаки.
  3. Якщо ваша сила атаки вища, ніж у противника, ви його поранили. Переходьте до кроку 4. Якщо у противника сила атаки більша за вашу, то поранили вас. Перейдіть до кроку 5. Якщо обидві сили атаки однакові, ви парирували один одного удари — починайте наступний раунд з кроку 1.
  4. Ви поранили супротивника, тому відніміть 2 з його Витривалості. Можете перевірити свій Талан, щоб завдати додаткових пошкоджень (див. нижче).
  5. Вас поранили, тому відніміть 2 зі своєї Витривалості. Знову ж таки, можете перевірити свій Талан (див. нижче).
  6. Внесіть відповідні поправки у значення своєї Витривалості (і Талана, якщо ви ним скористалися — див. нижче) або Витривалості противника.
  7. Продовжуйте в подібній послідовності, поки Витривалість одного з вас не впаде до нуля.

Втеча

На деяких сторінках вам може бути надана можливість втекти з поля бою, якщо він складається не на вашу користь.

Тим не менш, якщо ви втекли, істота автоматично наносить вам ще одну рану (втратьте 2 пункти Витривалості). Така ціна боягузтва.

Бій із кількома противниками

Якщо ви зіткнетеся з кількома ворогами, інструкція на цій сторінці розповість вам, як вступити в бій. Іноді ви боротиметеся з ними як з одним противником; іноді ви боротиметеся з кожним з них по черзі.

Талан

Під час вашої пригоди, або в битвах, або коли ви зіткнетеся з ситуаціями, в яких вам може пощастити чи не пощастити, ви можете покластися на свій Талан, щоб отримати сприятливий результат. Але будьте обережні! Перевірка Талана є ризикованою справою, і якщо вам не пощастить, результати можуть бути катастрофічними.

Процедура перевірки Талана полягає в наступному: киньте два кубики. Якщо число, що випало, дорівнює або менше, ніж ваш поточний рахунок Талана, вам пощастило, і результат буде на вашу користь. Якщо число вище, ніж ваш поточний рахунок Талана, вам не пощастило, і ви будете покарані. Ця процедура відома як перевірка Талана. Щоразу, коли ви перевіряєте свій Талан, ви повинні віднімати одиницю з вашого поточного рахунку Талана. Таким чином, ви швидко зрозумієте, що чим більше ви покладатиметеся на свій Талан, тим більш ризикуєте.

Застосування Талана у битвах

На певних сторінках книги вам буде сказано перевірити Талан, і будуть вказані наслідки вашого везіння чи невдачі. Однак у битвах у вас завжди є варіант вдатися до свого Талана, або щоб нанести супротивнику серйозніше поранення, або щоб зменшити серйозність щойно отриманої рани.

Якщо ви щойно поранили супротивника, можете перевірити Талан, як описано вище. Якщо вам пощастило, ви завдали сильної рани, і можеш відняти додатково 2 очки з Витривалості противника. Однак, якщо вам не пощастило, ви його просто подряпали, і противник втрачає лише 1 Витривалість замість 2. Якщо вас щойно поранили, ви можете перевірити Талан, щоб спробувати звести поранення до мінімуму. Якщо вам пощастило, ви примудрилися уникнути повної шкоди від удару і втрачаєте лише 1 Витривалість замість 2. Якщо вам не пощастило, ви отримуєте серйозніше поранення. Відніміть 1 додаткову Витривалість. Пам’ятайте, щоразу, коли ви перевіряєте Талан, ви повинні віднімати 1 з вашого показника Талана.

Відновлення Майстерності, Витривалості, Талана та Магії

Майстерність

Ваша Майстерність не зміниться під час вашої пригоди. Іноді параграф може містити інструкції збільшити або зменшити показник Майстерності. Магічна зброя може збільшити вашу навичку, але пам’ятайте, що тільки одну зброю можна використовувати одночасно! Ви не можете використовувати 2 бонуси, якщо носите два чарівні мечі. Ваш показник Майстерності ніколи не може перевищувати початкового значення, якщо це спеціально не вказано.

Витривалість

Ваш показник Витривалості постійно змінюватиметься під час вашої пригоди, через битви з монстрами та виконання важких завдань. Коли ви опинитеся поряд з вашою метою, ваш рівень Витривалості може бути небезпечно низьким і бій, в подібному випадку, може бути особливо небезпечним, так що будьте обережні! Пам’ятайте також, що ваш показник Витривалості не може перевищувати її початкового значення, якщо це спеціально не вказано. Використання заклинання Витривалості (див. нижче) відновить Витривалість до початкового рівня у будь-який час. Рекомендується взяти з собою кілька таких заклинань.

Під час пригоди, коли вам особливо пощастить, до вашого показника Талана нараховуватимуться додаткові пункти. Подробиці наведено на сторінках книги. Пам’ятайте, що, як і Майстерність і Витривалість, ваш Талан ніколи не може перевищувати його початкового значення, якщо це спеціально не вказано на сторінці.

Використання Магії

Крім Майстерності, Витривалості та Талана, ви повинні також визначити свій магічний рахунок. Киньте два кубики. Додайте 6 до результату кидка та запишіть цю суму у поле Магія на вашому аркуші персонажа. Ваш показник Магії визначає, скільки магічних заклинань ви можете використати під час вашої пригоди. Ці заклинання слід вибрати з наступного списку. Після того, як вирішите які з них взяти з собою, запишіть ваш вибір на аркуші персонажа. Якщо, наприклад, ви викинули 4 і 3, ваш рахунок магії буде 13 (4 + 3 + 6), що означає, що ви можете використати тринадцять заклинань під час вашої пригоди. Ви можете вибрати тринадцять заклинань зі списку заклинань, наведених нижче. Можливо, ви хочете взяти три заклинання Витривалості, п’ять Псі і п’ять заклинань Вогню — або, можливо, ви віддали б перевагу одному з дванадцяти заклинань плюс додаткове заклинання Копії. Вибір за вами. Щоразу, коли використовуєте заклинання під час пригоди, ви повинні викреслити його зі свого списку (навіть якщо воно не спрацювало). Вам може бути надана можливість використати заклинання, якого у вас немає з собою. У такому разі ви не можете обрати цей варіант розвитку подій.

Магічні заклинання

Копія

Це заклинання дозволить вам силою думки створити точну копію будь-якої істоти, з якою ви б’єтеся. Дублікат матиме таку ж Майстерність і Витривалість, і ті ж здібності, що й оригінал. Але дублікат буде під вашим контролем, і ви зможете, наприклад, доручити йому атакувати оригінальну істоту, а потім сидіти, склавши руки і дивитися бій!

Псі

За допомогою цього заклинання ви зможете посилити свої екстрасенсорні здібності. Це може допомогти вам читати думки істоти або може підказати вам, що криється за замкненими дверима. Тим не менш, іноді заклинання може давати неправдиву інформацію, якщо поруч виявиться інший псіонік.

Вогонь

Багато істот бояться вогню, і це заклинання дозволяє силою думки викликати вогонь за власним бажанням. Ви можете викликати невеликий спалах на землі, який горітиме кілька секунд, або створити стіну вогню, щоб налякати ворогів.

Золото дурнів

Це заклинання перетворить звичайний камінь на золотий самородок. Тим не менш, заклинання просто різновид ілюзії — хоч і більш довговічне, ніж заклинання ілюзії — і золото незабаром знову стане каменем.

Ілюзія

Це потужне заклинання, але трохи ненадійне. З його допомогою ви можете створити переконливу ілюзію (наприклад, що перетворилися на змію, або, що підлога покрита гарячим вугіллям), і цим обдурити істоту. Ефект заклинання негайно буде скасовано, якщо трапиться що-небудь, що розсіює ілюзію (наприклад, ви переконаєте істоту, що перетворилися на дракона, а потім швидко тріснете його по голові мечем!). Воно найефективніше проти розумних істот.

Левітація

Ви можете використати це заклинання проти предметів, супротивників і навіть себе. Воно звільняє від впливу гравітації і в результаті об’єкт впливу вільно плаває у повітрі, під вашим контролем.

Талан

Це заклинання, поряд із заклинаннями Майстерності та Витривалості, можна застосовувати будь-якої миті під час вашої пригоди, за винятком бою. Вам не потрібно чекати, доки вибір з’явиться на сторінці. Після застосування воно відновить ваш показник Талана на половину від початкового показника (якщо ваш початковий показник непарне число, округліть його в меншу сторону). Пам’ятайте, що поточний показник не може перевищити початковий.

Майстерність

Це заклинання підвищить показник Майстерності на половину від його початкового значення, і може бути використано у будь-який момент під час вашої пригоди, за винятком бою. Правила застосування такі самі, як і у заклинання Талана.

Витривалість

Це заклинання підвищить ваш показник Витривалості на половину від його початкового значення і може бути використано будь-якої миті під час вашої пригоди, за винятком бою. Правила застосування такі самі, як і у заклинання Талана.

Щит

Це заклинання створить невидимий щит перед вами, який захистить вас від фізичних об’єктів, наприклад, стріл, мечів чи пазурів. Щит не ефективний проти магії і, звичайно, якщо ніщо не може торкнутися вас, ви теж не зможете нічого чіпати за межами щита.

Сила

Це заклинання набагато збільшить ваші сили і дуже корисно у битві із сильним ворогом. Тим не менш, воно має застосовуватися з обережністю, тому що важко контролювати свою силу, коли вона раптово зростає!

Слабкість

За допомогою цього заклинання сильні істоти перетворюються на жалюгідних слабаків. Воно не завжди спрацьовує, але якщо дає ефект, то вороги стають дуже слабкими і перемогти їх тепер легко.

Спорядження

Ви починаєте свою пригоду з мінімальним спорядженням. Ви озброєні мечем, з собою у вас є рюкзак, щоб зберігати там будь-які скарби або артефакти, які зможете знайти. Обов’язково записуйте всі ваші знахідки на аркуш персонажа. Якщо вони будуть використовуватися в будь-якій конкретній ситуації, у тексті буде сказано, чи ви втрачаєте цей предмет, чи він залишається з вами. Якщо його втрачено, ви повинні викреслити його зі списку спорядження.

Інтерлюдія

Ashes to ashes, dust to dust

No you can’t amuse me,

So leave you must

Ashes to ashes, dust to dust

If the spell won’t kill you,

Your ego does

© «Kovacs — My Love»

Моя адаптація правил

По-перше, щоб гравець міг з ходу увірватися у гру, не заморочуючись з кидками кісток на визначення характеристик, я пропоную три готові класи персонажа: БОЄЦЬ, МАГ і ВОЛОЦЮГА.

Вони здатні витримати більшість випробувань, які чекають на вас; новачкам рекомендується вибрати БІЙЦЯ.

Також я зберіг канонічний варіант: ви можете вибрати унікальний клас — АВАНТЮРИСТ, кидаючи кубики. Авантюрист має випадкові характеристики які визначає кидок кісток. Зрозуміло, в грі на смартфоні кубики не потрібні — кидок здійснюється натисканням на ігрову кнопку.

Бонус для «манчкінів»: кожен 42-й кидок видасть максимальні характеристики: МАЙСТЕРНІСТЬ 12, ВИТРИВАЛІСТЬ 24, ТАЛАН 12, МАГІЯ 18.

Застосування магії я теж спростив, замінивши стартовий вибір списку заклинань використанням «мани». Тепер гравець може кастувати будь-яке заклинання, але при цьому відніматиметься 1 пункт з показника МАГІЇ. Якщо МАГІЯ впала до 0 — кнопки застосування заклинань будуть заблоковані. На екрані персонажа будь-якої миті крім битви можна застосувати заклинання ВИТРИВАЛОСТІ і відновити 8 пунктів характеристики, очевидно що через віднімання 1 пункту із показника МАГІЇ. Також усі знайдені або куплені їстівні припаси та зілля додаються в інвентар, а загальне значення характеристик, які вони можуть відновити, додаються до загального пулу ПРИПАСИ і можуть бути відновлені натисканням однієї кнопки. Зброю та обладунки можна екіпірувати. Деякі чарівні речі збільшують максимальне значення характеристик персонажа, таким чином хоч зростання в рівнях і не передбачено — можна варіювати складність гри, одягаючи персонажа для битв з дедалі «товстішими» ворогами.

Заклинання «Золото дурнів» я виключив як самостійне заклинання, тепер воно працює як окремий випадок заклинання «Ілюзія».

Заклинання для відновлення характеристик — «Талан» і «Майстерність» — видалені, замість них додані зілля, що відновлюють по 1 пункту характеристики, їх можна придбати у алхіміка.

Ще я додав у гру силу УДАРУ, якщо в правилах книжкової серії вона дорівнювала 2, то у мене беззбройний персонаж б’є з силою 1, стандартний меч додає 1 — загалом 2, але знайдені чарівні мечі, кинджали та інше озброєння можуть її збільшувати. Під час битви сила удару показує скільки пунктів витривалості втратить ваш ворог, якщо удар потрапив у ціль.

Щоб герой не зациклювався на головній місії і не занудьгував — додані міні-ігри, які було легко заскриптувати з використанням генератора випадкових чисел. Наприклад, у таверні відвідувачі можуть зіграти з гравцем у «камінь-ножиці-папір»,

а в лісі йому трапиться озеро, біля якого можна порибалити.

Деякі елементи обладунка можна скрафтити у коваля, принісши йому потрібний компонент та заплативши певну суму грошей. Якщо серйозно заморочитися на колекціонування і проходити гру кілька разів, то можна зібрати повні сети зеленого, синього і червоного драконів (плащ, шолом, наплічники, нагрудник, наручі, мітенки, крайка, штани, чоботи та щит). А якщо роздобути чарівний меч +2, сяючий амулет та кільце фехтування, такого термінатора ніхто не переможе! (крім допельгангера).

Непотріб можна продати лахмітникам.

Також я додав у гру «компас»: якщо гравцеві набридне самому вибирати шлях у грі, то можна включити цілевказівку, тоді на кнопках вибору шляху відображатиметься зірочка, яка покаже один із можливих шляхів проходження, до самого фінального поєдинку з Владом Жутіним!

Більше того — у моїй грі неможливо померти, якщо гравець потрапив у безвихідне становище — з’являється янгол-охоронець і пропонує вибір: 1) повернутися на початок гри зі збереженням усіх грошей та артефактів, здобутих у дорозі (після перегляду реклами) або 2) почати гру з початку, створивши нового персонажа.

Награвшись чесно, багатьом хочеться «поманчкинити» — тому я надав панель вбудованих чит-кодів: тут можна відновити характеристики персонажа або навпаки зменшити (для хардкорності), додати грошей, повернутися на початок гри або телепортуватися на випадкову сторінку книги — все для фана людини! Раз на три хвилини, при використанні читів, запуститься рекламний ролик.

До речі, пам’ятаєте як казала Аліса: «яка користь з книжки, якщо у ній немає ані картинок, ані розмов?». У моїй книзі-грі ілюстрацій більше, ніж сторінок! На 665 сторінок — 1064 зображення, згенерованих нейромережами. Переглядати їх можна рухом слайсу за зображенням або кліком по ромбіках, масштаб зображення та шрифта також можна змінювати, для зручності читання.

Додано окремий розділ АРТ КОЛЕКЦІЯ, де можна перегортати всі відкриті ілюстрації. Колекція відкривається на випадково вибраній картинці, так що її можна використовувати і для своєрідного ворожіння)

Ну і для тих кому ліньки вишукувати всі зображення, а подивитися хочеться — через панель чіт-кодів можна відкрити відразу всі картинки.

Що там під капотом

Правила гри зовні нескладні, але дозволяють створювати об’ємні, логічно вивірені фентезійні світи; у процесі програмування книги я склав невелику скриптову мову для внутрішнього застосування. У принципі, якщо розшарити код то будь-яка людина, не заглиблюючись у програмування, зможе написати власну пригоду. У грі використовуються 2 сховища XML — маленький, що перезаписує в local storage статус персонажа, він виглядає так:

<SAVExml><pc role="r1" userpic="pc1" page="407" damage="1" skill="12" stamina="22" luck="7" magic="8" iniskill="12" 
inistamina="22" iniluck="7" inimagic="8" poolskill="0" poolstamina="4" poolluck="0" poolmagic="0" gold="10"/>
<settings compass="on" ssspeed="1000" lang="ru" font="14" music="off" sound="on" imgscale="0.5"/>
<items ids="i1,i2,i3" amount="1,1,1" equip="i1,-,-,-,-,-,-,-,-,-,-,-,-"/>
<pages sessionpages="403,404,428,419,405,406,430,407,408,410" 
globalpages="402,403,404,428,419,405,406,430,407,408,410" 
allpics="1a,wvalley03,war02,vzel04,adv04,adv01,adv05,vzel03,fgh03,lard02,406c,261a,tavern01,tkeeper02,bread02" 
rndid="" rndlst=""/></SAVExml>

І файл побільше на 1 mb +, тільки на зчитування, що містить текст книги, локалізований на 3 мови, характеристики предметів, монстрів і т.п.

Кожна сторінка містить два ключові для логіки гри атрибути — onstart і onplay . onstart відпрацьовує лише 1 раз при переході на сторінку, onplay — щоразу, коли сторінка відкривається.

Для onstart я закодував 14 скриптових подій:

1) SETCHAR

Задати початкові/поточні атрибути персонажа та кількість золота

Examples:

SETCHAR_skill_1_stamina_1_luck_1_magic_1_iniskill_1_inistamina_1_iniluck_1_inimagic_1_gold_10

SETCHAR_skill_12_stamina_22_luck_7_magic_8_iniskill_12_inistamina_22_iniluck_7_inimagic_8

2) RNDCHAR

Задати випадкові початкові атрибути персонажа за схемою:

iniskill : Math.floor ( Math.random () * 6) + 1 + 6

inistamina : Math.floor ( Math.random () * 6) + 1 + Math.floor ( Math.random () * 6) + 1 + 12

iniluck : Math.floor ( Math.random () * 6) + 1 + 6

inimagic : Math.floor ( Math.random () * 6) + 1 + Math.floor ( Math.random () * 6) + 1 + 6

На кожен 42-й кидок кісток викидає максимальні значення:

iniskill: 12

inistamina: 24

iniluck: 12

inimagic: 18

Examples:

RNDCHAR_skill_ ?_ stamina_?_luck_?_magic _?

3) DEFAULTCHAR

Задати поточні атрибути персонажа рівними початковим

4) DEFAULTPARTCHAR_skill_stamina_luck_magic

Задати вибірково деякі характеристики персонажа рівними початковим

5) UPDCHAR

Змінити будь-які атрибути персонажа чи кількість золота

skill_stamina_luck_magic_iniskill_inistamina_iniluck_inimagic_gold

Examples:

UPDCHAR_stamina_2

UPDCHAR_magic_-1

UPDCHAR_gold_-4

UPDCHAR_gold_6

UPDCHAR_gold _? — продати всі непотрібні речі лахмітнику

6) ADDITEM_id

Отримати предмет, вказавши його id

Examples :

ADDITEM_i9

ADDITEM_i4

7) DELITEM_id

Видалити предмет, вказавши його id

Examples:

DELITEM_i12

8) ADDROLE

Задати роль персонажа (r1-r4 — тобто БОЄЦЬ, МАГ, ВОЛОЦЮГА або АВАНТЮРИСТ) та випадковий юзерпік (потім можна змінити)

Examples:

ADDROLE_r1

9) GOTO_n1_EXISTPAGE_n2

Перехід на сторінку n1, якщо гравець вже відвідував сторінку n2

Examples :

GOTO _434_ EXISTPAGE _420

Наприклад, якщо ви зустріли у грі Така Карлсона на жабо-дирижаблі, який летить брати інтерв’ю у Жутіна,

посварилися з ним, а потім повернетеся на місце посадки, то знайдете забутий паперовий сувій із планом інтерв’ю, для цього здійснюється перехід за умовою на іншу сторінку книги-ігри.

10) NOEQUIP

Зняти обладунки та зброю.

Наприклад вас кинули у в’язницю та відібрали всі ніштяки.

11) NEWCHAR_402

Очищення даних для створення нового персонажа, перехід на вказану сторінку

12) OLDCHAR_406

Відновлення характеристик та збереження старого персонажа, перехід на вказану сторінку

13) VIEWADV — показати рекламу

14) MUSIC _<audio_file_name> — програти мелодію

Наприклад, ви зустріли барда Любистка і попросили його зіграти якусь мелодію, а він як вжарить рок-версію гімну України!

Для onplay вистачило 9 скриптових подій:

1) DISABLEPAGE_n1_MAGICLESS_n2

Задизейблити кнопку переходу на сторінку n1, якщо магії менше ніж n2

Examples:

DISABLEPAGE_258_MAGICLESS_1

2) DISABLEPAGE_n1_GOLDLESS_n2

Задизейблити кнопку переходу на сторінку n1, якщо золота менше ніж n2

Examples :

DISABLEPAGE _411_ GOLDLESS _4

З цією командою легко програмувати асортимент магазину, наприклад, тут — на хліб грошей вистачає, а на м’ясо — доведеться підкопити:

3) DISABLEPAGE _ n 1_ DEFAULT

Задизейблити кнопку переходу на сторінку n1 по дефолту

Examples:

DISABLEPAGE_79_DEFAULT

4) DISABLEPAGE_n1_NOITEM_n2

Задизейблити кнопку переходу на сторінку n1, якщо в інвентарі немає предмета n2

Examples:

DISABLEPAGE_327_NOITEM_i6

5) DISABLEPAGE_n1_EXISTPAGE_n2

Задизейблити кнопку переходу на сторінку n1, якщо гравець вже відвідував сторінку n2

Examples:

DISABLEPAGE_413_EXISTPAGE_417

6) (FIGHT)

Examples:

FIGHT_m1_ESCAPE_433_DEATH_429_VICTORY_418

FIGHT_m1_NOESCAPE_433_WOUND_429_VICTORY_418

Кнопка переходу на сторінку битви з монстром, характеристики підвантажуються за його ID (наприклад — m1).

Надається чи навпаки забороняється можливість втекти з бою на певну сторінку (ESCAPE / NOESCAPE),

Умова програшу — смерть (DEATH) або поранення (WOUND) — наприклад, у битві із отруйною змією, із зазначенням переходу на сторінку.

Умова перемоги — VICTORY, із зазначенням переходу на сторінку.

Наприклад, тут зомбі-боброїдка Симоньян полює на нещасне бобренятко, вбийте її!

<page id2="361" id="521" onplay="DISABLEPAGE_522_DEFAULT,FIGHT_m39_NOESCAPE_0_DEATH_429_VICTORY_522" onstart="" 
en="No one has the right to hurt or harm a defenseless animals! Death to the zombies - to Babruysk, animal! 
Well have to fight (FIGHT) *ZOMBIE-WOMAN *SKILL 8 STAMINA 8 HIT 2 *If you kill her in battle (522)" 
ua="Ніхто не сміє бити та ображати беззахисних звірят! Смерть зомбі - у Бобруйськ, тварино! Доведеться битися 
(FIGHT) *ЖІНКА-ЗОМБІ: *МАЙСТЕРНІСТЬ 8 ВИТРИВАЛІСТЬ 10 УДАР 2 *Якщо ви вбили її (522)" ru="Никто не смеет бить и 
обижать беззащитных зверьков! Смерть зомби - в Бобруйск, жЫвотное! Придётся драться (FIGHT) *ЖЕНЩИНА-ЗОМБИ: 
*МАСТЕРСТВО 8 ВЫНОСЛИВОСТЬ 8 УДАР 2 *Если вы убили её (522)" pic="zombiew01,zombiew02,zombiew03,zombiew04,
zombiew05" mark=""/>

НЕБЕЗПЕКА! Допельгангер — особливий монстр, що мімікрує під характеристики гравця.

<npc id="m17" en ="DOPPELGANGER" ua =" ДВІЙНИК " ru =" ДВІЙНИК " skill="0" stamina="0" damage="0"/>

якщо все встановлено в 0 — skill="0″ stamina="0″ damage="0″ — копіюються характеристики та юзерпік гравця

7) (DICE ), ROLL_xxx_n1_yyy_n2

Випадкові події

Кинути кістку, якщо випало число крапок на кубику в xxx — енейблити перехід на сторінку n1, якщо випало число крапок на кубику в yyy — енейблити перехід на сторінку n2

8) (LUCK), LUCK_79_UNLUCK_100

Перевірити Талан, кинувши 2 кубики. Якщо поточний показник Талану персонажа більший або дорівнює результату кидка — LUCK, інакше — UNLUCK

Відкривається доступ до кнопки на сторінку, яка відповідає результату перевірки.

Після перевірки поточне значення Талана зменшується на 1.

Example:

<page id2="429" id="14" onplay="DISABLEPAGE_79_DEFAULT,DISABLEPAGE_100_DEFAULT,LUCK_79_UNLUCK_100" onstart="" 
en="The presence of the wall's shadow obstructs your vision. As you attempt to navigate, a loose rock gives way, 
causing you to lose your balance. You find yourself teetering on the brink of a treacherous pit, which you now 
realize has been knowingly concealed beneath a layer of brushwood. Test your Luck (LUCK) *If you are lucky - you 
can then walk round the pit and continue (79) *If you are unlucky, you fall in (100)" ua="У тіні стіни дуже важко 
побачити щось. Посковзнувшись на камені, ви втрачаєте рівновагу, балансуючи на краю глибокої ями, навмисно 
присипаною хмизом. Перевірте свій Талан (LUCK) *Якщо вам пощастить, ви відновлюєте рівновагу та робите крок назад 
у безпечне місце. Після цього ви можете обійти навколо ями і продовжити свій шлях (79) *Якщо не пощастило, ви 
падаєте вниз (100)" ru="В тени стены очень трудно увидеть что-либо. Поскользнувшись на камне, вы теряете 
равновесие, балансируя на краю глубокой ямы, намеренно присыпанной хворостом. Проверьте свою Удачу (LUCK) 
*Если вам повезет, вы восстанавливаете равновесие и делаете шаг назад в безопасное место. После этого вы можете 
обойти вокруг ямы и продолжить свой путь (79) *Если не повезло, вы падаете вниз (100)" pic="14a" mark=""/>

9) DISABLEREST

Задизейблити кнопку відпочинку/інвентарю.

Застосовується, наприклад, коли вас кинули у в’язницю та забрали всі речі.

ВИСНОВОК

У перспективі, якщо додати простий візуальний редактор, то навіть школяр зможе програмувати власні книги-світи, це могло б розбавити суху алгоритміку навчання на уроках інформатики.

Ще збираюся розрекламувати гру на деяких росіянських розважальних ресурсах на кшталт пікабу, не вказуючи в описі політичних моментів. Забавно вийде, якщо пересічний росіянин, граючи з увімкненим звуком, зіграє гімн України на червоній площі, а потім вб’є у грі Влада Жутіна, читай путіна; нехай діти привчаються вбивати його у грі, а там і в реалі своя наФаня Каплан знайдеться ; -)

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Тут обговорювались движки для текстових ігор www.reddit.com/...​_for_making_fllike_games
Ось хороший приклад samsara.storynexus.com

Дякую, цікаво, подивлюся.
До речі щодо гри «Fallen London» про яку вони говорили — саме в неї я не грав, а ось інша гра — Sunless Sea від тих же авторів — офігенна, кілька разів проходив. Досить складна і багато тексту, тобто на любителя, але рекомендую всім:
store.steampowered.com/app/304650/SUNLESS_SEA

Ну вже ж є Sunless Skies www.rockpapershotgun.com/...​sunless-skies-review-2019
Fallen London — браузерка, збирати усякі типу валюти, але текстовка та ж, і світ звідти. Але десь після 90 рівня стає занадто повільною, щоб витрачати час на безкоштовну версію. А нові локації відкриваються після 100.
> «A spider promenades across a window-sill with obscene casualness.»

Тут так вийшло: я, соромно зізнаватися, з моєю технічною англійською не потягнув грати в оригінал бо текст складний і знайшов для Sunless Sea кустарний русифікатор, але переклад був якісний, літературний. А для Sunless Skies — переклад зробили частковий та поганий і я не став псувати задоволення..

Ну можна почати з Planescape: Torment в оригіналі — котра заснувала цей жанр напівтекстових рольовок. Якщо ще не проходили. www.reddit.com/...​scape_torment_and_i_feel

Авжеж, проходив, шедевральна гра!
Пам’ятаю достеменно як це було: мій старенький 486 DX4-100 ще тягнув, з великими тормозами, Fallout 1 і 2, а Baldur’s Gate 1-2 та Planescape — вже ні :-( Це був 2001 рік. І тут сталося зле — збанкрутів агрохолдинг де я з іншими програмерами кодив b2b веб-майданчики і водночас повезло — мені віддали за рахунок боргів по зарплатні якийсь Celeron, і на ньому це все літало, так все надолужив) Але цей комп в свою чергу не тягнув Arcanum: Of Steamworks and Magick Obscura — так довелося апгрейдитися знову..

До речі, там хтось з них бранчанувся і зробив Book of Hours

Клас, дякую за наводку!
Я там побачив від цього ж автора «Симулятор культіста», напевно його спершу спробую:
store.steampowered.com/...​718670/Cultist_Simulator
А ще побачив що Failbetter Games рік тому видали «Mask of the Rose» — її я теж прогавив:
store.steampowered.com/...​1769980/Mask_of_the_Rose

Підписатись на коментарі