Zastanawiałem się nad zaprojektowaniem gry (w szczególności przetłumaczeniem gry planszowej na komputer, co, jak sądzę, jest w tym przypadku istotne) i przyszło mi do głowy, że sensowne może być zbudowanie „gry” oddzielnie od „wyświetlacza”.
Pozwoliłoby mi to szybko prototypować coś za pomocą prostego interfejsu tekstowego, a następnie zrobić to później. Pozwoliłbym też łatwiej przenieść grę na inne media.
Czy tego rodzaju podział na przedziały jest powszechny w grach? Czy powinienem starać się dalej rozkładać? Czy są jakieś komplikacje, które mogą mi brakować?
źródło
Moje zdanie na ten temat:
Odczytuje kolejkę zdarzeń wejściowych i odpowiednio modyfikuje stan gry.
Następnie przetwarza rzeczy takie jak fizyka i inne podstawowe elementy, które również aktualizują stan gry.
Pętla. To wszystko.
Celem jest uniezależnienie modelu: nie ma on żadnej zależności od widoku lub kontrolera: powinieneś być w stanie stworzyć program, który uruchamia tylko model.
Nigdy nie zapisuje niczego w modelu, jest to proces tylko do odczytu, z wyjątkiem może rejestracji jakiegoś modułu obsługi zdarzeń (np. „Hej Mister Model, kiedy wykryjesz kolizję między tymi dwoma obiektami, zadzwoń do mojego modułu obsługi zdarzeń, który odtwarza dźwięk! „).
W ten sposób możesz podłączyć fałszywy kontroler, który odczytuje plik zawierający wcześniej zarejestrowane zdarzenia wejściowe.
Zrób również prosty widok, który rejestruje rzeczy w pliku.
Bardzo przydatne do testowania i debugowania.
Pamiętaj, aby aktualizować model ze stałą szybkością (stały krok czasowy), a widok i kontroler tak szybko, jak to możliwe (ale nie za bardzo zmienne).
źródło
Ten rodzaj podziału na przedziały to podział na silnik i kod gry i jest dość powszechny. Po drodze jest dużo miejsca na abstrakcję.
Twój silnik i dane graficzne specyficzne dla gier mogą wyglądać jak widok, kod gry model, a kontroler byłby jakimkolwiek klejem, którego użyjesz, aby powiedzieć silnikowi, jaką teksturę zastosować do której encji w kodzie gry.
źródło