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

Podobne dokumenty