Rozwijam prosty silnik gry (w języku C #, jeśli ma to znaczenie) i nie mogę wymyślić wystarczająco dobrego sposobu na wdrożenie skryptów pod względem architektury.
To prosta strategia turowa z niestandardowymi, niezależnymi od logiki animacjami do bitew. Ma globalną warstwę architektury dla rzeczy systemowych / niskopoziomowych i, co najważniejsze, dwa główne moduły - logikę i widok z gry - które komunikują się za pomocą menedżera zdarzeń.
Chodzi o to, że naprawdę chciałbym, aby skrypty wpływały zarówno na rzeczy związane z logiką gry (zmiana parametrów jednostek itp.), Jak i rzeczy związane z widokiem gry, takie jak specjalne animacje / dialogi dla bitew, które mogą zależeć od określony skrypt wyzwalacza.
(Szczerze mówiąc, idealnie chcę, aby skrypt kontrolował przebieg gry, pozostawiając tylko podstawową mechanikę / grafikę logice / widokowi, ale jestem nowy, więc nie jestem pewien, czy mogę to teraz zrobić)
Myślałem o trzech opcjach:
Po prostu pozwól skryptom żyć w logice, ale daj znać o graficznej stronie gry. Ale to spowodowałoby, że podział logiki / widoku byłby niejasny, prawda ...
Ustaw skrypt jako osobny moduł, który będzie wymieniał zdarzenia z innymi przy użyciu tego samego menedżera zdarzeń. Ale to wymaga bardzo ostrożnej synchronizacji zdarzeń, jak sądzę ... i dodania ogromnej ilości typów zdarzeń do menedżera. (Nadal osobisty faworyt)
Uczyń skrypt przede wszystkim modułem, aby mógł bezpośrednio wpływać na / wywoływać funkcje logiki / widoku. Pozwala to na z natury szerszą funkcjonalność kosztem zepsucia całego schematu wymiany zdarzeń i obawy, że skrypt może zepsuć wszystko, nawet jeśli tak naprawdę nie powinno.
Nie mogę więc zdecydować się na jeden z nich, ani wymyślić lepszego sposobu na wstawienie modułu skryptowego ... Jakieś sugestie lub przydatne linki?
Dziękuję Ci!
Ps dzięki za migrację pytania, nie wiedziałem, że jest specjalistyczna sekcja dla gamedev