Proces realizacji gry Silnik gry Michał Drobot.

1 Proces realizacji gry Silnik gry Michał Drobot ...
Author: Roman Pokojski
0 downloads 2 Views

1 Proces realizacji gry Silnik gry Michał Drobot

2 Plan wykładu Funkcjonowanie silnika gry

3 Funkcjonowanie silnika gryInput: Mysz, Klawiatura… Fizyka, Logika, Obsługa sieci Video, Audio Main Loop : 15 – 30 ms (30 / 60 fps) Czyszczenie Stanu gry

4 Funkcjonowanie silnika gryMain loop Pojedynczy obieg gry Musi się wykonać na komputerze klienta w czasie 30/60 fps Wystarczy wykonać operacje wymagane do pokazania odbiorcy nowej klatki obrazu Pozostałe zadania mogą ‘maskować’ się w pomiędzy klatkami Model synchroniczny / asynchroniczny Musi dbać o czas reakcji Działań użytkownika Działań użytkowników sieciowych NPC Fizyki

5 Funkcjonowanie silnika gryMain loop Przetwarzanie i łączenie assetów Modele Tekstury Shadery Audio Skrypty Animacje

6 Funkcjonowanie silnika gryArchitektura gry Game Application Layer (warstwa aplikacji gry) Widok Gry Widok Gry Widok Gry Logika Gry Widok Gry

7 Funkcjonowanie silnika gryGAL Warstwa niskopoziomowa Stanowi warstwę komunikacji ze sprzętem Wymienialna w zależności od platformy Wysokowydajnościowa Obsługuje Video, Audio Zarządzanie zasobami systemowymi Zadania wymagające najwyższej wydajności Fizyka ze wsparciem sprzętowym

8 Funkcjonowanie silnika gryGAL Wykorzystuje specyficzne zalety danej platformy SPU – PS3 GPU – X360 Jest hermetycznym elementem silnika gry Zmiany nie wpływają na inne elementy W zależności od skomplikowania założeń gry i platformy może dojść do współzależności Gry na X360 , Ps3, Wii Znaczące różnice w logice gry względem sterowania

9 Funkcjonowanie silnika gryGAL Warstwa aplikacji gry Urządzenia System Operacyjny Czas Gry Input Pliki RAM Język DLL Watki Libs Main Loop Init

10 Funkcjonowanie silnika gryLogika Gry Opiera się na systemie przetwarzania skryptów Nie wymaga dużej wydajności Poza rozwiązaniami AI, które mogą być wspomagane przez GAL AI prosi o wsparcie obliczeniowe, GAL decyduje w zależności od platformy jak udzieli wsparcia (PS3 – SPU, X360 – GPU) Zwykle pozostaje bez zmian względem platformy

11 Funkcjonowanie silnika gryLogika Gry Warstwa logiki gry Stan gry Struktury danych Fizyka Zdarzenia Zarządzanie Procesami Interpreter komend

12 Funkcjonowanie silnika gryLogika Gry Stan gry Opisuje aktualny stan świata gry Zawiera opis wszystkich obiektów i ich stanu Parametry dotyczące każdego obiektu położenie, orientacja, właściwości Zawiera możliwe predykcje względem przyszłych wydarzeń w świecie gry jak i zachowań gracza AI, Fizyka… Musi być reprezentowany przez szybką jak i pojemną strukturę danych

13 Funkcjonowanie silnika gryLogika Gry Struktury danych Służą do zapisu danych dotyczących stanu gry Używamy różnych struktur w zależności od wymagań Gry sieciowe – pakiety upakowane Drzewo świata – wskaźniki Drzewa fizyki… Muszą spełniać zależność szybkości/funkcjonalności względem obiektu i częstości odwołań do niego Float 10 – bitowy dla odległości między AI :>

14 Funkcjonowanie silnika gryLogika Gry Fizyka Z racji komunikacji z logiką gry często łączone Wraz ze wzrostem działań równoległych oddzielana jako osobny komponent Wymaga dużej wydajności, optymalizacji pod sprzęt itp.. Często fizyka wydziela osobną warstwę, skróconą, uproszczoną i szybszą do reprezentowania świata Modele kolizji Modele kompresowane, cacheowane, fizyczne itp…

15 Funkcjonowanie silnika gryLogika Gry Zdarzenia System obsługi wiadomości w świecie gry Obsługuje wywołania zdarzeń Obsługa może przebiegać globalnie (np.. międzywątkowo) bądź lokalnie (np.. na poziomie systemu dźwięku) Stanowi łącznik między widokiem gry a GAL Np.. Machnięcie Wii’Motem odczytuje system zdarzeń i powiadamia GAL o potrzebie wygenerowania odpowiedniego dźwięku i efektu graficznego

16 Funkcjonowanie silnika gryLogika Gry Procesy System obsługi procesów w grze Wydziela czas CPU dla każdej funkcji jaka powinna się wykonać Decyduje o kolejności wykonywanych procesów Może zarządzać skryptami Np.. „szukanie apteczki” kolejno uruchamia Przeszukiwanie grafu mapy Wybranie najlepszej apteczki (odległość, moc) Wysłanie decyzji o ruszeniu AI w kierunku wybranej apteczki

17 Funkcjonowanie silnika gryLogika Gry Interpreter komend Przetwarza komendy zewnętrzne na język zrozumiały dla logiki Stanowi warstwę komunikacji między niskopoziomową logiką a użytkownikiem Utworzenie wspólnego, współdzielonego interfejsu dla logiki gry ułatwia Debugging Tweakowanie parametrów w czasie rzeczywistym Obsługę skryptów przez nie-programistów Rozszerzanie gry

18 Funkcjonowanie silnika gryLogika Gry Interpreter komend Pod względem kompleksowości rozwiązania Prosta konsola eksponująca parametry i funkcje logiki System języka świata gry Język skryptowy do sterowania logiką Wspólny język oraz interfejs Obsługa świata gry równouprawniona z poziomu użytkownika, AI, graczy sieciowych

19 Funkcjonowanie silnika gryWidok gry Prezentuje stan gry Decyduje o tym co pokazać lub jak przedstawić Istnieje wiele widoków Widok gracza Decyduje o tym jak przedstawić świat gry od strony Audio/Video, odpowiada za przesłanie danych użytkownik – system do gry Widok gracza sieciowego Widok AI Przedstawia konkretne struktury świata gry wymagane dla AI do działania

20 Funkcjonowanie silnika gryWidok gry Widok gry Wyświetlanie Audio Input Opcje 3D UI Video SFX Muzyka Speech Procesy

21 Funkcjonowanie silnika gryWidok gry PAD Widok gracza Logika Wciśnięcie A Wciśnięcie hamulca Stan pojazdu: wciśnięty hamulec poślizg Puszczenie A

22 Funkcjonowanie silnika gryArchitektura sieciowa Server Widok gracza Stan gry i polecenia Logika Zdalny widok gracza Stan gry i polecenia Klient Internet Widok gracza Logika Stan gry i polecenia

23 Funkcjonowanie silnika grySystem renderingu Assety Geometry Processing Pixel Processing Frame Processing Modele 3D Model Poddany Transfor- macjom Narysowany Pixel Wg Vertexów Klatka obrazu Animacje Tekstury Shadery

24 [email protected] [email protected]Pytania ?