1/1 Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 Nazwa przedmiotu: PROGRAMOWANIE GIER KOMPUTEROWYCH Kierunek: Specjalność: Tryb studiów: INFORMATYKA Kod/nr INTERAKTYWNA GRAFIKA TRÓJWYMIAROWA STACJONARNE JEDNOLITE MAGISTERSKIE Rodzaj przedmiotu: TECHNICZNY Liczba pkt ECTS Instytut/ Katedra: INFORMATYKI Semestr: IX Prowadzący przedmiot: prof. dr hab. inŝ. Konrad Wojciechowski Prowadzący zajęcia: Liczba godzin Wykład: prof. dr hab. inŝ. Konrad Wojciechowski Ćwiczenia: Laboratorium: mgr inŝ. Kamil Urbanek, mgr inŝ. Robert Mikuszewski, mgr inŝ. Adrian Dębowski, mgr inŝ. Mariusz Szynalik, mgr inŝ. Jakub Grudziński, mgr inŝ. Jakub Stępień, mgr inŝ. Przemysław Pruszowski Projekt: Seminarium: Wykład: 30 Ćwiczenia: Laboratorium: 30 Projekt: Seminarium:
2/1 Powiązanie ze standardami i cel kształcenia Celem przedmiotu jest zapoznanie studentów z problematyką programowania gier komputerowych. Tematyka gier komputerowych porusza wiele zagadnień znanych z innych gałęzi informatyki, w szczególności waŝne są zagadnienia związane z grafiką komputerową, dźwiękiem, algorytmiką i sztuczną inteligencją; w ostatnich latach równie istotne stają się teŝ zagadnienia sieciowe ze względu na coraz popularniejsze gry sieciowe, tzw. w trybie dla wielu graczy. Przede wszystkim jednak gry komputerowe są niezwykle złoŝonymi aplikacjami, w których najtrudniejszym problemem staje się sprawne połączenie wielu oddzielnych elementów. W ramach wykładu przedstawiane są podstawowe tematy realizowane przy tworzeniu gry komputerowej od etapu projektowania, poprzez opracowanie podstawowych struktur programu, najwaŝniejszych podsystemów gry aŝ do powstania pełnej aplikacji. Prezentowane są róŝne podejścia do rozwiązywania niektórych problemów. W ćwiczeniach laboratoryjnych szczególną uwagę poświęca się metodom praktycznego wykorzystania prezentowanych na wykładach technik i algorytmów wykorzystując najnowsze środowiska programistyczne (Visual C++, Visual C#). Osobne ćwiczenie poświęcone jest teŝ tworzeniu gier z wykorzystaniem dedykowanych środowiskach (np. XNA Studio Express) oraz korzystaniu z narzędzi do profilowania wydajności wyświetlania trójwymiarowej grafiki (NVidia NVPerfHud, ATI Pix Plugin). Przedmioty wprowadzające oraz wymagania wstępne Student powinien posiadać podstawową wiedzę z zakresu grafiki komputerowej, interaktywnej grafiki trójwymiarowej oraz znajomość paradygmatu programowania obiektowego. Przedmioty wprowadzające: Grafika komputerowa, Programowanie Komputerów, InŜynieria Oprogramowania, Podstawy Interaktywnej Grafiki Komputerowej, Programowanie w API Graficznych.
3/1 Treść wykładów: Wprowadzenie do tematyki programowania gier komputerowych. Podstawowe pojęcia, gatunki gier, architektura gier komputerowych. Organizacja danych w grach komputerowych. Graf sceny. Podstawowe mechanizmy silników graficznych. Architektura złoŝonych aplikacji wykorzystujących grafikę trójwymiarową. NajwaŜniejsze podsystemy silnika gry komputerowej. Interaktywna animacja komputerowa. Zasada działania animacji opartej o klatki kluczowe. Przykłady praktycznej animacji sceny trójwymiarowej. Parametryzacja animacji komputerowej. Modele szkieletowe. Sterowanie ruchem wirtualnej postaci. Budowa szkieletu i zasady poruszania wirtualnymi kośćmi. Zaawansowane techniki animacji modeli istot Ŝywych. Dźwięk w grach komputerowych. Problemy i metody realizacji dźwięku trójwymiarowego. Efekt Dopplera. Uwzględnianie kształtu sceny w ocenie słyszalności dźwięku. Interakcja w grach komputerowych. Wykrywanie kolizji i sterowanie ruchem obiektu na podstawie jego cech fizycznych. Fizyka ciał sztywnych i wiotkich. Elementy symulacji ubrań w czasie rzeczywistym. Zaawansowane techniki graficzne. Oświetlenie na wierzchołek i na piksel. Mapy nierówności i normalnych. Zasady dynamicznego oświetlania obiektów trójwymiarowych. Cienie. Wydajność i optymalizacja gier komputerowych. Wydajne renderowanie sceny. Profilowanie aplikacji. Narzędzia do testowania wydajności renderowanej grafiki. Dynamiczna kontrola poziomu szczegółowości sceny. Zmienny poziom szczegółowości modeli trójwymiarowych. Algorytmy dynamicznej kontroli złoŝoności podłoŝa (terenu). Gry dla wielu osób. Zagadnienia sieciowe w grach komputerowych. Gry typu Massive Multiplayer Online.
4/1 Treść/Tematy: Laboratorium Architektura silnika gry trójwymiarowej, Podsystem wyświetlania grafiki, eliminacja niewidocznych obiektów, wydajne renderowanie, oświetlenie, Podsystem interakcji, wykrywanie i reakcja na kolizje, róŝne poziomy dokładności wykrywania kolizji, podstawy fizyki, Programowanie ruchu wirtualnej postaci, kontrolery animacji, inteligentne sterowanie ruchem i animacją, Podsystem dźwięku, odgrywanie dźwięków, optymalizacja pracy z dźwiękami i muzyką, Języki skryptowe w grach komputerowych, wspomaganie skryptowe sterowania wirtualnymi postaciami, Zagadnienia sieciowe w grach komputerowych, gry dla wielu graczy, Środowiska dedykowane do tworzenia gier, tworzenie gier na PC i XBOX Live, Narzędzia zaawansowanego profilowanie wydajności renderowania grafiki (NVidia NVPerfHud, ATI Pix Plugin). Metody dydaktyczne Wykład: Prowadzący przedmiot w trakcie wykładu wykorzystuje prezentacje multimedialne, a takŝe przedstawia studentom przykłady konfiguracji oraz działania aplikacji. Laboratorium: Do kaŝdego laboratorium dołączona jest instrukcja, w której znajduje się wprowadzenie do zagadnienia, opis narzędzi wykorzystywanych w trakcie zajęć oraz lista zadań lub pytań wymaganych do zaliczenia danych zajęć laboratoryjnych. Forma egzaminu/zaliczenia przedmiotu 1. Wykład kolokwium zaliczeniowe w formie pisemnej 2. Laboratorium pozytywne zaliczenie wszystkich zajęć laboratoryjnych Minimalne wymagania do egzaminu /zaliczenia Zaliczenie kolokwium z wykładu, zaliczenie wszystkich zajęć laboratoryjnych
5/1 Literatura (podstawowa i specjalistyczna) 1. M. de Loura, Perełki Programowania Gier (tomy 1-3), Helion. 2. David H. Eberly, 3D Game Engine Design (2nd edition), The Morgan Kaufmann Series in Interactive 3D Technology 3. David H. Eberly, 3D Game Engine Architecture, The Morgan Kaufmann Series in Interactive 3D Technology 4. David H. Eberly, Game Physics, The Morgan Kaufmann Series in Interactive 3D Technology 5. Gino van den Bergen, Collision Detection in Interactive 3D Environments, The Morgan Kaufmann Series in Interactive 3D Technology 6. James M. Van Verth and Lars M. Bishop, Essential Mathematics for Games and Interactive Applications, The Morgan Kaufmann Series in Interactive 3D Technology. (data i podpis prowadzącego) Zatwierdzono: (data i podpis Dyrektora Instytutu/Kierownika Katedry)