Я розробив гру RPG, яка має кілька сюжетних сюжетів, це означає, що залежно від вибору користувача деякі речі можуть статися, а можуть і не траплятися, ви можете домогтися одного і того ж кількома способами, закінчення може бути різним тощо.
Я реалізував простий механізм прийняття рішень, який працює чудово, але має один величезний недолік: в момент, коли ви приймаєте рішення, історія негайно впливає на ваше рішення, а це означає, що ви не можете прийняти рішення, яке вплине на вас в далекому майбутньому . Це тому, що історія розгортається як гілка в структурі дерева, і їй завжди потрібно знати, який вузол наступний. Під капотом рішення реалізуються за допомогою черги: кожен вузол знає про попередній вузол та наступний вузол (або якщо це вузол рішення, він чекає, коли користувач введе для встановлення наступного вузла)
Я бачив безліч ігор, які мають складні механізми прийняття рішень, і мені цікаво, як вони зроблені? Чи є спеціальна конструкція, яка робить речі справді легкими? Хто-небудь робив щось подібне і може дати мені підказку, як вирішити це?
ОНОВЛЕННЯ 1:
Важливим аспектом є те, щоб якось зберегти незалежний код історії, щоб ним можна було маніпулювати із зовнішнього файлу. Я планую використовувати це як двигун, тому навіть можливий вибір повинен надходити із зовнішнього файлу. Код повинен бути абсолютно абстрактним.
Також мене цікавить дизайнерське рішення, приємний спосіб зробити це, як це роблять чи робили інші.
if (isTree)
чи зберегти isTree
глобальний вар, оскільки історія може мати, а може і не мати цього вибору. Знаєте, що я маю на увазі? Це більше схоже на механізм вибору, який обслуговуватиме декілька історій.
isTree=true
проте пізніше він робить щось інше, наприклад, бореться зі шкільним товаришем, який у відповідь йде і рубає своє дерево, поки дерево ще молоде тому що він отримав удару попкою. Тепер у нас є дві змінні, які впливають на існування дерева isTree==true' and
didFightBrat == false '. Знаєте, що я маю на увазі? І ланцюг може тривати назавжди, на існування дерева може впливати невідома кількість факторів. Знаєте, що я маю на увазі?