Czytałem wiele artykułów dotyczących projektowania gier opartych na danych. Wydaje się sprowadzać do:
- Bez twardego kodowania
- W silniku nie ma kodu specyficznego dla gry
- Skrypty dla AI, przerywniki filmowe i tak dalej.
- Generalizujący kod do ponownego użycia
- Projektowanie elementów
- Modułowość
- Niskie sprzęgło
- Redaktorzy (dla danych, map, skryptów)
- Pobieranie danych zewnętrznych
- Stałe przechowywane w plikach tekstowych (
.ini
lub w inny sposób) - Udostępniaj dane za pośrednictwem edytorów do tworzenia skryptów i manipulacji przez projektantów
Moje pytanie brzmi: czy to zrozumienie jest prawidłowe?
terminology
OmniOwl
źródło
źródło
Odpowiedzi:
Powiedziałbym, że to nie jest poprawne. Uważam, że najważniejszym pomysłem w projektowaniu opartym na danych jest oddzielenie danych od tego, co je modyfikuje (lub aktualizuje) .
Przechodząc od standardowej głębokiej hierarchii OO, takiej jak ta:
do osobnego stanu i systemu
Jednym z najbardziej wpływowych paradygmatów DDD w tym momencie są Entity Systems. Niektóre ładne zasoby do wyszukiwania to:
http://gamedevrubberduck.wordpress.com/2012/12/26/a-hybrid-entity-system-component-architecture/
http://entity-systems.wikidot.com/
Oczywiście, podobnie jak w przypadku wszystkich paradygmatów / pomysłów, nie ma dokładnej definicji i nie wszyscy rozumieją ten sam pomysł, mówiąc o DDD, ale to jest to, co uważam za najważniejsze.
źródło
Myślę, że nadmiernie komplikujesz definicję. Z pewnością wiele zasad zawartych w wypunktowanej liście punktów jest dobrych z punktu widzenia inżynierii oprogramowania, ale niekoniecznie są one częścią definicji „opartej na danych”. Wiele z nich nakłada się na siebie lub najlepiej jest je wdrażać przy użyciu podejścia opartego na danych, ale nie stanowią one czegoś, co napędza dane.
Rzeczywista definicja rozwoju oprogramowania opartego na danych jest ogólnie dość prosta: program wykonuje działania oparte głównie na niektórych informacjach zewnętrznych (kawałek danych poziomu, dane skryptu itp.) Zamiast szeregu predefiniowanych i ustalonych kroków w kodzie same określające przepływ sterowania.
źródło