Які інструменти, шаблони чи найкращі практики ви б рекомендували застосовувати до квест-механізму, наведеному нижче перелічених вимог?
Я говорю про архітектуру програмного забезпечення (якою ти маєш бути загальною) та вибір об’єктів проводки, підписки на події та представлення умов. Відомо згадування інструментів / бібліотек, які ви успішно використовували. Редагувати: Якщо ви використовуєте сценарій, яку налаштування ви рекомендуєте?
Вимоги:
- простий 2D mmo (rpg)
- всі ігрові дані, включаючи квести, зберігаються у реляційній базі даних
- будь-яка подія в грі може викликати новий квест для гравців або просування існуючих квестів
- квест може мати довільну кількість умов, які повинні бути виконані до того, як квест буде доступний гравцям
- квест може складатися з довільної кількості підквестів / кроків з довільними умовами
Квести будуть варіюватися від простих:
розмовляти з A - вбивати 5 B - розмовляти з A - постійно покращувати здоров'я
досить залученим:
використовувати предмет у зоні X - перейдіть у зону Y - бот буде нерестувати - вбивати бота, не отримавши більше 10% шкоди - предмет бота падає - забрати предмет - розблокує портал - доставить предмет у J за порталом - отримайте золото та досвід - дозволити ще раз пройти портал - заблокуйте портал для цього гравця
Екземпляри рівня - це можливість (гравці можуть виконувати певні квести в командах або ізоляцію, яка породить місце розташування саме для цих учасників)
- Квести повинні бажано управляти за допомогою світового редактора без написання сценаріїв або знань про програмування ( Редагувати: не виступаючи проти сценаріїв взагалі)
- Я вважаю, що C ++ є мовою реалізації
Я думав, що якщо я можу поєднати будь-який ланцюжок подій та умов, ми зможемо моделювати складніші, а отже, і більш цікаві квести. Я експериментував з прокручуванням власного двигуна ECA (події-умови-дії), але це може бути надмірним. Моделювати загальні умови без особливих сценаріїв було особливо важко.