Jakie narzędzia, wzorce lub najlepsze praktyki poleciłbyś wdrożyć mechanikę zadań podaną poniżej wymienionych wymagań?
Mówię o architekturze oprogramowania (jaka powinna być ogólna) oraz możliwościach okablowania obiektów, subskrypcji zdarzeń i reprezentacji warunków. Wzmianki o narzędziach / bibliotekach, które z powodzeniem wykorzystałeś są mile widziane. Edycja: jeśli używasz skryptów, jaką konfigurację polecasz?
Wymagania:
- proste 2D mmo (rpg)
- wszystkie dane gry, w tym misje, są przechowywane w relacyjnej bazie danych
- dowolne wydarzenie w grze może uruchomić nową misję dla graczy lub rozwinąć istniejące misje
- misja może mieć dowolną liczbę warunków, które muszą zostać spełnione, zanim misja będzie dostępna dla graczy
- misja może składać się z dowolnej liczby zadań podrzędnych / kroków o dowolnych warunkach
zadania będą się różnić od prostych:
porozmawiaj z A - zabij 5 B - porozmawiaj z A - trwale zwiększ zdrowie
dość zaangażowany:
użyj przedmiotu w obszarze X - idź do obszaru Y - bot odrodzi się - zabij bota nie otrzymując więcej niż 10% obrażeń - bot upuszcza przedmiot - podnieś przedmiot - portal odblokowuje - dostarcz przedmiot do J za portalem - zdobądź złoto i doświadczenie - zezwól jeszcze raz na przejście portalu - zablokuj portal dla tego odtwarzacza
instancje poziomów są możliwe (gracze mogą ukończyć określone zadania w drużynach lub izolacji, które odradzają lokalizację poziomu tylko dla tych uczestników)
- Zadania powinny być możliwe do zarządzania za pomocą edytora światowego bez wiedzy na temat skryptów lub programowania ( edycja: jednak nie zaleca się pisania skryptów w ogóle)
- Przyjmuję C ++ jako język implementacji
Myślałem, że jeśli uda mi się połączyć dowolny łańcuch wydarzeń i warunków, możemy stworzyć bardziej złożone, a tym samym bardziej wciągające zadania. Eksperymentowałem z uruchomieniem własnego silnika ECA (zdarzenia-warunki-działania), ale może to być przesada. Szczególnie trudne było modelowanie ogólnych warunków bez użycia jakiegokolwiek skryptu.