Vadász Dénes Informatikai Szakkör - ÖTLETTÁR 2011. március 16. A MODERN JÁTÉKFEJLESZTÉS Nagy Ferenc MSc mérnök informatikus hallgató, ME-GÉIK
Tartalom Egy modern játék ismérvei A játékfejlesztés fázisai Játékmotor főbb részei Adatvezéreltség Játékfejlesztésben elterjedt fájlformátumok 2
Egy modern játék ismérvei Egy interaktív játék szórakoztató médium Összetettség, bonyolultság Játékmenet Fejlesztés (játékélmény!= játékfejlesztés) Adatvezéreltség, könnyen cserélhető tartalom (modding) Korszerű technológiák alkalmazása (cutting edge) 3
A játékfejlesztés fázisai Tervezési szakasz Kivitelezési szakasz Menedzsment 4
Tervezési szakasz Koncepció Ötletelés (brainstorming) Design. Conceptual art & design. Specifikáció 5
Koncepció műfaj, téma (genre) forma vagy stílus célközönség korhatár besorolás (http://www.esrb.org) casual gamers hardcore gamers célplatform Pl. Half Life 2: akció-shooter, FPS, ESRB-M (17+), PC, konzol. 6
Ötletelés (brainstorming) Hasonló témájú és/vagy műfajú játékokból ötletek merítése Saját ötletek Forgatókönyvek Concept rajzok Design Vizuális design Játékmenet design Forgatókönyv Hangulat design Egyéb design 7
Specifikáció Az ötletek, tervek, design konkretizálása a jó ötletek kiválogatása Racionalitás, technikai határok az egyik ötlet nagyon bonyolult, az adott platformon nem kivitelezhető Rendszerkövetelmények felállítása, kompromisszumok az ötlet megvalósítása nem lesz teljesen megfelelő az eredeti elképzelésnek a szűk technikai határok miatt Technológiai specifikáció az egyes elemek milyen algoritmussal valósuljanak meg 8
A tervezési fázis eredménye Egy design dokumentum a specifikációs leírásokkal Egy vagy több prototípus, esetleg technológiai demó Kivitelezési szakasz design doksi alapján Mérföldkövek (pl. E3) Határidők, crunch mode 9
A kivitelezési szakasz Az alrendszerek fejlesztése és folyamatos tesztelése Megvásárolt vagy saját rendszer bővítése, idomítása a már meglévő technológiákhoz A rendszerek együttes tesztelése, a kommunikáció megvalósítása Párhuzamosítás és tesztelés Optimalizálások, profile-ozás, szűk keresztmetszetek szűrése és optimalizálása 10
Nvidia PerfHUD 11
Nvidia PerfHUD 12
Menedzsment Hibajavítások (bugfix) Bővítések, újabb feature-ök (patch) Átalakítások (optimálás) motorbeli átalakítások, technológiaváltás tartalmi átalakítások Marketing multimédiás ajánlók, trailerek, screenshotok ingyenesen letölthető, kipróbálható demó verzió Portolás, felzárkózás újabb technológiákhoz Engine és technológiák publikálása, eladása, open source-szá tétele 13
14
Játékmotor főbb részei Mit is tekintünk game engine-nek? Összefogó eszköz, éltető elem Alrendszerek segítségével játék objektumokon keresztül alakít ki vizuális/hangi kimenetet 15
Játékmotor főbb részei Grafikus motor DirectDraw, Direct3D, OpenGL Fizikai motor Havok, Open Dynamics Engine, PhysX Hang és zene motor DirectSound, DirectMusic, OpenAL, FMOD AI rendszer 16
Játékmotor főbb részei Hálózatkezelő rendszer DirectPlay, Open Torque NL, WinSock Inputkezelő motor DirectInput, XInput Script-rendszer game logic Lua, Python, Java, C# Erőforráskezelő rendszer Egyéb rendszerek DirectShow, DirectX Media 17
Készen kapható motorok 3D Ogre Doom 3 Source Unreal 3 XNA 2D RPG Maker sorozat webes motorok Virtools Flash 18
Adatvezéreltség Programozási paradigma A játékmotor és a játéktartalom teljes elkülönülése 19
Adatvezéreltség Alkalmazása meta-adatok beolvasó-ellenőrző-feldolgozó egység Fontossága bedrótozás kiküszöbölése könnyen cserélhető tartalom adathibák automatikus szűrése nem kell programozási ismeret az adatvezérelt programozáshoz 20
Adatvezéreltség Grafikus motor Modellek, animációk, 2d grafikák, textúrák, egyéb grafikus adatok Fizikai motor fizikai modellek, fizikai jellemzők leírása objektumonként Hang és zene motor Hangok, zenék, egyéb audió- és audionális leíró adatok AI rendszer Gondolkodásminták, mesterséges intelligencia leíró eszközei Hálózatkezelő rendszer Üzenetek, reakciók leírása, saját kommunikációs protokoll kialakítása 21
Adatvezéreltség Inputkezelő motor Adatbeviteli eszközök konfigurációja Script-rendszer game logic Scriptek Erőforráskezelő rendszer Csomagolt fájlok Egyéb rendszerek Egyéb leíró adatok Vezérlésre és egyéb beállításokra vonatkozó adatok 22
Elterjedt fájlformátumok Modellező, tervező szoftverek, elterjedt modell és animáció leíró formátumok Alacsony/magas poligonszámú modellezők 3d Studio Max, Maya, Blender Elsősorban magas poligonszámú modellezők Zbrush, Mudbox A DirectX saját formátuma: X Az id Software saját formátumai MDL, MD2-MD5, BSP Egyéb formátumok, saját formátumok 23
Elterjedt fájlformátumok Képformátumok Tömörítés és minőség Speciális formátumok Alfacsatornás képek A DDS formátum lehetőségei Az engine azonnal feldolgozza Volumetrikus textúra cube textúra HDR információ 24
Elterjedt fájlformátumok XML univerzális formátum rugalmas - rendkívül könnyű feldolgozni! Könnyen integrálható XML beolvasók TinyXML XML szerkesztők XML Schema Definition (XSD) 25
Hasznos anyagok, linkek Könyvek Game Programming Gems könyvsorozat ComputerBooks kiadó egyes könyvei (magyar!) Nyisztor Károly könyve Internetes fórumok GameDev: http://www.gamedev.net GamaSutra: http://www.gamasutra.com Game Developers Conference http://www.gdconf.com Game Developers Forum http://www.gdf-hu.com 26
Köszönöm a figyelmet!