játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Geoff Howland: Hogyan kell játékot készíteni? 2005.04.19 03:36



Geoff Howland: Hogyan kell játékot készíteni?


Azok, akik játékot szeretnének fejleszteni, gyakran kezdik olyan kérdésekkel, mint "Hogyan kell játékot írni?" esetleg "Olyan játékot szeretnék készíteni, mint a Quake / Everquest / Starcraft, és…". Így, önmagában, mind a két kérdés értelmetlen. Az elsõ olyan, mintha azt kérdeznénk, hogy "Hogyan kell házat építeni?"; ugyanis nem lehet rá felelni, ahhoz a kérdés túl összetett.
A másodikkal az a probléma, hogy a kérdezõ túl nagy elvárásokat támaszt magával szemben. A fenti programokat nagy, profi cégek készítették több millió dolláros költségvetéssel, olyan emberek „közremûködésével”, akiknek már nagy tapasztalata volt ezen a téren. Ezek a csapatok nem úgy kezdték, hogy „Na, fiúk, írjunk egy játékot” és másnapra már kész is volt a Nagy Mû, hanem elõbb kisebb projekteket készítettek, és fokozatosan haladtak elõre. Ez az, amit mindeknek, akit komolyan érdekel a játékfejlesztés, meg kell értenie.
Amíg ez nem történik meg, arra leszel kárhoztatva, hogy soha ne fejezd be a játékot, amit elkezdtél. Elenyészõen kicsit az olyanok száma, akik nem buknak bele egy nagyobb munkába úgy, hogy elõtte nem egyszerûbbekkel kezdték, és még nekik is sokkal tovább tartott mintha az elõbbi módszert követték volna.

Jó, akkor mivel kezdjem?
A tetrisszel.
Ez egy kiváló téma ahhoz, hogy elindulj a „játékfejlesztõvé válás göcsörtös ösvényén”. Hogy miért? A tetrisz tartalmaz minden olyan elemet, ami minden játék alapjául szolgál, és viszonylag kis idõráfordítással el lehet készíteni. Ráadásul még grafikusmûvésznek sem kell lenned ahhoz, hogy a munkád jól nézzen ki. Ha képes vagy arra, hogy egy tetszõleges rajzprogrammal rajzolj egy négyzetet, akkor az eredmény nem csak szórakoztató és lebilincselõ lesz, hanem ugyanolyan minõségû, mint bármelyik más, "kommersz" tetrisz. A négyzet az négyzet és pont.
Ebben az egyszerû kis programban megtalálható az összes olyan rész, ami minden játékban közös. Nevezetesen: vagy benne játékciklus ([main] game loop), kezeli a bemenetet, a kimenetet (rajzol a képernyõre ) és ellenõrzi hogy vége van-e a játéknak. Bármely játékprogram, amit a késõbbiekben készíteni fogsz, ugyanezeket fogja tenni, tehát megérteni és megvalósítani nagyon fontos. Miután ezt elsõ alkalommal már átláttad, lesz valami fogalmad arról, hogy miként fog ez menni és mennyi ideig fog tartani más esetekben.
És végül egy szerzõi jogi figyelmeztetés: ha készítesz egy tetrisz-klónt, nem hívhatod úgy, hogy "Tetris", mert ez a szó a "Tetris Company" védjegye. De magát a játék típusát nem védi semmiféle törvény. (További információ: http://www.uspto.gov)

A Második Lépés
Miután a tetriszedet véglegesen és abszolúte befejezted, jöhet a következõ kihívás: a Breakout.
Ez a játék hasonlít az elõzõre, de némileg fejlettebb ütközésfigyelés (collision detection) és fizikai rendszer szükségeltetik hozzá. Itt már vannak pályák is, tehát érdemes figyelmet fordítani a tárolásukra. Ez egy újabb dolog, ami a nagyobb programokban megtalálható: az erõforrások ([resource], pl. pályák, karakterek, képek stb.) betöltése és mentése.
A labdákon túl…
A következõ program, a Pac-Man, bátran tekinthetõ egy evolúciós lépésnek a játékfejlesztésben, ugyanis egy újabb elem kerül bele: a Gondolkodó Gép, a mesterséges intelligencia (MI, [artifical intelligence, AI]).
Egy rövid áttekintés az eredeti Pac-Man MI-jérõl, ha eddig nem tudtad volna: a támadó a lehetõ legrövidebb úton próbálta meg követni a játékost, távolságtartásra kényszerítve azt. A fogó arra a legközelebbi csomópontra haladt, amin át kellett mennie a támadó elõl menekülõ játékosnak. A kettes számú fogó középen haladva az alagutakat õrizte, a negyedik szellem pedig a megmaradt pontok környékén kószált hogy ott kapjon el.
Ez a fajta, elosztott MI elég fejlett volt a maga korában, és jó kihívást jelenthet az elsõ Pac-Man-ed elkészítéséhez. Ennél a programnál a pálya bonyolultabbá válik, valamint érdemes lehet némi hangkezelést is belerakni (végül is, milyen lenne a Pac-Man valami "wakka-wakka" hang nélkül?).
Végül, az utolsó játék, amit megemlítek, a Mario, mint az "oldalgörgetõk" (side scroller) egyik tipikus példáját, ahol többszintû pályán mozoghatsz, ugrálhatsz, lõheted az ellenfelet, ahol az ellenféllel kölcsönösen hattok egymásra. Ebben a játékban már többféle képet is föl kell használnod. Ha nem akarod ezeket magad megrajzolni, kereshetsz ingyenes gyûjteményeket az Interneten (pl. a GPL-es Sprite Lib: http://www.arifeldman.com/games/spritelib.html ).
Itt már olyan pályát kell készítened, amit minimum kettõ, de inkább négy irányba lehet görgetni, fejlettebb fizikai rendszerre (ugrás, lövés) és MI-re lesz szükséged. Sokkal több ellenséggel kell majd küzdeni, és mindegyiknek tárolni kell az állapotát (él/meghalt, aktív/inaktív).
Valószínûleg ez lesz az a pont, ahol készítened kell egy pályaszerkesztõt is, aminek a következõ dolgokat kell tudnia: háttérelemek (cserép, tile) kiválasztása, elhelyezése, törlése; a pályán való végiggörgetés, ellenség elhelyezése, mentés, betöltés stb.. Ha ezek valamelyikét kihagyod, a pálya megtervezéséért felelõs ember nagyon bánni fogja… (nem túl kellemes feladat úgy pályát szerkeszteni, hogy egy látszólag minden logikát nélkülözõ, számokból és vesszõkbõl álló fileban kézzel kell elhelyezni az adatokat.). A pályák tervezése közben érdemes rendszeresen menteni, mert így könnyebb visszatérni a régebbi verzióhoz.
És ne feledd, ennek a játéknak már lehet egy saját története is, ami a pályák között végigvezet, és ami értelmet ad az ellenség legyõzéséhez. A játékos itt már megérdemel egy kis "dicsõítést" a játék végén - egyszerûen kiírni a "Nyertél!" szót, amikor a játékos esetleg hosszú órákat töltött el azzal, hogy legyõzze a gépet, ez nem túl humánus eljárás…

Lássuk a medvét!
Befejezettnek nem akkor nevezünk egy játékot, amikor az már játszható, hanem akkor, amikor már van benne nyitó és záró képernyõ, menü, beállítási lehetõségek, toplista, használati utasítás, stb.
Van egy nagy különbség a "pusztán játszható" és a "befejezett" játék között. Ez a különbség egy pár naptól két hétig terjedõ idõszak, ami alatt az utolsó simításokat is elvégzed a programon. Hogy ez pontosan mennyi idõdet veszi igénybe, függ a tapasztalatodtól és a megvalósítandó részletek számától is. A Tetris-tõl a Mario-ig haladva ez az idõszak fokozatosan nõ.
Ha már tényleg befejezted a játékot, fontos, hogy ezt mások is lássák. Fontos, mert elismerés és bíztatás nélkül a legnagyobb lelkesedés is elszáll. De ez nem könnyû, mert ahogy a puding próbája az evés, és nem az, amikor a szakács kóstolgatja, a játékok próbája az, amikor egy "elõítéletek nélküli", új játékos játszik vele. A programozó hajlamos olyan triviális hibákon (mind tervezési mind programozási) átsiklani, amit egy elfogulatlan szem azonnal észrevesz.
Komikus jelenet, de talán már mindenki tapasztalta, aki készített már másoknak (is) programot, amikor a programozó ott áll az elsõ felhasználója mögött, egyik lábáról a másikra áll, magyarázkodik, ha egy ismert hiba kerül elõ, és nagy szemeket mereszt, ha egy eddig nem látott bugot lát… És azután várja a kritikát. Persze ebbõl a szempontból a laikus felhasználó a legkegyetlenebb, más programozók, fõleg a játékfejlesztõk, megbocsátóbbak.

Ezek béna játékok!
OK, lehet, hogy nem egy UT2004 vagy Quake III, amit itt bemutattam, de végül is jól mutatják a játékprogramok alapjait. Egy lövöldözõs játék tulajdonképpen ugyanaz marad ha "kicseréled" a 3D felületet 2D felülnézetre… Hülyeség, ha készítesz egy pontosan ugyanolyan játékot, mint a Quake, a 3D grafikát leszámítva? Persze ez még így, "lecsupaszítva" sem kezdõknek való feladat, mert túl sok részletet kell benne kidolgozni. Ezért azt ajánlom, hogy azt az utat kövesd, amit fent leírtam. (Amikor úszni tanultál, akkor sem rögtön a mélyvízbe ugrottál fejest, nem?)
De mielõtt akármilyen játék fejlesztésébe kezdesz, egyvalamit tisztáznod kell magadban: játékot akarsz fejleszteni, vagy csak le akarod utánozni a Quake-ben alkalmazott technológiát? Ha csak az utóbbi érdekel, hagyd el a "körítést" és foglalkozz csak a grafikával. Ha az elõbbi, akkor pedig ne arra koncentrálj (egyelõre), hogy a te játékod legyen a következõ best-seller, hanem arra, hogy a szükséges képességeket kifejleszd magadban.

Légy büszke a játékaidra!
Egy játék, még egy egyszerû játék elkészítése is hosszú folyamat, fõleg a kezdõknek. De ha egyszer befejezted, gondolj arra, hogy ezzel magasabbra emelted magadat, mint azok, akik ugyan váltig hangoztatják, hogy el tudnák készíteni öt perc alatt, de még soha nem tették meg. Ha nem játszhatsz vele, akkor az nem játék.
Ne gondolj arra, hogy "nem rossz, de a … hoz képest egy nagy nulla". Lehet hogy az, de egyedül, kezdõként, a szabadidõdben nem tudod ugyanazt nyújtani, mint több éves tapasztalattal rendelkezõ, és sok millió dolláros költségvetéssel dolgozó nagy játékfejlesztõ cégek teljes munkaidõben.

Itt a játék, hol a Ferrari? (avagy áttekintés a játékfejlesztés sötét oldalára)
Hát, egy játék, két játék, öt játék valószínûleg nem fogja kitenni az árát. A tavalyi évben 3500 PC-s játékot adtak ki, ezek közül alig néhány lett igazi kasszasiker. Ezek többsége nem "egyedülálló" cégek munkája, hanem olyanoké, akiket nagy kiadók pénzeltek, és a reklámkampányra is hatalmas összegeket költöttek. Ebbe a világba nem lehetetlen belépni, de minõségi munka és jó üzleti érzék szükségeltetik hozzá. Ha jó játékokat készítetek, a kiadók meg fognak bennetek bízni, ezért elõbb bizonyítanotok kell. Kisebb játékokhoz, alacsony költségvetéssel, pedig kiadót is könnyebb találni. Ennek további elõnye, hogy nem kell évekig ugyanazzal foglalkozni, és ha valami nem megy jól, nem buksz olyan nagyot.
Csak döntsd el, hogy mi a célod a játékfejlesztéssel, és koncentrálj arra, hogy ezt elérd.
A szerzõ: Geoff Howland, a Lupin Games tulajdonosa, programozója és projekt menedzsere egy személyben. Egy év alatt két játékot is kiadtak. Az üzlet mellett a játékfejlesztõ közösség aktív tagja, számos játéktervezéssel és üzleti kérdésekkel foglalkozó cikk szerzõje. Ha megjegyzésed van a cikkel kapcsolatban: ghowland [kukac] lupingames [pont] com


Hogyan kell játékot készíteni?
Szerzõ: Geoff Howland
Eredeti cím: How Do I Make Games?
Eredeti cikk: http://www.gamedev.net/reference/design/features/makegames/
Forrás: http://www.gamedev.net/

Értékelés: 9.66

Új hozzászólás
Rauko          2008.03.01 08:26
Hát ez lelkesítő szöveg volt, sok hasznos tanáccsal.
Nekem is tetszett.
Ati500          2006.07.28 07:26
Ez tetszett!
Megyek is Tetrist meg Breakoutot írni!