Specyfikacja Przed-Implementacyjna
Komponenty i pakiety
Można wyróżnić 5 głównych komponentów:
- Game - komponent główny, do niego są delegowane zdarzenia inicializacji składników gry, aktualizacji stanu gry oraz renderowania
- Engine - silnik gry, tutaj zawarta jest większa część logiki interakcji (event dispatching), model a także algorytmy generacji planszy, poruszania botów
- GamePlay - wizualna część gry, kolizje
- Communicator - wystawia interfejs do komunikacji między graczami, przekazywanie informacji o zmianie stanu gry między graczami jest ukryte za * EventDispatcher'em, który wywołuje odpowiednie metody Communicatora (Klienta lokalnego lub zdalnego)
- Hud - część wizualizacji związana z kok-pitem gry (pasek poniżej widoku gry)
Dodatkowo można wydzielić pakiet ze specjalnymi efektami wizualizacyjnymi (światło latarki, spray, odór)
Szkic klas
Powiązania między główną klasą gry a klasami silnika
Stany gry
Tryb gry i menu
Postacie w grze
Diagram czynności
Zarówno renderowanie głównego ekranu gry, jak i przejście przez menu gry jest obsługiwane za pomocą wzorca projektowego State. Daje to podział kodu poprzez ograniczenie wielkości bloków if-elseif-else, a także rozdzielenie logiki. Zmiany stanów są dokonywane w obsłudze update(). Dokładne przybliżenie tych procesów jest zobrazowane na diagramach sekwencji poniżej.
Sekwencje
Operacje update() i render() mogą być wywoływane nieprzemiennie. update() oznacza interakcje ze strony gracza (np. naciśnięcie klawisza), render() natomiast jest wywoływana z określoną przez fps (ewentualnie wyregulowaną przez silnik gry) częstotliwością.








