- Nazwa przedmiotu:
- Programowanie gier komputerowych
- Koordynator przedmiotu:
- Tomasz Martyn
- Status przedmiotu:
- Fakultatywny dowolnego wyboru
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Przedmioty techniczne - zaawansowane
- Kod przedmiotu:
- PGK
- Semestr nominalny:
- 3 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- udział w wykładach: 30h
przygotowanie do wykładów (przejrzenie slajdów, notatek, literatury): 12h
przygotowanie do zajęć laboratoryjnych: 12h
udział w zajęciach laboratoryjnych: 6 x 2h = 12h
praca nad projektem: 70 h (w tym spotkania projektowe 15h)
Suma: 30 + 12 + 12 + 12 + 70 = 136h
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- udział w wykładach: 30h
udział w zajęciach laboratoryjnych: 6 x 2h = 12h
spotkania projektowe 15h
Suma: 30 + 12 + 15 = 57h co daje ok. 2 ECTS
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- przygotowanie do zajęć laboratoryjnych: 12h
udział w zajęciach laboratoryjnych: 6 x 2h = 12h
praca nad projektem: 70 h (w tym spotkania projektowe 15h)
Suma: 12 + 12 + 70 = 94h, co daje ok. 4 ECTS
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium15h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- 1. dobra znajomość zagadnień trójwymiarowej grafiki komputerowej
2. znajomość API graficznych OpenGL lub DirectX
3. umiejętność programowania w języku obiektowym wysokiego poziomu (C++, Java lub C#)
- Limit liczby studentów:
- 32
- Cel przedmiotu:
-
Przedmiot poświęcony jest problematyce wytwarzania gier komputerowych przy wykorzystaniu nowoczesnych środowisk programistycznych, określanych często jako silniki gier. W skład każdego z takich środowisk wchodzi zwykle silnik właściwy, "wprawiający w ruch" zaprojektowany świat gry (w rozumieniu jego wizualizacji, zachodzących w nim interakcji fizycznych, zależności logicznych, itp.) oraz zbiór różnorakich narzędzi, które wspomagają proces tworzenia tego świata (różnego rodzaju edytory, interfejsy graficzne użytkownika, języki programowania). Na kolejnych jednostkach wykładowych omawiana jest budowa, używane algorytmy oraz narzędzia tworzące silnik gry na przykładzie nowoczesnego środowiska wytwarzania gier Unreal Engine 4 (UE4). Silnik ten jest dziś silnikiem wiodącym w przemyśle gier komputerowych i wykorzystywany jest przez wiele profesjonalnych studiów deweloperskich. Wykładowi towarzyszą seanse laboratoryjne, w trakcie których uczestnicy przedmiotu realizują ćwiczenia przy komputerach pod kierunkiem prowadzącego. Ćwiczenia te mają na celu sprawdzenie i wykorzystanie w praktyce wiedzy nabytej na wykładach. W skład przedmiotu wchodzi również projekt, w ramach którego uczestnicy mają za zadanie albo zaprojektowanie i zaimplementowanie własnego prostego silnika gry i następnie wykorzystanie go do utworzenia prostej gry, albo wytworzenie gry bardziej złożonej przy wykorzystaniu jednego silników dostępnych publicznie (w tym UE4).
- Treści kształcenia:
- Treść wykładu
Informacje ogólne: etapy wytwarzania gier komputerowych, czym jest silnik gry, architektura sterowana danymi, popularne silniki gier, składowe silnika gry, system plików UE4.
Podstawy projektowania poziomu gry: edytor UE4, geometria BSP, operacje CSG, geometria statyczna, geometria dynamiczna i animacja ramek kluczowych, materiały, oświetlenie globalne i bezpośrednie, dźwięki.
Zarządzanie zasobami gry: Content Browser, pakiety zasobów, edytory zasobów, importowanie i eksportowanie zasobów.
Tworzenie mechaniki i logiki gry: graficzny interfejs skryptowania Blueprint, sekwencje logiczne, zdarzenia, akcje, warunki, zmienne.
Animacja ramek kluczowych: edytor Matinee, czas, ścieżki animacji, grupy animacji, cinematics, importowanie i eksportowanie danych, animacja jako akcja w sekwencji logicznej.
Sztuczna inteligencja: AI akademickie vs. AI w grach komputerowych, AI w UE4, boty, sieci nawigacji, węzły i system ścieżek, poszukiwanie i trawersacja ścieżek, kontrolery.
Materiały i shadery: programowalny potok graficzny, wprowadzenie do shaderów wierzchołków, fragmentów i geometrii, modele oświetlenia i materiały w grafice komputerowej, tworzenie materiałów w edytorze materiałów UE4.
Tereny: problematyka wizualizacji terenów w grafice komputerowej, LOD, narzędzia modelowania terenu w UE4 (Landscape Mode), tworzenie i importowanie map wysokości, zagadnienia wizualizacji geometrii instancjonowanej z punktu widzenia nowoczesnych kart graficznych, rozmieszczanie tej geometrii na terenie przy wykorzystaniu UE4 Foliage Tool.
Oświetlenie i cienie: oświetlenie bezpośrednie i globalne w grafice komputerowej, UE4 i system globalnego oświetlenia Ligthmass, rodzaje źródeł światła, mapy światła i mapy cieni, cienie statyczne i cienie dynamiczne, tereny i cienie kaskadowe.
Systemy cząstek, efekty i post-processing: systemy cząstek w grafice komputerowej, UE4 i system Cascade, mgła, powierzchnie płynne, flary, kalkomanie (decals), UE4 i edytor post-processingu, efekty: bloom, depth of field, motion blur, screen ambient occlusion i inne.
Wprowadzenie do języka programowania skryptowego Blueprint: języki programowania wykorzystywane w nowoczesnych silnikach gier, UE4 i blueprinty, wprowadzenie do hierarchii klas, ogólne zasady tworzenia nowych klas i ich wykorzystanie w UE4, tworzenie własnych: kamer, broni i pojazdów, postaci gracza i NPC.
Wykorzystanie blueprintow do programowania własnych zasad gry.
Zakres laboratorium
Na kolejnych seansach laboratoryjnych uczestnicy przedmiotu ćwiczą przy komputerach, pod kierunkiem prowadzącego, wykorzystanie w praktyce narzędzi i metod przedstawianych na wykładzie.
Zakres projektu
W ramach projektu uczestnicy przedmiotu, w zespołach dwuosobowych, albo implementują swój własny silnik gry i demonstrują jego działanie na przykładzie stworzonej przez siebie prostej gry, albo tworzą bardziej złożoną grę przy wykorzystaniu silnika istniejącego (w szczególności UE4).
- Metody oceny:
- Ocena określana jest na podstawie oceny realizacji dużego projektu oraz liczby punktów uzyskanych za rozwiązania mniejszych zadań odnoszących się do poszczególnych zagadnień wytwarzania gier komputerowych i wideo, aktualnie poruszanych w ramach zajęć laboratoryjnych.
- Egzamin:
- nie
- Literatura:
- 1. D.H. Eberly, 3D Game Engine Design, 2nd ed. , Morgan Kaufmann, 2006.
2. J. Gregory, Game Engine Architecture , A K Peters/CRC Press, 2009.
3. A. Thorn, UDK Game Development , Delmar Cengage Learning, 2012.
4. Th. Mooney, Unreal Development Kit Game Design , Packt Publishing, 2012.
5. R. Cordone, Unreal Development Kit Game Programming with UnrealScript, Packt Publishing, 2011.
6. http://udn.epicgames.com/Main/WebHome.html
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INIIT-MSP-PGK
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka PGK_W01
- ma wiedzę na temat architektury silnika gry
Weryfikacja: zadania laboratoryjne i projekt
Powiązane charakterystyki kierunkowe:
K_W04, K_W05, K_W10
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
- Charakterystyka PGK_W02
- ma wiedzę na temat metod i problemów grafiki komputerowej czasu rzeczywistego
Weryfikacja: zadania laboratoryjne i projekt
Powiązane charakterystyki kierunkowe:
K_W04, K_W08, K_W09
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
- Charakterystyka PGK_W03
- ma wiedzę na temat funkcjonowania współczesnego sprzętu graficznego
Weryfikacja: zadania laboratoryjne i projekt
Powiązane charakterystyki kierunkowe:
K_W04, K_W10
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
- Charakterystyka PGK_W04
- ma wiedzę na temat cyklu produkcyjnego wytwarzania gry komputerowej/wideo.
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W04, K_W05, K_W08, K_W09
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
Profil ogólnoakademicki - umiejętności
- Charakterystyka PGK_U01
- potrafi zrealizować każdy z głównych etapów potoku wytwarzania gry
Weryfikacja: zadania laboratoryjne
Powiązane charakterystyki kierunkowe:
K_U02, K_U04, K_U07, K_U13
Powiązane charakterystyki obszarowe:
I.P7S_UK, I.P7S_UU, I.P7S_UW, III.P7S_UW.2.o, III.P7S_UW.3.o
- Charakterystyka PGK_U02
- potrafi wykorzystywać współczesne silniki gier do wytworzenia pełnowartościowej gry komputerowej/wideo
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U01, K_U04, K_U07, K_U13, K_U14
Powiązane charakterystyki obszarowe:
I.P7S_UK, I.P7S_UU, I.P7S_UW, III.P7S_UW.2.o, III.P7S_UW.3.o, I.P7S_UO, III.P7S_UW.4.o
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka PGK_K01
- potrafi realizować projekty programistyczne w zespole
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_K01
Powiązane charakterystyki obszarowe:
I.P7S_KO