Razvoj računarskih igara

Cilj i ishod predmeta

Unoznavanje sa algoritmima, strukturama podataka i arhitekturama koje se primenjuju u razvoju računarskih igara. Student razume i u stanju je da primeni koncepte neophodne za razvoj pogonskog sistema računarskih igara, kao i da odabere i programira postojeće sisteme na profesionalnom nivou.

Teorijska nastava

Slojevita arhitektura pogonskog sistema računarskih igara. Hardver i upravljački programi. Operativni sistem. Nezavisni SDK i srednji slojevi (Boost, Folly, Loki, C++ STL), grafika (Glide, OpenGL, DirectX, libgcm, Edge), sudari i fizika (Havok, PhysX, Open Dynamics Engine), animacija karaktera (Granny, Havok Animation, OrbisAnim), biomehanički modeli (Endorphin, Euphoria). Platformski nezavisan sloj: primitivni tipovi, kolekcije i iteratori, fajl sistem, precizni tajmer, umrežavanje, bibioteka za rad sa nitima. Jezgro sistema: debagovanje, upravljanje memorijom, matemetička biblioteka, specijalni algoritmi i strukture podataka. Upravljanje resursima: 3D model, tekstura, fontovi, skeleton, sudari, fizički parametri. Renderovanje: renderovanje na niskom nivou (interfajs sa grafičkom karticom, geometrijske primitive), redukcija izračunavanja, vizuelni efekti (čestični sistemi, mapiranje svetla i okruženja, dinamičko senčenje), Front End (heads-up display – HUD, razvojni alati unutar igre, grafički interfejs unutar igre, video pune skale (FMV), kinematografija unutar igre (IGC), alati za profilisanje (Intel Vtune, IBM Rational Purify, Parasoft Insure++), animacija (sprajtovi, hijerarhijska animacija čvrstog tela, skeletna animacija), interfejsi sa korisnikom (HID), audio podsistem. Online sistem za više igrača (jedinstveni ekran, podeljeni ekran, igranje na mreži, masivno online igranje (Massively Multiplayer Online Games – MMOG), bazni sistem za pravila igre (svet igara i objektni modeli, sistemi događaja, skripting sistem, elementi veštačke inteligencije, specifični podsistemi). Alati i resursi: alati za kreiranje digitalnog sadržaja (obrada resursa, 3D modeli, skeltni animacioni podaci, podaci čestičnog sistema), baza resursa. Specifični podsistemi konkretnih igara: rendering, mehanika, kamere, veštačka inteligencija.

Praktična nastava

Analiziranje javno dostupnog izvornog koda za računarske igrice Wolfenstein 3D, Doom i Quake. Sprajtovi, oružje i pozadina. Konstrukcija spostvenog pogonskog sistema na bazi OpenGL sposobnog za renderovanje 3D modela. Pozadina, animacija i rad sa sprajtoviman. Dodavanje detekcije sudara između konveksnih modela. Emulacija fizičkih sila (gravitacija, otpor, trenje). Renderovanje senki. Implementacija čestičnog sistema. Dodavanje pravila za igru fudbala. Poboljšanje perfomansi renderinga kroz redukciju izračunavanja (culling). Implementacija kamere za igre u prvom licu. Dodavanje veštačke inteligencije radi kontrole ponašanja i pronalaženja optimalne putanje. Programiranje postojećih pogonskih sistema: Open 3D engine, Unreal Engine, Unity, Panda3D.

1 thought on “Razvoj računarskih igara”

Comments are closed.