1.Inżynierowie (informatycy) – projektują i implementują oprogramowanie związane z grą poszczególne moduły silnika (rendering, AI, fizyka, audio, etc.)

Slides:



Advertisements
Podobne prezentacje
Architektura SAP R/3 Wybrane zagadnienia.
Advertisements

FLASH - INTERAKCJA Interaktywne dokumenty WWW.
Sieci komputerowe.
1 Linux jako system wielozadaniowy i wielodostępny.
Implementacja algorytmów na procesory kart graficznych
Przekształcenia afiniczne
Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych.
Interaktywny edytor terenu
Interaktywny edytor terenu
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Animacja Animacja jest procesem automatycznego generowania serii obrazów, gdy kolejny obraz przedstawia pewną zmianę w stosunku do poprzedniego. Ta definicja.
Temat nr 10: System przerwań
Modele baz danych - spojrzenie na poziom fizyczny
Budowa Komputera.
Multimedialne bazy danych
Przegląd ważniejszych bibliotek używanych przy projekcie Quall.
PROJECT KULKA. Plan prezentacji Pomysł Realizacja Demonstracji prototypu.
trójwymiarowy labirynt z fizyką i przeszkodami
Techniki programowania gier
Możliwości biblioteki logiczno-fizycznej opartej na systemie masa-sprężyna jako środowiska modelowania rzeczywistości wirtualnej. Projekt systemu Seminarium.
Możliwości biblioteki logiczno-fizycznej opartej na systemie masa-sprężyna jako środowiska modelowania rzeczywistości wirtualnej. Przegląd zagadnień Seminarium.
C# Windows Forms Zastosowania Informatyki Wykład 2
Inżynieria Oprogramowania
System webowy do tworzenia kolektywnych prototypów aplikacji sieciowych i mobilnych Łukasz Przywarty
Instytut Tele- i Radiotechniczny WARSZAWA
Opracowanie: Maria Wąsik
Architektura Systemu Źródło:
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Podstawy programowania II
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Opracował : Przemysław Drzymała
Karty graficzne Karta graficzna, często określana też mianem akcelerator grafiki, to element komputera tworzący sygnał dla monitora. Podstawowym zadaniem.
Programowanie gier komputerowych Tomasz Martyn
Autor: Justyna Radomska
Budowa komputera.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Podsystem graficzny i audio
Narzędzia administracyjne
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Gra komputerowa na komputer Raspberry Pi
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
Projektowanie stron WWW
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
SPRZET KOMPUTEROWY.
Animacja na stronie internetowej
Architektura współczesnych gier video Adam Sawicki asawicki.infoasawicki.info
Seminarium Dyplomowe Jacek Fohs.
System plików.
PODSTAWY SIECI KOMPUTEROWYCH - MODEL ISO/OSI. Modele warstwowe a sieci komputerowe Modele sieciowe to schematy funkcjonowania, które ułatwią zrozumienie.
Formatowanie dokumentów
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Zaawansowane zastosowania metod numerycznych
Lekcje z komputerem, 2006.
Struktura systemu operacyjnego
Model warstwowy ISO-OSI
Szkolenie realizowane w ramach projektu współfinansowanego przez UE z EFS: Kompleksowy system doskonalenia nauczycieli drogą do sukcesu szkół powiatu wołowskiego.
Projekt i implementacja symulatora żaglówki z wykorzystaniem biblioteki DirectX Promotor: dr hab. prof. WWSI Grabowski Michał Dyplomant: Radosław Czebreszuk.
Akademia ETI 2016 LABORATORIUM 2 – OBSŁUGA WYŚWIETLACZA GRAFICZNEGO.
Inżynieria systemów informacyjnych
Zastosowanie narzędzi pracujących w środowisku 3D do animacji postaci.
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

1.Inżynierowie (informatycy) – projektują i implementują oprogramowanie związane z grą poszczególne moduły silnika (rendering, AI, fizyka, audio, etc.) praca na poziomie makro-systemowym (integeracja poszczególnych składowych silnika, etc.) programowanie gameplaya i skryptowanie W ramach projektu, zespołem inżynierów kieruje senior engineer 2.Projektanci gameplaya (interaktywnej części gry odpowiedzialnej za wrażenia i doświadczenia gracza ) scenariusz gry, sekwencja rozdziałów (poziomów), cele gry, dialogi projekty poziomów (levels) gry - rozmieszczenie geometrii statycznej - rozmieszczenie broni, apteczek, etc. - w którym miejscu i kiedy wyskoczy potwór…

3.Artyści – tworzą zawartość (content) gry szkice i obrazy na poziomie konceptualnym (concept artists) modelarze -foreground modelers tworzą modele pierwszoplanowe (postaci, pojazdy, …) -background modelers tworzą statyczną geometrię świata (tereny, budynki…) projektanci tekstur (texture artists) oświetleniowcy (lighting artists) animatorzy aktorzy motion capture muzycy i projektanci efektów dzwiękowych voice actors Zespołem artystów kieruje art director

4.Testerzy 5.Producenci – zależnie od studia: zarządzanie zasobami ludzkimi łącznik miedzy deweloperami, a działem businessowym studia czasem nie ma producentów, a czasem wszyscy są producentami 6. Inni techniczni administracja dział marketingu …

Podstawowy cel silnika: Wielokrotne wykorzystanie istniejącego kodu do tworzenia różnych gier Jednakże granica między silnikiem a samą grą jest często rozmyta Na ogół przyjmuje się, że pojęcie architektura sterowana danymi (data-driven architecture) wytycza granice między grą a jej silnikiem Recepta na wyodrębnienie silnika z gry: Usuń z gry zasoby (art assets), świat i reguły gry, a to, co zostanie, to będzie silnik

Rodzina quakeowa(Id software): - Doom - pierwszy silnik z prawdziwego zdarzenia - Quake III Arena - umożliwiał modding Technologia Quakea została wykorzystana m.in. w grach: - Sin - F.A.K.K. 2 - Medal of Honor : Allied Assault i Pacific Assault Unreal Engine 1- 3(Epic Games) Half Life Source Engine XNA (środowisko wspomagające programowanie gier) Unity Engine silniki open source: Ogre, Irrlicht, Troque, Crystal Space…

Dzisiejsze, komercyjne silniki gier są dużymi pakietami programowymi, w których można wyodrębnić dwie podstawowe składowe: 1.silnik właściwy (realtime game engine) 2.zbiór rozmaitych narzędzi wspomagających tworzenie gry (edytor świata, edytor cząstek, konwertery formatów danych, etc.)

Algorytmy i struktury danych - STL – używać, czy nie używać? Grafika -libgcm – niskopoziomowe API graficzne Sony dla RSX (PS3) -Edge – wysokopoziomowe, wydajne API graficzne firm Naughty Dog i Sony dla PS3 Fizyka -Open Dynamics Engine Animacja postaci -Granny -Havok Animation -Edge -Endorphin i Euphoria (Natural Motion Ltd.) AI - Kynapse

Obudowuje (wrapping) lub zastępuje wywołania funkcji systemowych, interfejsy różnych API, a nawet niektóre standardowe funkcje języka C.

Warstwa obejmuje m.in.: -zarządzanie pamięcią szybkie przydzielanie i zwalnianie pamięci, zapobieganie fragmentacji… -bibliotekę matematyczną operacje na wektorach i macierzach, kwaterniony, operacje geometryczne (wyznaczanie przecięć pomiędzy obiektami geometrycznymi, wyznaczanie brył ograniczających, etc.), rozwiązywanie układów równań, całkowanie numeryczne… -własne algorytmy i struktury danych (zamiast bibliotek zewnętrznych typu STL)

Podstawowe funkcje: udostępnia jednolity interfejs (lub grupę interfejsów) do ładowania i usuwania różnego rodzaju zasobów gry (assets oraz inne dane) zarządza umieszczaniem zasobów w pamięciach różnych rodzajów w czasie działania gry zapobiega wielokrotnym przydziałom pamięci dla tego samego zasobu

Zastosowanie: Pobieranie obiektów graficznych i jak najszybsze ich renderowanie (zwykle bez brania pod uwagę, które z nich są widoczne) (Graphics Device Interface) -wyliczanie urządzeń graficznych dostępnych w systemie (np. 2 lub więcej kart) i ich inicjalizacja odpowiednim ustawieniem parametrów bufora ramki (z-bufor, bufor koloru, bufor szablonu) -integracja renderera z pętlą komunikatów systemu operacyjnego dostarcza abstrakcję kamery (frustum – pole widzenia, płaszczyzny obcinania, etc.) oraz widoku (viewport) i tworzy między nimi połączenie obsługuje system materiałów i system oświetlenia zarządza stanami renderingu na podstawie materiałów i oświetlenia grupuje obiekty graficzne (np. względem materiałów) celem minimalizowania zmian stanów renderingu

Zastosowanie: Przeszukuje scenę celem wyznaczania obiektów graficznych, które są aktualnie widoczne (PVS), oraz określa wymagany poziom szczegółowości prezentowanych obiektów (LOD) selekcja obiektów względem bryły widzenia (frustum culling) grafy sceny i struktury podziału przestrzennego (BSP tree, quad- i octree, kd-tree, hierarchie brył ograniczających) portale selekcja obiektów względem zasłaniania (occlusion culling) poziom szczegółowości (LOD - level of detail)

systemy cząstek (dym, ogień, rozbryzgi wody,…) – często jako bezpośrednie wejście dla renderera kalkomanie (decals - dziury po pociskach, ślady stóp,…) – j.w. mapowanie oświetlenia i otoczenia efekty postprocesingu (patrz np. Ogre Compositor) -high dynamic range -antyaliasing -bloom -...

Zastosowanie: Umożliwia tworzenie (często 2-wymiarowych, implementowanych jako teksturowane prostokąty) nakładek na wizualizowaną scenę 3D HUD i GUI (wybór broni, konfigurowanie jednostek, wydawanie rozkazów,…) różnego rodzaju menu Dodatkowo: odtwarzanie nagranych wcześniej scenek-przerywników (FMV) in-game cinamatics (IGC) – stałe sekwencje wbudowane w rozgrywkę

konsola i inne narzędzia deweloperskie (dostarczane z grą lub nie) mierzenie czasu wykonania wybranych części kodu wyświetlanie statystyk podczas działania gry wyświetlanie na bieżąco jak dużo pamięci jest używanej przez silnik i jego poszczególne moduły nagrywanie zdarzeń gry w celu ponownego odtworzenia danej sekwencji …

Obecnie przy komercyjnym tworzeniu gier zwykle korzysta się z gotowych silników fizycznych: Havok PhysX

Obecnie w grach 3D najczęściej wykorzystywana jest animacja szkieletowa System animacji szkieletowej powiązany jest z: - rendererem za pośrednictwem modułu realizującego nakładanie skóry na szkielet (skinning) - fizyką za pośrednictwem podsystemu realizującego fizykę szmacianych lalek (rag dolls)

-obsługuje I/O różnych kontrolerów gracza (klawiatura i mysz, joypady, kierownice, maty, WiiMote…) -umożliwia stworzenie przez gracza własnego odwzorowania pomiędzy możliwymi akcjami kontrolera i akcjami gry -wykrywa sekwencje wciskanych klawiszy -…

-XACT – Microsoft (PC i Xbox 360) -SoundR!OT – Electronic Arts -Scream – Naughty Dog (PS3)

single-screen – kilka kontrolerów podłączonych do jednej maszyny, pojedyncza kamera (np. bijatyki) split-screen – j.w. ale z każdym z graczy skojarzona odrębna kamera networked – wiele maszyn połączonych w sieć i każda z nich jest hostem dla jednego gracza MMOG – tysiące graczy za pośrednictwem swoich maszyn, współdzielą jeden olbrzymi świat obsługiwany przez (zwykle) bardzo dużą liczbę serwerów Przekształcenie gry multiplayerowej do single-playerowej jest na ogół prostym zadaniem. Wiele silników traktuje tryb single jako przypadek szczególny trybu multi (np. Quake). Przekształcenie odwrotne (single -> multi) jest zwykle o wiele bardziej trudne, bowiem należy dostosować od multi wiele modułów silnika (renderer, warstwa I/O, system animowania,…). Dlatego, jeśli silnik ma wspierać multi, to należy go projektować pod tym kątem od samego początku.

high-level game flow - definiuje sekwencję, drzewo lub graf celów gracza; dostarcza również definicję sukcesu oraz kary za porażkę elementy statyczne świata na ogół podzielone są na kawałki (chunks, levels): -ze względu ograniczeń pamięciowych -w celu sprawowania kontroli nad przepływem gry w wirtualnym świecie -w celu ułatwienia procesu tworzenia gry Gracz w danej chwili widzi co najwyżej kilka (zwykle jeden) taki kawałek elementy dynamiczne są tym, co w największej mierze określa rozgrywkę Zastosowanie: Pośredniczy między kodem rozgrywki (w natywnym języku, w którym napisany jest silnik, lub w języku skryptowym - często w tym i w tym), a niższymi warstwami silnika