Mit kell tudni egy játékprogramozónak?





"hogy ül le pl 1 ember játékot készíteni"
szorozd be azt az egy embert még 100-al
kb ennyien dolgoznak egy mamut játékfejlesztő cégnél egy fejlesztői divízióban. Bennvan ebben a 100 főben minden: hangmérnökök(effektek, zeneszerzők), grafikusok(fényképész, photoshop, maya), assembly programozók(akik a játék magját csinálják), c++_programozók(modulfejlesztők), elsővonalbeli játékTESZTelők, Scenárió_történetírók, Menedzserek, producerek, logisztikusok, marketingesek, nyelvi ellenőrök, kávéfőző_titkárnők...
na, ez a fejlesztői csapat
szóval minden, ami egy piacképes játék fejlesztéséhez szükséges.
mert miért fejlesztenek játékot? a BEVÉTEL miatt.
sajnos ez kicsiben nem megy
egyedül hogy te mit fogsz kezdeni hobbi programozócskaként, fogalmam sincs, mert mind a 100 ember feladatát neked kellene ellátnod a fejlesztéshez.
Na jó, a vállalati ügyekhez ha nem is, még mindig 40 ember képességével kell rendelkezned, ugyanis közvetlenül ők fejlesztik a játékot.
és persze ne felejtsük el, hogy ők belátható határidőn belül el is készítik a játékot, nem úgy mint a hobbi programozó, aki sosem fejezi be.










nem akarom letörni a lelkesedésedet, de ez nem olyan dolog szerintem, amit felnőtt fejjel el lehet kezdeni. olyan überkockák dolgoznak az ilyen profi cégeknél, akik már tizenéves korukban programoztak.
ha mégis nagyon-nagyon akarsz ezzel foglalkozni, akkor érdemes C, illetve C++ nyelven megtanulni programozni, az assembly-t is megnézni (mintegy érdekességképpen). ezeket akkor is ajánlom, ha nem ez a része érdekel leginkább, mert sokkal könnyebb új nyelveket megtanulni, ha már ismersz egyet.





Azért nem csak AAA játékot léteznek übergrafikával, $100M-os költségvetéssel. Ellenpélda a World of Goo, amit 2 srác fejlesztett és betegre keresték magukat. Ilyen még a Plants vs. Zombies vagy az Angry Birds. Ezekben az a közös, hogy egy nagyon jó ötletre épülnek és nagyon igényesen vannak kivitelezve.
Még valamit nem írtak: a "hagyományos" 3D programozónak nagyon kell vágnia a matematikát is.





Na most hogy ténylegesen kapj is választ a kérdésedre, ne csak az oltás meg az okoskodás meg a bennfenntesség menjen: egy játék kifejlesztéséhez általában szükség van valamiféle grafikára, ha ez 2D akkor viszonylag egyszerű a dolog, valahogy előállítasz képeket, esetleg többrétegűen, de mindenesetre ez egyszerű és gyors. Ha 3D akkor ott már komolyabb matektudás sem árt meg jó térlátás, de erre is vannak nagyon jó könyvtárak amikkel gyakorlatilag pofonegyszerű egyszerűbb 3D-s grafikai motorokat írni, persze nem lesz annyira hatékony és nem feltétlenül lesz egyszerű módosítani arra, amit te akarsz, hogy tudjon.
Aztán megint általában kell neki valamiféle fizika. Ha csak annyi is, mint a Marióban, de általában kell. Ütközések vizsgálata.
Ha nem egy gépes multiplayert akarsz bele akkor kell hálózatkezelés is.
Aztán ha akarsz bele gépi ellenfelet, akkor valamennyire bele kell menni az MI programozásba is.
Az sem árt, ha a többszálú programozással tisztában vagy, illetve ami a legfontosabb: ERGONÓMIA. Tudd, hogy hogy lesz kényelmes és jól használható a programod. Ez minden program esetében fontos, de játékoknál szinte életbevágó a kényelmes és intuitív kezelhetőség.





Jaj ezt annyira bírom amikor egy ilyen kérdés felmerül és azonnal a sok szaki neki esik a kérdezőnek hogy 100 ember,matek,modellezés,animáció,hang effekt meg az anyósom.
Nem mondom hogy nincs igazatok,mindenben igazatok van. Csak egy dolgot felejtetek el,hogy lehet kész engine-t is használni ami jelentősen meg könnyítheti a fejlesztést.
Ott van például a Leadwerks Engine,be épített fizikai motorral és Lua nyelven lehet scriptelni.Rengeteg funkció előre készen áll,csak használnunk kell.
Például fizika:
golyotest=CreateBodySphere(1) --golyó test létrehozás
golyotest:SetPosition(Vec3(x,y,z)) --pozíciója a 3D térben
golyotest:SetMass(10) --a golyó súlya
golyotest:SetMassCenter(Vec3(x,y,z)) --golyó súlyközéppontja
SetWorldGravity(Vec3(x,-y,z)) --gravitáció beállítása
És voala,van egy golyó testem amire hat a gravitáció és golyóként viselkedik.Mind ezt 0 matekkal alkottam meg kb 1 perc alatt.Esetleg mozogjon is ha le nyomok egy billentyűt?
if KeyDown(KEY_W)==1 then --ha le nyomom a W-t
golyotest:Move(Vec3(x,y,z)) --a golyótest mozogjon előre
elseif KeyDown(KEY_D)==1 then --ha le nyomom a D-t
golyotest:Move(Vec3(x,y,-z)) --a golyó mozogjon hátra
end
Komolyan mondom le izadtam..Szóval mit is látunk amit kb másfél percben alkottam?Van egy golyó testünk amire hat a gravitáció,van súlya,és a gravitáció erejének a súlya nagyságának és a súlyközéppontnak megfelelően golyóként viselkedik.És ha le nyomom a W-t,akkor előre mozog,ha a D-t akkor hátra.És mind ezt 0 matekkal másfél percben...Komolyan mondom mindgyárt szólok még 50 embernek mert ezt egyedül nem bíírom.Képtelenség.
Egy szó mint 100.Ezt a játékot például 5 ember alkotta egy kész engine-el:
Szerintem ahhoz képest hogy egy garázs fejlesztés és csak 5 ember csinálta nem 50,minden meg van benne ami kell.
Itt egy videó is róla:
www.youtube.com/watch?v=2B3Uanfsq9g
Szóval a kérdezőnek a válaszom az hogy egy játék fejlesztéséhez röviden szükséged van egy:
-grafikus motorra
-játék motorra
-fizikai motorra
Ám ezt nem feltétlenül kell neked vért izzadva meg alkotnod,használhatsz kész motorokat amik rendkívül meg könnyítik a dolgod.Persze egyedül még így is nehézkes eredményt felmutatni,de az alapokat elsajátítani úgy sem csapatban fogod egy játékon dolgozva,hanem egyedül kisérletezgetve...
Ás ha a jövőben úgy döntesz hogy saját engine-t szeretnél a játékodnak vagy esetleg a csapatod játékának,az már valóban komoly tészta de például a Leadwerks Egnine-t is egyetlen egy ember fejleszti nevezetesen Josh Klint.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!