Я розробляю простий ігровий движок (у C #, якщо це має значення), і не можу придумати достатньо пристойного способу реалізації сценаріїв з точки зору архітектури.
Це проста стратегія на основі покрокових операцій із користувацькими, не залежними від логіки анімаціями для битв. У ньому є глобальний рівень архітектури для системних / низькорівневих речей і, що найголовніше, два основних модулі - логіка та перегляд ігор, - які спілкуються за допомогою менеджера подій.
І річ у тому, що я дуже хотів би, щоб сценарії впливали як на логіку гри (зміна параметрів одиниці тощо), так і на речі, пов'язані з переглядом гри, наприклад, спеціальні анімації / діалоги для битв, які можуть залежати від певний сценарій тригера.
(Якщо чесно, в ідеалі я хочу, щоб сценарій контролював ігровий потік, залишаючи лише основну механіку / графіку для логіки / перегляду, але я новачок у цьому, тому я не впевнений, що можу це зробити зараз)
Я думав про три варіанти:
Просто дайте сценаріям жити за логікою, але повідомте про графічну сторону гри. Але це зробить поділ логіки / перегляду дуже невиразним, чи не так ...
Створіть сценарій окремий модуль, який буде обмінюватися подіями з іншими, використовуючи той же менеджер подій. Але це вимагає бути дуже уважним щодо синхронізації подій, я думаю ... а також додати величезну кількість типів подій до менеджера. (Все-таки особистий фаворит)
Зробіть сценарій модулем понад усе, щоб він міг безпосередньо впливати / викликати функції логіки / перегляду. Це дає можливість суттєво розширити функціональність ціною свого роду накручування всієї схеми обміну подіями та побоюючись, що сценарій може зламати речі навіть тоді, коли він насправді не повинен.
Отже, я не можу ні визначитися з одним із них, ні придумати кращий спосіб вставити сценарій модуля ... Будь-які пропозиції чи корисні посилання?
Дякую!
Ps спасибі за перенесення питання, не знав, що є спеціалізований розділ для gamedev