tworzenie gier na urzadzenia mobilne (zaoczne)wprowadzenie do silników gier scena, kamera i...

29
Tworzenie gier na urządzenia mobilne (zaoczne) dr Przemyslaw Juszczuk Katedra Inżynierii Wiedzy Wyklad 1 dr Przemyslaw Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Upload: others

Post on 20-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Tworzenie gier na urządzenia mobilne (zaoczne)

dr Przemysław Juszczuk

Katedra Inżynierii Wiedzy

Wykład 1

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 2: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

e-mail: [email protected]

Konsultacje: na stronie katedry + na stronie domowej

Pokój 202c budynek A

pjuszczuk.pl

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 3: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Warunki zaliczenia

Kolokwium z części teoretycznej (materiały z wykładów) - 30 %oceny;Projekt (projekty) realizowany w grupach (minimum 2-osobowych)rozliczany indywidualnie - 70 % oceny. Wymagane jest wyraźnewskazanie części projektu zrealizowanego przez daną osobę.Ćwiczenia obejmują wykonanie maksymalnie 3 projektów. Szczegółyprojektów podane będą z wyprzedzeniem wraz z dokładnym opisemwymagań.Termin zdania projektu ustalany będzie na zajęciach.Materiały z wykładów oraz ćwiczeń wraz z opisem projektówdostępne będą online.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 4: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Wprowadzenie do silników gier

Scena, kamera i oświetlenie

Prototypowanie i rzeźba terenu

Programowanie zdarzeniowe w C#

GUI

Interakcje w grze

Gry 2D a 3D

Fizyka i efekty (opcjonalnie)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 5: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Nieco bardziej szczegółowo 11 1 - wprowadzenie, silniki, narzędzia dodatkowe, Unity.2 2 - scena, kamera, transformacje, budowa interfejsu w Unity, światło.3 3 - prototypowanie i rzeźba terenu.4 4 - podstawy C#, programowanie zdarzeniowe, projektowanie

komponentowe, podstawowe interakcje w grze.5 5 - graficzny interfejs użytkownika - elementy i dobre nawyki;6 6 - gry 2D;7 7 - fizyka i dźwięki w grze. Publikacja na platformy mobilne,

akcelerometr.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 6: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Narzędzia

silnik gry (najczęściej silnik + narzędzia) - moduł grafiki, AI, fizyka(wykrywanie kolizji) - Unreal Engine, CryEngine, Doom engine,Quake engine, Unity.silnik graficzny (kod odpowiedzialny za grafikę 2D i/lub 3D) -czasami wyróżnia się silnik 3D lub 2D dedykowany konkretnejgrafice, np. wsparcie sprzętowe dla grafiki + biblioteki (DirectX,OpenGL) - OGRE, Crystal Space.(silnik fizyczny) - symulacja procesów fizycznych takich jak dynamikapłynów, zderzenia i odkształcenia brył. Zastosowanie np. w fizyce domodelowania zjawisk i układów - np. Havoc (oddzielne moduły, np.moduł dotyczący bryły sztywnej, lub animacji postaci), PhysX -wykorzystanie akceleracji sprzętowej kart graficznych (GPGPU).Ciekawostka - Havoc jako element silnika Anvil (później AnvilNext)został wykorzystany w serii gier Assassin’s Creed.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 7: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Narzędzia

narzędzia graficzne - przygotowanie elementów graficznych (np.tekstury), np. GIMP do obróbki grafiki rastrowej (AdobePhotoshop), InkScape do obróbki grafiki wektorowej (AdobeIllustrator), Tiled - edytor do tworzenia poziomów (tzw. kafelki),MakeHuman - darmowe narzędzie do generowania siatekhumanoidalnych (animacja postaci w połączeniu ze szkieletem imodelem RigidBody).oprawa dźwiękowa - edytory dźwięku takie jak Audacity, generowaniedźwięków akcji (atak, uderzenie w ścianę) - SFXR, lub mikrofon +nagrywanie.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 8: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Unreal Engine

pierwsza wersja (mechanizm renderowania, system wykrywaniakolizji, system sztucznej inteligencji) - 1998 rok (gra Unreal);Unreal Tournament - wersja 1.5 (1999r.);Aktualna wersja 4, a od 2015 roku silnik jest darmowy (opróczprodukcji komercyjnych, które zarobią powyżej 3 tys dolarów).

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 9: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Doom Engine

pierwsza wersja stworzona przez Id Software na potrzeby gry Doom(1993 rok);od 1999 roku kod silnika opublikowany został na licencji darmowej;silnik doczekał się wielu modyfikacji dotyczących np. obsługiOpenGL.

Quake Engine

silnik opracowany w 1996 roku (na potrzeby gry Quake);jeden z pierwszych silników posiadających grafikę 3Dprzygotowany przez Johna Carmacka (ten sam, który napisał silnikDoom Engine).

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 10: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Crystal Space

biblioteka do tworzenia aplikacji z grafiką trójwymiarową;napisana w C++;obecna wersja: 2 (2012 rok);wymagane dodatkowe biblioteki zewnętrzne do poprawnegodziałania (np. do Windows);

OGRE

OGRE - Object-Oriented Graphics Rendering Engine;licencja MIT (X11) - otwarte oproramowanie;powstał w 2001 roku (aktualna wersja z 2013 roku 1.9, trwają pracenad 2);możliwość dowolnej edycji, wprowadzenia zmian, dopisywaniawłasnych elementów;moduły: animacja, efekty, materiały, scena, renderowanie -możliwość zmian w kodzie i jego analizy, dostęp do poszczególnychklas.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 11: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: OGRE (źródło: oficjalna strona OGRE)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 12: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: OGRE (źródło: oficjalna strona OGRE)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 13: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: OGRE (źródło: oficjalna strona OGRE)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 14: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Narzędzia graficzne - Blender

Blender jako darmowa alternatywa dla Photoshopa;Wsparcie dla obliczeń GPU;modelowanie;przygotowanie modelu i przekształcenie w postać (szkielet iporuszanie się);rzeźbienie w materiałach;symulacje (woda, dym, włosy, ubranie);efekty cząsteczkowe jak deszcz, czy iskry;kamera i śledzenie obiektów;zestawy dodatkowych bibliotek;gotowe projekty, materiały, modele.

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 15: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Blender (źródło: oficjalna strona Blender)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 16: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Blender (źródło: oficjalna strona Blendera)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 17: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: SFXR

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 18: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Da się przygotować coś bez złożonej grafiki?

gry niezależne (indie games, indyki) - tworzone przez mały zespół/jedną osobę bez wsparcia finansowego;ze względu na ograniczone koszty - często brak fizycznego nośnika;podstawowym atutem jest innowacyjność (Minecraft).

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 19: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Minecraft

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 20: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Superhot

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 21: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Gry retro a grafika retro

gry nieco starsze - najczęściej z lat 1980;gry w stylu retro - (Hotline miami, Fez, Super meatboy) - nowe gry,w których stosowana jest grafika w stylu retro;ograniczona paleta kolorów;skalowanie pikseli (w celu wyraźnego zaznaczenia poszczególnychpikseli): jeden piksel to np. siatka 10 na 10 pikseli;

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 22: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Piksele i sztuczne zwiększenie wielkości piksela w wyższejrozdzielczości

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 23: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Własny silnik gry

język programowania (np. C++);wzorce projektowe - silnik gry jako singleton, obsługa zdarzeń przypomocy wzorca Observer, wzorzec Fasada do ukrycia wybranychelementów;wybór biblioteki graficznej (DirectX, OpenGL).

Elementy silnika

rdzeń silnika (pętla główna gry i elementy takie jak zdarzeniewyświetlania klatki, odświeżanie zegara, wykonywanie koduużytkownika i zdarzeń);moduł renderowania (wyświetlanie obiektów na ekranie);moduł sceny / obiektów (elementy opisujące scenę np. 3D, kamerę iświatło);moduł fizyki? - symulacja zderzeń, symulacja grawitacji (np. pinball).

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 24: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Unity 3D - gry

Pillars of Eternity;Deus Ex;Might and Magic X;Slender;

Unity 3D - ogólnie

zintegrowane środowisko do tworzenia gier 2D, 3D oraz materiałówinteraktywnych;wieloplatformowość - Windows, Linux, Mac, apki mobilne, konsole;możliwość pisania skryptów w trzech językach: C#, UnityScript(JavaScript), Boo (inspirowany Pythonem).

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 25: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Unity 3D - trochę historii

pierwsze wzmianki - 2002 rok (długo przed silnikiem Unity);6 czerwca 2005 - Unity (1.0.0);czerwiec 2006 - Unity 1.5;2008r. - Unity 2.0 (biggest step ever) - wsparcie dla DirectX, cienie,silnik rzeźby terenu, Asset Store, nowe GUI;2009r. - Unity 2.5 i wsparcie dla systemu Windows;wrzesień 2010 - Unity 3.0 - mapy świetlne, debuggowanieniskopoziomowe (ponad 200 tys. zarejestrowanych użytkowników);grudzień 2011 - open beta Unity 3.5;luty 2012 - Unity 3.5;listopad 2012 - Unity 4.0 - stary mechanizm animacji Legacyzastąpiony nowym - Mecanim;listopad 2013 - Unity 4.3 - wsparcie dla 2D

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 26: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Rysunek: Unity Pre-initial release Ver. 0.2b(Źródło: A History of the UnityGame Engine)

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 27: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Języki w Unity 3D

3 zamienne języki, które w zamyśle twórców pozwalają developeromna przygotowanie dowolnego zestawu instrukcji;środowisko Mono (open source’owa wersja Microsoft .Net);UnityScript - postrzegany jako łatwiejszy do nauki na początek niżC#;

Licencje Unity 3D

Darmowa;Płatna - koszt 1500$;

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 28: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Wsparcie Unity

tutoriale i darmowe poradniki;biblioteka Asset Store z darmowymi i płatnymi materiałami;Unity Unite - cykliczna konferencja w kilku miastach na świecie(2016: Amsterdam, Seul, Tokio, Los Angeles, Singapur);

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)

Page 29: Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i oświetlenie Prototypowanie i rzeźba terenu Programowanie zdarzeniowe w C# GUI Interakcje

Dziękuję za uwagę

dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)