Як згадував sftrabbit, це ідеальний додаток для державної машини.
По суті, у вас є така структура дерева. Кожен аркуш / вузол містить інформацію про поточний стан та правила переходу до наступного стану. Кожен вузол може містити кілька виходів, залежно від того, наскільки складним вам повинен бути потік / грати потік.
Хороший, дуже вільний аналог цьому - книга " Вибрати власну пригоду" . Кожна сторінка містить текст, що описує частину історії, та рішення, які може приймати гравець. Кожне рішення веде на іншу сторінку. Деякі сторінки можуть посилатися на попередньо відвідані сторінки тощо.
У старих текстових пригодницьких іграх, таких як Zork та Leather Godgesses of Phobos , і сумнозвісні ігри Sierra * Quest ( SpaceQuest в ролях Роджера Вілко, космонавт - один з моїх улюблених ), використовували дуже просту версію цього типу системи. Кожна кімната на карті була станом, із виходами, які пов’язані з іншими станами чи кімнатами. Придбання елемента встановлює прапор у глобальному об'єкті стану. Кожна кімната перевіряла б ці прапори, щоб визначити, які символи чи предмети були доступні в кожній кімнаті.
Отже, ваші штати можуть бути реалізовані у вигляді класу або структури, кожен із властивостей для:
Список активів - список покажчиків на фонову графіку та все інше, що вам потрібно для відображення кімнати / стану / рівня.
Умови вступу - досягнення, які вже повинні бути досягнуті для виходу на рівень
Виходи - посилання на кожен можливий "наступний" вихід. Північ, Південь, Схід і Захід - кілька прикладів цього, але ви можете також включити Door1, Teleport і т. Д. При спробі виходу з кімнати або визначенні виходу / дверей "відкритим", ваша гра може перевірити наступний стан щоб побачити, чи були дотримані його умови для входу, і змінити спосіб відображення виходу на екран, чи просто не дозволяти гравцеві рухатися в цьому напрямку.
Якщо ви хочете пофантазувати, ви можете включити іншу версію штату з різними умовами входу, що змінило б спосіб подання кімнати гравцеві або дії, наявні в цій кімнаті.
Ваш початковий екран, смерть / гра над екраном тощо можуть бути станами всередині системи, подібно до способу переходу між екранами меню. Насправді, якщо у вас є така система меню, ви можете використати її для цього. Замість стрілок вгору / вниз та "введення" для навігації по меню ви шукаєте конкретні події в ігровій зоні, такі як наступати на телепортний майданчик, виходити з правої частини екрана тощо.
З точки зору адміністратора, подумайте, чи могли б ви отримати користь від створення інструменту адміністратора, який дозволить вам створити стан машини. Додайте кімнати до карти, створюйте зв’язки між ними, призначайте об’єкти, такі як фонові зображення тощо. Це, мабуть, зайве для вашої першої спроби; надто просто поглинатися побудовою інструментів адміністрування і ніколи насправді не закінчувати гру. Пам'ятайте - ви пишете не проміжне програмне забезпечення, а гру.
Сподіваюся, це допомагає.