в яку можна потрапити тільки з цього провулка.
Попадання в деякі локації утруднено і є метою відповідних квестів - наприклад, хатинка, внутрішня частина воріт (і все місто) і задня кімната гільдії лісорубів. Після проходження квесту локації стають легкодоступними так само, як і всі інші.
Малюнок 2.7 - локаційних структура гри
Сам процес гри і проходження квестів реалізований трьома різними механіками, які можна розглянути на прикладі першого квесту - потрапити в хатинку (малюнок 2.4).
Перша механіка - діалогу, де на кожному етапі надається вибір з трьох варіантів, у кожного з яких свої наслідки. Зрештою фінальних етапів завжди дві - успіх або невдача. У разі невдачі спробувати заново не можна. Дерево логіки унікально для кожного діалогу. У першому діалозі воно досить просто, за тільки одним правильним вибором на кожному етапі - див. Малюнок 2.8. Але не варто, виходячи з нього, припускати, що це стане універсальною схемою. Далеко не завжди ввічливість - правильний варіант, і далеко не завжди правильний варіант всього один.
Малюнок 2.8 - Діалог перший квесту
Друга механіка (малюнок 2.9) - ризикового дії. Тут дерево варіантів завжди просте і не залежить від гравця. Можливих результатів також завжди дві - виграш чи програш.
Малюнок 2.9 - Рисковое дію
Третя механіка - традиційний для квестів збір предметів. Тут, як правило, немає розгалужень, і варіант закінчення всього один - успіх - але необхідно переміщення між локаціями і уважне відстеження варіантів дій. Якщо ризикове дію і діалог, як правило, інтуїтивні, то що потрібно робити для проходження збором предметів може бути потрібно пошукати. На малюнку 2.10 зображена докладна послідовність дії для збору предметів у першому квесті.
Малюнок 2.10 - Збір предметів першого квесту
У підсумку моделювання була спроектована текстова квестовая гра з нелінійним сюжетом, заснована на системі локацій, що надає три різні варіанти механіки для взаємодії з ігровим світом. Гра надзвичайно проста у розробці та проходженні, що дає можливість зосередитися на створенні унікальної історії з атмосферним графікою і приємним сюжетом.
Все це в сумі дає збалансований і цікавий геймплей, що дає гравцеві вибір як в мети, так і в способі її досягнення, з проробленим миром і можливістю завжди повернутися назад, і неможливістю програти - Так чи інакше, вихід є з будь-якої ситуації. Це незвичайно для сучасних ігор, але традиційно для ігор-головоломок, і розбавлене сучасним підходом - дати гравцеві проявити свої навички, і дати гравцеві покластися на удачу.
3. Розробка
. 1 Ознайомлення з платформою розробки і реалізація гри
У процесі створення першого пробного квесту відбувалося ознайомлення з інтерфейсом набору необхідних програм для розробки під платформу QSP - файлу допомоги m, програвача-інтерпретатора файлів, інструменту перетворення текстових файлів коду в інтерпретовані і інтерактивного середовища розробки.
Малюнок 3.1 - Інтерактивна середа розробки
Були написані перші локації і реалізована послідовність подій першого квесту разом з трьома базовими механіками взаємодії з грою - діалог, ризикове дію і головоломка.
На даній платформі локацією є процедура в програмі, що містить програмний код. Залежно від способу переходу в локацію, інтерфейс або очищається перед виконанням коду нової локації, включаючи виведення на екран, використовуючи локацію саме як локацію, нове місце; або ні, і локація виконується як процедура.
У першій локації відбувається ініціалізація інтерфейсу і всіх змінних. Важлива неможливість повернутися в цю локацію при нормальному ході гри, інакше все ініціалізовані змінні будуть заново ініціалізовані нульовим значенням, заданим в цій локації.
Платформа QSP російськомовна, і хоча основні оператори мови все ж англійською, припустимі назви змінних, локацій і предметів російською. Це необхідна функціональність, так як назва предмета використовується і як унікальний ідентифікатор для його виклику, так і виводиться на екран.
# Лес0
$ FNAME= Arial =1
Відкрито=0
Ключ_взят=0
Впала=0
Розмова=0
Тропінка_відна=0
Можно_в_город=0
Виведення на екран - саме елементарне дію з цієї мови програмування, і проводиться просто записом рядки з абзацу. Рядок от...