Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i...
Transcript of Tworzenie gier na urzadzenia mobilne (zaoczne)Wprowadzenie do silników gier Scena, kamera i...
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Rysunek: OGRE (źródło: oficjalna strona OGRE)
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
Rysunek: OGRE (źródło: oficjalna strona OGRE)
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
Rysunek: OGRE (źródło: oficjalna strona OGRE)
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
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)
Rysunek: Blender (źródło: oficjalna strona Blender)
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
Rysunek: Blender (źródło: oficjalna strona Blendera)
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
Rysunek: SFXR
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
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)
Rysunek: Minecraft
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
Rysunek: Superhot
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
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)
Rysunek: Piksele i sztuczne zwiększenie wielkości piksela w wyższejrozdzielczości
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)
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)
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)
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)
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)
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)
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)
Dziękuję za uwagę
dr Przemysław Juszczuk Tworzenie gier na urządzenia mobilne (zaoczne)