Architektura gier komputerowych na wybranych przykładach. Krzysztof Rosiński



Podobne dokumenty
Zasoby. Musimy zaimportować zasoby dla gry z Asset Store

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

Pong to dwuwymiarowy symulator tenisa sportowego. Gracz, poruszając prostokątem symulującym paletkę, stara się zdobyć punkt poprzez posłanie piłki

Ping-Pong. Gra dla dwóch graczy.

Referat Pracy Dyplomowej

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

Pętle Gry. rozwiązania dla gier realtime. Jan Darowski. 14 maja 2014

Multimedialne Interfejsy Użytkownika. Technologie Wytwarzania Oprogramowania SUM Semestr 2, 2015/ luty 2017

Sieciowe Technologie Mobilne. Laboratorium 2

Unity 3D - własny ekran startowy i menu gry

Tworzenie gier na urządzenia mobilne

Tytuł projektu. WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA z siedzibą w Rzeszowie WYDZIAŁ INFORMATYKI STOSOWANEJ

MIKROKONTROLERY ARM DOKUMENTACJA WSTĘPNA PROJEKTU GRA PONG

POLITECHNIKA ŚLĄSKA WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI. Projekt inżynierski. Gra zręcznościowa z elementami edukacyjnymi.

Unity 3D - pierwsze skrypty

PyGame Gra w Ponga. Spis treści

Raport. Michał Andruszko

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Gry Komputerowe Laboratorium 3. Organizacja obiektów sceny Kolizje obiektów. mgr inż. Michał Chwesiuk 1/20. Szczecin, r

Tworzenie prostych gier w programie GameMaker

Unreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop Spis treści.

Scenariusz zajęć. Moduł V. Projekt Gra zręcznościowa odbijanie piłeczki

FINCH PONG. Realizator: Partner: Patronat:

Hurtownie danych - przegląd technologii

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Tworzenie gier na urządzenia mobilne

KURSY PROGRAMOWANIA DLA DZIECI

OpenGL i wprowadzenie do programowania gier

Podstawy inżynierii oprogramowania

Unity 2D - prosta gra

Programowanie obiektowe

Opracował: Jan Front

Grafika komputerowa i wizualizacja

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

D O K U M E N T A C J A

PROJEKT UCYF. Specyfikacja wstępna. 1. Informacje o grze: TEMAT: Sprzętowa realizacja gry Arkanoid przy pomocy języka opisu sprzętu VHDL.

Simulink MATLAB Przegląd obiektów i przykłady zastosowań

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Modelowanie obiektów opartych na sile sprężystości

Zastosowania Robotów Mobilnych

Szybkie prototypowanie w projektowaniu mechatronicznym

Instytut Informatyki, PWSZ w Nysie Kierunek: Informatyka Specjalność: Systemy i sieci komputerowe, SSK studia stacjonarne Rok 2012/2013

Instytut Nauk Technicznych, PWSZ w Nysie Kierunek: Informatyka Specjalność: Systemy i sieci komputerowe, SSK studia niestacjonarne Dla rocznika:

Grafika 3D na przykładzie XNA 3.1

Prison of Carbon Refleksje na temat procesu tworzenia gry i projektowania. Dla koła naukowego RPG Jakub SceNtriC

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 11.

Zaawansowana Grafika Komputerowa

Rok I, semestr I (zimowy) Liczba godzin

Prison of Carbon Refleksje na temat procesu tworzenia gry i projektowania. Dla koła naukowego RPG Jakub SceNtriC

Moc płynąca z kart graficznych

Elektroniczny Dowód Osobisty w Hiszpanii Doświadczenia Software AG w realizacji projektu analiza przypadku

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Problemy programowania gier. mgr Mateusz Rynk

Instytut Nauk Technicznych, PWSZ w Nysie Kierunek: Informatyka Specjalność: Gry komputerowe i multimedia, GKiM studia niestacjonarne Dla rocznika:

Unity 3D - efekty strzelania, koniec gry

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Autodesk 3D Studio MAX Animacja komputerowa i praca kamery

Unity 3D - tworzenie sceny

Rok I, semestr I (zimowy) Liczba godzin

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Algorytmy renderingu dla programowalnych jednostek graficznych. prof. dr hab. inż. Maria Pietruszka mgr inż. Dominik Szajerman

SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG

WYŚWIETLACZE GRAFICZNE MAX

Boisko Telefon faks. Spis treści

Programowanie Funkcyjne. Prezentacja projektu, 7 stycznia 2008, Juliusz Sompolski

Analiza i częściowa implementacja systemu elektronicznej wymiany danych na przykładzie e-faktury

KURSY PROGRAMOWANIA DLA DZIECI

Projekt SGI. WP 3.1 Wirtualne laboratorium i teleimersja Jacek Cała. (cala@ics.agh.edu.pl) (luke@ics.agh.edu.pl) Łukasz Czekierda

EFEKTYWNOŚĆ SYSTEMU ZARZĄDZANIA RUCHEM WWARSZAWIE SEBASTIAN KUBANEK. Zarząd Dróg Miejskich w Warszawie

INTERAKTYWNA KOMUNIKACJA WIZUALNA ANIMACJA

studia na WETI PG na kierunku automatyka i robotyka Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej 1

Symulacje komputerowe

WYŚWIETLACZE GRAFICZNE MAX

Fizyka 1 Wróbel Wojciech. w poprzednim odcinku

WPF 4.5 : księga eksperta / Adam Nathan. Gliwice, cop Spis treści

Programowanie, część III

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Tworzenie gier na urządzenia mobilne

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

Modelowanie Fizyczne w Animacji Komputerowej

#UczymyDzieciProgramować #ZadanieWprogramie

Język Java część 2 (przykładowa aplikacja)

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Bartosz Bazyluk GAME LOOP Podstawowy element silnika gry komputerowej. Programowanie Gier Komputerowych, Informatyka S1, III Rok

Projekt z UCYF Dokumentacja końcowa. Temat: Sprzętowa realizacja gry Arkanoid

Techniki animacji komputerowej

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

1 Wielokrotne powtarzanie tych samych operacji

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Projekt z UCYF Specyfikacja II (realizacja projektu w CAD) Temat: Sprzętowa realizacja gry Arkanoid

Tabela 1. Planowana obsada zajęć dla I roku studia stacjonarne. dr hab. Ewa Łazarow 60 60

forma zajęć * w+ćw O/F P/K sem+ćw O K Szkolenie BHP Inne O Z 4ćw O/F** P/K zajęć*

Unity 3D - podpowiedzi w grze. System cząstek

rodzaj zajęć semestr 1 semestr 2 semestr 3 semestr 4 Razem Lp. Nazwa modułu E/Z Razem W I

Twórz własne gry komputerowe w Pythonie / Al Sweigart. Warszawa, Spis treści

Transkrypt:

Architektura gier komputerowych na wybranych przykładach Krzysztof Rosiński

Agenda Pong podstawowe moduły gry

Agenda Pong podstawowe moduły gry. Reprezentacja obiektów.

Agenda Pong podstawowe moduły gry. Reprezentacja obiektów. Czas czyli while(true)... ;

Agenda Pong podstawowe moduły gry. Reprezentacja obiektów. Czas czyli while(true)... ; Rozbudowa architektury.

Agenda Pong podstawowe moduły gry. Reprezentacja obiektów. Czas czyli while(true)... ; Rozbudowa architektury. Podsumowanie.

Mechanika gry: Pong - analiza

Mechanika gry: Pong - analiza

Pong - analiza Elementy gry: Paletka.

Pong - analiza Elementy gry: Paletka. Piłka.

Pong - analiza Elementy gry: Paletka. Piłka. Punktacja.

Pong - analiza Mechanika gry: Poruszanie paletkami.

Pong - analiza Mechanika gry: Poruszanie paletkami. Odbijanie piłki

Pong - analiza Mechanika gry: Poruszanie paletkami. Odbijanie piłki. Naliczanie punktów.

Pong - analiza Moduły gry: Sterowanie (InputManager).

Pong - analiza Moduły gry: Sterowanie. Wyświetlanie (Renderer).

Pong - analiza Moduły gry: Sterowanie. Rendering. Kolizje (CollisionManager).

Pong - analiza Moduły gry: Sterowanie. Rendering. Kolizje. Zasoby (ResourceManager).

Pong - analiza Moduły gry: Sterowanie. Rendering. Kolizje. Zasoby. Heads-Up-Display (HUD).

Pong - analiza Moduły gry: Sterowanie. Rendering. Kolizje. Zasoby. Heads-Up-Display (HUD). Reprezentacja obiektów.

Reprezentacja Obiektów Obiekt: Pozycja (Vector 2D).

Reprezentacja Obiektów Obiekt: Pozycja (Vector 2D). Reprezentacja graficzna (tekstura).

Reprezentacja Obiektów Obiekt (Sprite): Pozycja (Vector 2D). Reprezentacja graficzna (tekstura).

Reprezentacja Obiektów GameObject: Sprite. InputListener

Reprezentacja Obiektów GameObject: Sprite. InputListener: Rejestracja w InputManager przy utworzeniu.

Reprezentacja Obiektów GameObject: Sprite. InputListener: Rejestracja w InputManager przy utworzeniu. Wystawia event na zdarzenie inputu.

Reprezentacja Obiektów GameObject: Sprite. InputListener. Collider.

Reprezentacja Obiektów GameObject: Sprite. InputListener. Collider: OnEnter(Collider other) OnExit(Collider other) OnStay(Collider other)

Reprezentacja Obiektów GameObject: Sprite. InputListener. Collider. Controller.

Reprezentacja Obiektów GameObject: Sprite. InputListener. Collider. Controller: Reakcja na input.

Reprezentacja Obiektów GameObject: Sprite. InputListener. Collider. Controller: Reakcja na input. Implementacja zachowania.

Reprezentacja Obiektów PaletkaObject: Sprite. InputListener. Collider. PlayerController: Reakcja na input. Implementacja zachowania.

Reprezentacja Obiektów PilkaObject: Sprite. InputListener. Collider. PilkaController: Reakcja na input. Implementacja zachowania.

Reprezentacja Obiektów PilkaObject: Sprite. InputListener. Collider. PilkaController: Reakcja na kolizję. Implementacja zachowania. Prędkość, przyspieszenie.

Modules + GameObjects = Game?

Modules + GameObjects Game

Modules + GameObjects + Time = Game

Main Game Loop Główna pętla gry: Odświeżenie stanu gry.

Main Game Loop Główna pętla gry: Odświeżenie stanu gry. Update(TimeInterval deltatime)

Main Game Loop Główna pętla gry: Odświeżenie stanu gry. Update(float deltatime)

Main Game Loop Główna pętla gry: Odświeżenie stanu gry. Update(float deltatime)

Main Game Loop Główna pętla gry: Odświeżenie stanu gry. Update(float deltatime) deltatime = currentframetime - prevframetime

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu.

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu. Niezależność od urządzenia. Iterfejs IUpdatable.

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu. Niezależność od urządzenia. Iterfejs IUpdatable. Kolekcja obiektów typu IUpdatable.

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu. Niezależność od urządzenia. Iterfejs IUpdatable. Kolekcja obiektów typu IUpdatable. Moduły, Managery.

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu. Niezależność od urządzenia. Iterfejs IUpdatable. Kolekcja obiektów typu IUpdatable. Moduły, Managery. GameObjecty.

Main Game Loop Główna pętla gry: Update(float deltatime) Zmiany uzależnione od czasu. Niezależność od urządzenia. Iterfejs IUpdatable. Kolekcja obiektów typu IUpdatable. Moduły, Managery. GameObjecty. Inne.

Main Game Loop Dlaczego nie tak: List<IUpdatable> updatecollection;... foreach(iupdatable element in updatecollection) Element.Update(deltaTime);

Main Game Loop Dlaczego nie tak: List<IUpdatable> updatecollection;... foreach(iupdatable element in updatecollection) Element.Update(deltaTime); Zależności pomiędzy modułami.

Main Game Loop Dlaczego nie tak: List<IUpdatable> updatecollection;... foreach(iupdatable element in updatecollection) Element.Update(deltaTime); Zależności pomiędzy modułami. Opóźnienie jednej klatki. Niestabilność systemu.

Main Game Loop while(true) { collisionmanager.update(dt); inputmanager.update(dt); gameobjectsmanager.update(dt); soundmanager.update(dt); rendermanager.draw(); sleep(t); }

Rozbudowa architektury Może by tak ptaki... z procy... w świnie...;)

Rozbudowa architektury Może by tak ptaki... z procy... w świnie...;)

Rozbudowa architektury Nowe elementy (PongBirds):

Rozbudowa architektury Nowe elementy (PongBirds): Wiele poziomów (levele).

Rozbudowa architektury Nowe elementy (PongBirds): Wiele poziomów (levele). Symulacja fizyki.

Rozbudowa architektury Nowe elementy (PongBirds): Wiele poziomów (levele). Symulacja fizyki. Zapis stanu gry.

Rozbudowa architektury Potrzebne moduły: Scena

Rozbudowa architektury Potrzebne moduły: Scena Logicznie grupuje obiekty gry.

Rozbudowa architektury Potrzebne moduły: Scena Logicznie grupuje obiekty gry. Implementuje logikę danego fragmentu gry.

Rozbudowa architektury Potrzebne moduły: Scena Logicznie grupuje obiekty gry. Implementuje logikę danego fragmentu gry. Wczytuje wszystkie potrzebne elementy.

Rozbudowa architektury Potrzebne moduły: Scena Logicznie grupuje obiekty gry. Implementuje logikę danego fragmentu gry. Wczytuje wszystkie potrzebne elementy. OnActivate() OnDeactivate()

Rozbudowa architektury Potrzebne moduły: Scena SceneManager.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager: Przejścia pomiędzy scenami.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager: Przejścia pomiędzy scenami. Kurtyna, loading screeny.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager: Symulacja fizyki ciała sztywnego. Wspólpraca z CollisionManager.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager. Serializacja/Deserializacja: Dane sceny (xml, binarnie, dowolnie)

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager. Serializacja/Deserializacja. SaveManager.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager. Serializacja/Deserializacja. SaveManager: Zapis stanu gry.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager. Serializacja/Deserializacja. SaveManager: Zapis stanu gry. Zabezpieczenia.

Rozbudowa architektury Potrzebne moduły: Scena SceneManager. PhysicsManager. Serializacja/Deserializacja. SaveManager: Zapis stanu gry. Zabezpieczenia.

Rozbudowa architektury Potrzebne moduły: Kamera.

Rozbudowa architektury Potrzebne moduły: Kamera: GameObject (pozycja, predkość, fizyka).

Rozbudowa architektury Potrzebne moduły: Kamera: GameObject (pozycja, predkość, fizyka). CameraController.

Rozbudowa architektury Potrzebne moduły: Kamera: GameObject (pozycja, predkość, fizyka). CameraController. Współpraca z rendererem.

Podsumowanie Managers Renderer Device Input Game Components Game Logic Game Output Sound Resource Manager Textures 3D models Sounds/Music Fonts

krzysztof.rosinski@ansharstudios.com www.ansharstudios.com