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:
4 / rok ak. 2012/2013
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 Suma: 30 + 12 + 12 + 12 + 70 = 136h
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
2,6
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
3
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium15h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
umiejętność programowania w języku C++ podstawowa znajomość API graficznych OpenGL i DirectX
Limit liczby studentów:
32
Cel przedmiotu:
Praktyczne wprowadzenie do problematyki projektowania i implementowania bibliotek programowych, określanych jako silniki gier, przy wykorzystaniu współczesnego sprzętu graficznego.
Treści kształcenia:
Przedmiot poświęcony jest problematyce wytwarzania gier komputerowych przy wykorzystaniu współczesnego sprzętu graficznego. Główny nacisk wykładu położony jest na projektowanie i programowanie wieloplatformowych bibliotek programowych określanych jako silniki gier, ze szczególnym uwzględnieniem architektury najważniejszego z modułów tych silników, jakim jest silnik graficzny. Na kolejnych jednostkach wykładowych przedstawiana jest budowa poszczególnych modułów takich silników oraz wykorzystywane w nich algorytmy i techniki programistyczne. Między innymi omawiane są: efektywne techniki zarządzania pamięcią, zarządzanie zasobami gry, architektura i składniki wieloplatformowego renderera oraz różne aspekty i metody renderingu, efektywne techniki zarządzania obiektami sceny przy wykorzystaniu grafów sceny, różnego rodzaju efekty specjalne, problematyka modelowania i przemieszczania kamery po terenie, metody animacji postaci wykorzystywane w grach. Wykładowi towarzyszą seanse laboratoryjne, w trakcie których uczestnicy przedmiotu realizują zadania programistyczne przy komputerach pod kierunkiem prowadzącego. Zadania dotyczą w głównej mierze różnych metod i technik stosowanych w realistycznej grafice czasu rzeczywistego, ze szczególnym uwzględnieniem wykorzystania w tym celu programowalnych jednostek potoku graficznego za pomocą programów shaderów. Ćwiczenia te mają na celu przede wszystkim sprawdzenie i wykorzystanie w praktyce wiedzy nabytej na wykładach. Jednakże niektóre z ćwiczeń dotyczą również zagadnień technicznych, które nie są poruszane na wykładach, i jako takie ćwiczenia te powinny być traktowane jako swego rodzaju uzupełnienie wykładów. W skład przedmiotu wchodzi również projekt, w ramach którego uczestnicy mają za zadanie albo zaprojektowanie i zaimplementowanie własnego prostego silnika i następnie wykorzystanie go do utworzenia aplikacji demonstrującej działanie silnika, albo utworzenie prostej gry przy wykorzystaniu silników dostępnych publicznie.
Metody oceny:
Ocena określana jest na podstawie projektu oraz liczby punktów uzyskanych podczas realizowania ćwiczeń laboratoryjnych.
Egzamin:
nie
Literatura:
1. H. Eberly:3D Game Engine Design, 2nd ed., Morgan Kaufmann 2006. 2. F.Luna: Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach, Wordware Publishing, 2006. 3. T.Moller, E. Haines, T. Akenine-Moller: Real-Time Rendering, 2nd ed., Ak Peters, 2002. 4. J.C. Hart (et. al): Real-Time Shading, AK Peters, (2002). 5. Perełki programowania gier, tomy 1-3, Helion 2003. 6. R. Fernando, M.J.Kilgard: Język Cg. Programowanie grafiki w czasie rzeczywistym, Helion 2003. 7. D.Shreiner, M.Woo, J.Neider i T.Davis: OpenGL Programing Guide: The Official Guide to OpenGL, Version 2, 5th Edition, Addison-Wesley 2005. 8. R.J. Rost: OpenGL Shading Language, 2nd Edition, Addison-Wesley 2006. 9. Cg Toolkit: User's Manual, A Developer's Guide to Programmable Graphics, Release 1.2, NVIDIA Corporation 2004. 10. R. Fernando: GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, Addison-Wesley Professional 2004. 11. M.Pharr, R.Fernando: GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation, Addison-Wesley Professional 2005
Witryna www przedmiotu:
http://eres.elka.pw.edu.pl/eres/wwersje$.startup?Z_ID_PRZEDMIOTU=PGK&Z_NR_WERSJI=1&Z_CHK=23316
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt PGK_W01
Ma wiedzę na temat architektury i implementacji silnika gry
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_W05, K_W07, K_W08, K_W10
Powiązane efekty obszarowe: T2A_W04, T2A_W05, T2A_W07, T2A_W03, T2A_W04, T2A_W05, T2A_W07
Efekt PGK_W02
Ma wiedzę na temat metod grafiki czasu rzeczywistego
Weryfikacja: zadania laboratoryjne i projekt
Powiązane efekty kierunkowe: K_W05, K_W08, K_W09
Powiązane efekty obszarowe: T2A_W04, T2A_W07, T2A_W03
Efekt PGK_W03
Ma wiedzę na temat funkcjonowania współczesnego sprzętu graficznego
Weryfikacja: zadania laboratoryjne i projekt
Powiązane efekty kierunkowe: K_W04, K_W10
Powiązane efekty obszarowe: T2A_W02, T2A_W03, T2A_W04, T2A_W05, T2A_W07
Efekt PGK_W04
Ma wiedzę na temat programowania współczesnych kart graficznych
Weryfikacja: zadania laboratoryjne
Powiązane efekty kierunkowe: K_W07, K_W10
Powiązane efekty obszarowe: T2A_W05, T2A_W03, T2A_W04, T2A_W05, T2A_W07

Profil ogólnoakademicki - umiejętności

Efekt PGK_U01
Potrafi zaprojektować wieloplatformowy silnik graficzny
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_U05, K_U08, K_U13
Powiązane efekty obszarowe: T2A_U07, T2A_U09, T2A_U12, T2A_U18
Efekt PGK_U02
Potrafi wykorzystywać współczesne API graficzne
Weryfikacja: zadania laboratoryjne i projekt
Powiązane efekty kierunkowe: K_U01, K_U04, K_U05, K_U08
Powiązane efekty obszarowe: T2A_U01, T2A_U05, T2A_U07, T2A_U09, T2A_U12

Profil ogólnoakademicki - kompetencje społeczne

Efekt PGK_K01
Potrafi realizować projekty programistyczne w zespole
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_K01
Powiązane efekty obszarowe: T2A_K06
Efekt PGK_K02
Potrafi samodzielnie uzyskiwać dodaktowe informacje dotyczące grafiki komputerowej
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_K01
Powiązane efekty obszarowe: T2A_K06