Projekt i implementacja gry strategicznej czasu rzeczywistego
Transkrypt
Projekt i implementacja gry strategicznej czasu rzeczywistego
Projekt i implementacja gry strategicznej czasu rzeczywistego wykorzystującej elementy sztucznej inteligencji Autor: Michał Szulczyński Promotor: mgr inż. Zbigniew Rosiek WARSZAWA, 2008 Cel pracy Stworzenie gry komputerowej czasu rzeczywistego – Efektywne wykorzystanie dostępnych zasobów – Zapewnienie responsywności Architektura silnika gry 3 główne fazy: inicjalizacja, główna pętla, deinicjalizacja Inicjalizacja Inicjalizacja podsystemów Inicjalizacja GUI Inicjalizacja stanu gry Główna pętla Obsługa zdarzeń Aktualizacja Renderowanie Deinicjalizacja Deinicjalizacja podsystemów Usunięcie zasobów Architektura silnika gry – diagram klas Wirtualny system plików Zunifikowany interfejs dla plików znajdujących się bezpośrednio na dysku jak i w archiwach Umożliwienie łatwego modyfikowania zasobów Ograniczenie używanej przestrzeni dyskowej Zarządzanie zasobami Scentralizowany system zarządzania zasobami Ładowanie zasobów w chwili użycia („lazy loading”) lub podczas rejestrowania zasobu Automatyczne usuwanie nieużywanych zasobów Współdzielenie zasobu w wielu miejscach Możliwość łatwego rozszerzania obsługiwanych formatów poprzez wykorzystanie oddzielnych funkcji ładujących Interfejs użytkownika Zbudowany z widżetów Hierarchiczna struktura widżetów Interakcja oparta na zdarzeniach MWidget MTextBox MButton Container MLabel MWindow TopWidget Animacja Oparta o „sprite”-y zawarte w „spritesheet”-ach Informacje na temat animacji opisane w pliku XML Obsługa wielu formatów graficznych Reprezentacja mapy Mapa oparta o oddzielne komórki („tile”) Wykorzystanie heksagonów jako elementów mapy Użycie „tileset”-ów Konwersja położenia kursora na komórkę mapy Renderowanie Fazy renderowania: mapa, jednostki, GUI Rysowanie widocznego wycinka mapy Rysowanie jednostek i obiektów z uwzględnieniem kolejności nakładania Hierarchiczne renderowanie widżetów Uniezależnienie procesu renderowania od wykorzystanej technologii Sztuczna inteligencja Wykorzystanie języka skryptowego LUA Przeszukiwanie ścieżek za pomocą algorytmu A* Komunikacja jednostek poprzez zdarzenia Zachowanie obiektów w grze oparte o automaty skończone Sztuczna inteligencja – diagram stanów Dźwięk Różnica pomiędzy dźwiękami a muzyką Reprezentacja dźwięków jako enumeracja Komunikaty sterujące odtwarzaniem Podsumowanie Tworzenie gier komputerowych jest bardzo pracochłonne Wymagana jest wiedza z wielu dziedzin Ciekawsze problemy do rozwiązania niż w aplikacjach bazodanowych Część wizualna jest równie ważna i pracochłonna jak kod gry