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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2190
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Játékfejlesztés a jövõm? - interjúkkal dúsítva (bõvített változat) 2005.11.26 02:27


Mostanában elég sok embert érdekel itt az oldalon (www.jatekfejlesztes.hu) a téma, hogy vajon hogy lehet betörni egy hobby játékfejlesztõnek a profik világába; azaz, hogy lesz valaki hobbyprogramozóból egy hivatásos csapat tagja. Ezért, és mert engem se hagy hidegen a téma, „magamra vállaltam”, hogy kicsit utánajárok a dolgoknak..
De mivel ez tipikusan egy olyan téma, amirõl nem lehet tutorialt írni; így a neten nem is sok ezzel kapcsolatos leírást találni; nekiálltam összeállítani egy kérdéssort és azt szép szorgosan a legtöbb magyar játékfejlesztõ team-hez eljuttatni. Ennek eredménye lett ez a kis írás, ami így 2005/06 felé próbálja kicsit tisztítani a ködöt, tanácsokat adni, vagy csak egy érdekes cikként gyarapítani a jf.hu cikkgyûjteményét.

Még itt az elején szeretném megköszönni a nyilatkozóknak a hozzájárulást és a gyors válaszokat, mert itt most nagyon igaz: nélkületek nem ment volna /Lista a cikk végén, közepén, azaz az összegzés után /

A cikk hossza pedig ne tévesszen meg senkit, maga az összefoglaló nem olyan hosszú, csak mivel nem vagyok profi se a témában, se cikkírás terén, megpróbálom magam okosabbnak beállítani, és hosszú, végnélküli összetett mondtatokban írni, mint például ez is Kicsit komolyabban: maga a cikk nem olyan hosszú, de a teljesség igénye kedvéért minden egyes kapott választ is leírok a cikk végén, kérdésenként kigyûjtve (de errõl bõvebben ott).



Kis cikktartalom...
... csak hogy mindenki tudja, mire számítson

Sokat gondolkoztam azon, hogy is nézzen ki a cikk, végül arra jutottam, úgy a legjobb, ha bevezetõ után összefoglalom a leglényegesebb kérdésekre kapott válaszokat, és megpróbálok kitérni kicsit a miértekre is. Ez persze valószínûleg nem fog teljesmértékben sikerülni, lesz egy-két téma, ahol felmerülnek még kérdések az olvasás után is, de ezekre megpróbálok e-mailben, vagy itt, a Cikkhozzászóló részben (a lap alján) válaszolni.

Vágjunk is bele...

Bevezetõ kérdések:
I. Elsõ fontosabb témakör, melyet a kérdések érintettek a Delphi, és az OpenGL fontossága/ elhanyagolhatósága. Elég egyértelmûek voltak a válaszok: manapság a Delphi már nem játszik, inkább a C# ami használatban van; OpenGL maximum 1-2 referenciában jöhet jól, de mindenhol Direct-X a preferált API, így mindenkinek ajánlott idõvel áttérni, még ha elõször mással is kezdett. Hiába, ilyen ez a szakma...

II. Assembly: ez egy olyan nyelv, amit ma már nemigen használ senki se, de mégis jól jöhet. Igaz, nem elvárás egyik helyen se, de aki ért hozzá, azt a legtöbb helyen nagy tisztelet övezi, mert ebbõl azért leszûrõdik az is, hogy emberünk érteget az egész gépezet mûködéséhez is, átlátja mi-miért-hogyan történik. Végignéztem az összes nagyobb játékfejlesztõcég állásajánlatát, és összesen 1 helyen találtam olyat, hogy elõnyt jelent egyáltalán Assembly használata; ebbõl gondolom levonhatóak a következtetések.

III. C++ -on kívül használt nyelvekrõl az jött le a válaszokból, hogy a Delphi-nek már befellegzett, helyét a C# váltotta fel az editorok írásában. Így aki tool-okat vagy editor-okat szeretne írni (vagy csak több esélyt szeretne az áhított csapatba való bekerüléshez), annak ajánlott a C# és a .Net legalább alapszintû ismerete, haználata.

Fõ kérdések, azaz amikért az egész cikk készült:
IV. Hogy melyik iskolák számítanak, és mennyire? Természetesen az ELTE programozói matematikus diploma ami a legtöbbet jelenti, és a Mûszaki Egyetem informatikai/ fizika szaka is elég elismert. De itt jön a cikkben egy olyan rész, ami még engem is meglepett. Azt tudtam, hogy ebben a szakmában fõleg a referenciák, felmutatott munkák minõsége dominál egy jelentkezésnél, nade hogy ennyire...
Igazából szerintem egy e-mail –ben sem kaptam olyan választ, hogy az elvégzett iskola olyan sokat számítana. Ha bemegyünk, és nagyképûen lobogtatjuk a papírunkat, hogy mi ilyen maier gyerekek vagyunk, és nem tudunk felmutatni semmi értékelhetõ, elkészült munkát, akkor nagyvalószínûséggel az utánunk következõ középiskolai végzettséggel rendelkezõ srác kapja meg a munkát, mert õ nincs oda annyira magától, és mert már 3 éve programozik Visual C++ -ban, aminek eredményeképpen több elkészült jóminõségû játékot is fel tud mutatni. Mi pedig csak a nehezen megszerzett papírokat, amikre annyira büszkék vagyunk, semmi tapasztalattal...
Valahogy így összegezném a kapott válaszokat. Persze ez egy elég elrugaszkodott példa, de azthiszem jól mutatja, hogy mennyivel többet ér a tapasztalat és a kész munkák, mint a diploma és a nullát alulról súroló gyakorlat kombinációja. Természetesen ez nem azt jelenti, hogy nem fontosak az elvégzett tanulmányok, mert ha 2 olyan ember közül kell választani, akik közel egyforma jártassággal rendelkeznek, akkor valószínûleg ez is befolyásolja a döntéshozókat, de messze nincs akkora jelentõsége, mint a mellékelendõ referenciáknak. Kis kiegészítésként: még olyan álláshírdetést is találtam (Clevers honlapján), ahol alapkövetelmény a 3+ év fejlesztõi tapasztalat. Ez is jól példázza ennek a jelentõsségét.
Kaptam egy olyan tanácsot is, hogy mielött elmennék egy ilyen meghallgatásra, nézzek körül az adott cég honlapján, tudakozódjak RÓLUK és a JÁTÉKAIKRÓL, lehetõleg játszak is a letölthetõ demókkal, és ne folytsam vissza az építõ jellegû észrevételeimet beszélgetés közben.

Meg is néztem a honlapokat (merthát ugyebár idõtúltengéstõl szenvedek, meg így talán kevesebb hülyeséget hordok itt össze , és kis kitérõként/ kiegészítésképpen leírnám a leggyakrabban megkövetelt tudások és képességek legfontosabbjait. Tapasztalat volt, hogy tényleg, 1 kivételével az összes csapat keres programozót, így azért az a megállapítás, hogy lehetetlen bekerülni egy komolyabb team-be eléggé csak téves. Mindegy, vissza az elvárásokhoz, ezt csak úgy megemlítettem.
Kivétel nélkül mindenhol szájbarágósan megtalálható, hogy jól kell tudni egyedül és csapatban is dolgozni. Namármost a csapatban való munka nem olyan egyszerû, aki már próbálta, az biztos tudja. Így egy kisebb garázsprojectben való résztvétel mindenképp ajánlott, már csak a csapat-hangulat megszokása miatt is.
Van egy-két elég egyértelmû feltétel is, mint például a C++ nyelv ismerete, amit sok helyen alapból Visual C++ -ként írnak, így ennek jelentõsége is belátható. Hiába, azért a Dev-Cpp mégse ugyan az...
A hibakeresést/ problémamegoldást is láttam feltüntetve, de ez azthiszem elég alapvetõ, ha valaki egy komolyabb, összetettebb projecten dolgozik. Szintén elõny, ha valaki garázsfejlesztés közben jön rá erre és nem „élesben”.
Az angol nyelv is elég alapvetõ követelmény, de ezt a leírások alapján mindenhol csak kb. középfok szinten kell tudni; azaz megérteni a leírt dolgokat, és képesnek lenni angolul dokumentálni. Azthiszem, aki játékfejlesztésre adja a fejét, az idõvel úgyis rászorul egy ilyen szintû angoltudás megszerzésére, de gyakorlása nem jelent hátrányt...

Ehhez a ponthoz kapcsolnám még kiegészítésképpen azt is, hogy sok helyen nem is csak tudás alapján döntenek, hanem lelkesedés és világszemlélet alapján, azaz hogy milyen a kommunikációs képességed, mennyire tudsz majd csapatban dolgozni és hogy 1 pár hónap/ fél év múlva hol fogsz tartani. Ezeket a szempontokat is sokhelyen elég rendesen nézik, így aki lelkesedés nélkül vág bele az egészbe, azt valószínûleg elég hamar ki is szûrik. Erre is csak azt tudom mondani: ez egy ilyen szakma, itt szeretni kell amit csinálsz!

V. Egybõl innen folytatnám is, kicsit mellékvizen evezve, de csapatmunkához némileg kapcsolódva: az OOP jelentõségével. Ez is egy kicsit meglepõ pont volt, de valahol azért számítottam rá: 1 kivételével az összes helyen kötelezõ az OOP helyes értelmezése és használata. Sok helyen kérik azt is, hogy referenciákhoz forráskódot is mellékelj, és ha túl ronda, akkor elég hamar közlik veled, hogy nem te vagy a megfelelõ ember a CSAPATBA. Ez érthetõ is, mert biztos sokakat kértek már meg „összegányolt” kód átnézésére, vagy neadjisten javítására, ami nem tartozik éppen a legörömtelibb dolgok toplisájának elsõ hejeihez. Egymás kódjának átnézése/ javítása egy csapatban elég sûrûn megtörténik, így nem engedhetjük meg magunknak, hogy ronda, nehezen értékelhetõ kódot adjunk ki a kezeink közül.

Kiegészítõ kérdések:
VI. Azthiszem végigvettük a nehezebben emészthetõ dolgokkal, így most lazításképpen következzen egy-két a témához lazábban kapcsolódó kérdés. Engem személy szerint nagyon érdekelt, hogy a fejlesztõcsapat munkán kívül mit szokott közösen csinálni. Erre meg is kaptam a választ: a legkedveltebb tevékenység a paintball, de a sorrendre való tekintet nélkül népszerûek még ezek a szabadidõs tevékenységek: mozi, gokart, billiárd, foci. Ebbõl is jól látszik, hogy a csapatmunka közben azért elég komoly kötõdések/ barátságok alakulnak ki, ami még otthonosabbá teszi az egész fejlesztés menetét. Ez nagyon elõnyös is, így sok helyen szervez maga a cég is hasonló programokat.

VII. A fórumon külön kérés volt, hogy a fizetésrõl kérdezõsködjek kicsit, így ezt is megtettem. Az „eredmény” itt is némileg meglepõ. Konkrét összeget senki se mondott, ez üzleti titok, de még csak körülbelüli összeget se tudtam kiszedni senkibõl. Amire jutottam: átlagosan 3 hónap körül van a beszokási idõ, ezalatt a teljes fizetés kb. 80%-át kapja az újonc.
Maga a fizetés összege nagyon változó: függ az egyén tudásától, cégnél töltött idejétõl, munkakörétõl; szóval elég sok dologtól. És ezen felül vannak plussz jutalmazások is, amik még tovább emelik a fizetések közötti diferenciát. Így akár 2-szeres, 3-szoros különbségek is lehetnek. Nem is törtem magam tovább, ettõl a kérdéstõl tényleg mindenki elzárkózott, így foglalkoztam inkább a fontosabbakkal.

Tanácsok:
VIII. Legvégül egy-két tanács. Ha nagyon be szeretnél kerülni egy csapatba, akkor nézd meg a honlapot és keress vmi kisebb munkát. Ezalatt kb. annyit értek, hogy ha nem érzed magad elég tapasztaltnak egy engine írásához, akkor próbálkozz pl. pálya scripteléssel. Ehhez nem kell annyi programozói tudás, igaz nem is fizetik meg annyira, de mégis bentvagy a csapatban, ott már könnyebb megvillanni, más területeken is érvényesülni.
Ezen felül pedig, ha beadod a jelentkezésed, akkor se keseredj el, ha nem kapsz egybõl meghívást, mert lehet, hogy most épp nem olyat keresnek, akinek a tudása megegyezik a tiéddel, de ez nem jelenti azt, hogy a késõbbiekben se fognak arra a munkakörre embert keresni! Kitartás és bizakodás. Addig pedig gyakorlás, gyakorlás...


Itt a vége...

Körülbelül ennyi lett volna az összefoglaló, azaz maga a „cikk”. Remélem sikerült megválaszolnom a lehetõ legtöbb kérdést, és egy olvasható, élvezetes cikként összegezni azokat. Nem kell megrémülni, azért ha valaki érti a dolgát, és szereti is csinálni, akkor elég nagy esélye van bekerülni egy komolyabb csapatba. Ha nem is egybõl, de idõvel biztosan.

Ha mégis maradt volna még kérdése valakinek, az írjon a shadevampire@gmail.com e-mailcímre, megígérem, hogy megpróbálok utánajárni.
Akit pedig a konkrét válaszok érdekelnek, azaz amiket a fejlesztõcsapatok küldtek, azok megtalálják az összes kérdést-választ egy kicsit lejjebb. Választástól függõen további jó olvasást, vagy netezést.




A cikk interview része:
Azaz a kapott válaszok kérdésenkénti bontásban. Ezt úgy valósítottam meg, hogy minen egyes kérdés után más-más színnel beszúrtam az arra kapott válaszokat minden csapattól. Mindent meghagytam az eredeti formájában, nem javítottam bele egy válaszba se, mert nem éreztem hozzá jogot; ezek ígyis épp elég kifejezõek és érthetõek (elvégre én is megértettem...

A válaszokért köszönet illeti:

  • Black Hole Entertainment [Zsuffa István]
  • Stormregion [Nádasi 'Lala' Lajos]
  • Invictus [Diviánszky Ákos]
  • Mithis [Motyán Zoltán (Motyó) és Kovács László (Chris)] – nekik külön köszönet, mert mint az lejjebb látható is lesz, naggyából megírták helyettem a cikket. De tényleg, még összefoglalást is „mellékeltek” Szóval nekik szeretném megköszönni mégegyszer, hogy ennyire megkönnyítették a dolgom, nagyon sokat számított.
  • Digital Reality [Air és Karácsonyi Gergely (Garry)] (A cikk eme bõvített változatában az Õ válaszaikat is olvashatjátok. - HG)

-> 1/1 Kis bemutatkozás, hogy tudjuk ki tisztelt meg minket a válaszaival.

Nádasi 'Lala' Lajos, a Stormregion Kft. vezetõ programozója vagyok, 4 és fél éve foglalkozom hivatásosan játékprogramozással.
Eddig a következõ játékokon dolgoztam: S.W.I.N.E, Panzers Phase 1 - 2, Rush for Berlin


Diviánszky Ákos, az Invictus egyik alapitoja vagyok, jelenleg programozo a csapatnal.
Annak idejen a C64-el kezdtem, emlekszem, kiszivargott hogy mi lesz a karacsonyi ajandek, ugyhogy vettem jo elore egy Basic oktato konyvet, es igy aztan ahogy befutott a gep - termeszetesen azonnal ki kellett probalni - pillanatok alatt elkeszult es indult az elso kis programocska.
Akkor 15 eves voltam, ezt a kort mostanra sikerult megduplazni. Koromra valo tekintettel is kerlek, nezzetek el az ekezetek hianyat


Motyán Zoltán (Motyó), leginkább engine programozó vagyok a Mithisnél, valamint én voltam a Nexus: The Jupiter Incident lead codere.

Air: Air, lead designer, 1,5 éve dolgozom a szakmában

Garry: Karácsonyi Gergely, Vezetõ teszter, War on Terror projekt.
Megpróbálom nem annyira programozói, hanem inkább teszteri szemszögbõl megválaszolni a kérdéseket, hiszen nincs is annyira messze a két szakterület, mint hinnénk...



-> 1/2 Mikor és hogyan kezdted (prog. nyelv, és milyen indok miatt)?

Mint sok más embernek, nekem is a Zx Spectrum Basic-el kezdõdött minden még általános iskolában. A TV Basic címû tévémûsor és az akkori játékok nagy hatással volt rám.

A C64-es szinte kizarolag jatszasrol szolt, es sokaig az azt felvalto Amiga 500 is. Ez utobbinal azonban egyre tobbet merult fel bennem, mit, hogyan kellett volna mashogy csinalni egy-egy jatekban, hogy az jobb lehessen. Egyre tobbet tudtam meg a dolgok technikai hattererol is, mi hogyan mukodik, es a Basic utan megtanultam az assembly nyelvet (ami a Motorola 68xxx procikon egy nagyon szep nyelv). Vegul odaig jutottam, hogy kesziteni kellene mar egy jatekot; a feladatok kozul azt valasztottam, amihez legjobban kedvem volt: a programozast. Az elso probalkozassal voltak gondok, de pont ezutan jott az Amiga 1200 uj lehetosegekkel, es azon 4 ev alatt elkeszult az elso komoly jatek ("onEscapee"). Jol sikerult, de idokozben az Amiga platform csaknem megszunt letezni, valtani kellett.

A 80-as években kezdtem, már középiskolában is programozást tanultam, majd pedig az ELTE programozó matematikus szakon gyötörtem magam, úgyhogy elég lineárisan vezetett az utam ehhez a szakmához.
Akkoriban még nem volt ilyen súlyos PC-dominancia a számítástechnikában, a hardverek elképesztõ egzotikus sokféleségben burjánzottak, a programozási nyelvek nemkülönben. Úgyhogy szinte faltam a mindenféle nyelveket puszta élvezetbõl, olyan mára kihalt példányokkal találkoztam, mint FORTRAN, COBOL, PL/I, ADA, MODULA2, BASIC (az eredeti, nem a Visual ) Ettõl függetlenül az elsõ komolyabb munkámat már C-ben prezentáltam (a C++ még nem terjedt el, mert túl erõforrásigenyes volt, leginkább külföldi számtech magazinok hasábjain találkozott vele az ember....)


Air: Ált. 8. ban kezdtem, mivel érdekelt, hogy hogyan lehetne játékot fejleszteni. Akkoriban még basic on próbálgattam kisebb programokat írni


-> 1/3 Mikor jöttél rá, hogy neked játékokkal kell foglalkoznod, és szintén, milyen tényezõk befolyásoltak?

Mivel imádom a számítógépes játékokat és informatikai diplomám is volt, jó ötletnek tûnt kifejezetten ilyen irányú tudást megszerezni. Gondoltam ha a hobbym a munkám is egyben az biztos jó dolog lehet...

Nem jöttem rá Véletlenül csöppentem bele '99-ben, egy barátom zenei munkákat végzett egy akkor készülõ, alapvetõen szövegesnek szánt, render movie-kkal tûzdelt stratégiai ûrjátékhoz. Felmerült, hogy azért csak kellene valamilyen realtime 3D is bizonyos részekhez, és én, mint elérhetõ programozó kerültem szóba. Semmit nem tudtam a témáról, hallottam már 3D videokártyákról, de fogalmam sem volt, hogy ezek hova és meddig jók. Nade persze jócskán felkeltette az érdeklõdésemet a dolog, úgyhogy belecsaptam, és menetközben szépen magamra szedtem a szükséges tudásokat. Elkészült egy naprendszer-térkép, aztán de-jó-lenne alapon egy kezdetleges ûrcsata-engine is kiesett a gépbõl, úgyhogy szép lassan a "fõleg szöveges" koncepció átcsúszott "fõleg látványos"-ba.
Igazából ekkor "jöttem rá", hogy ezzel kell foglalkoznom. Elõzõ munkáim érdektelenek és gyötrelmesek voltak, csak a pénzkeresetet szolgálták, sosem tudtam teljes odafigyeléssel csinálni õket. Ha igazán alkotni akartam, akkor azt hobbiként otthon kellett megvalósítanom. Ez egycsapásra megváltozott a játékprogramozással, a hobbi és a munka teljes átfedésbe került, már nincs szükségem többé otthoni partizán-kreatívkodásra.
Megjegyzendõ, hogy az említett kezdeti ûrjátékból vált hosszú évek hányattatásai és metamorfózisai után a Nexus, az úriember pedig, aki eredetileg felkért a munkára, most a Mithis ügyvezetõ-igazgatója.
Nem elijesztésképpen, de azt is tudnotok kell, hogy a "menetközben magamra szedtem a szükséges tudásokat" a mai napig is tart. Eltelt hat év, ezalatt rengeteget tanultam, de ez egy végtelen mókuskerék, és nemcsak az új technológiák folyamatos megjelenése miatt, hanem mert már a 3D kártyák kora elõtt is annyi tudományt halmoztak fel az okosok, hogy sosem juthatsz a végére.


Air: Webfejlesztõként weboldalak motorjait programoztam, majd úgy éreztem, hogy ennél talán valamivel kreatívabb, játékokkal kapcsolatos munkát végezzek, mivel akkoriban is szerettem játszani.


-> 1/4 Milyen prog. nyelvekhez értesz? Milyen programok használatához? (csak a legfontosabbakat)

Az utóbbi 6 évben már csak C++ban dolgoztam.

Ekozben viszont belekezdtem az egyetembe, ahol oktattak HTML-t, C-t, majd C++-t, de e ket utobbit igazan csak az elso PC-m megvasarlas utan kezdtem hasznalni, Visual C++ alatt. Ez mar az "1nsane"-es idoszak kezdete, csapatban dolgoztunk. Kezdetben csak hetvegeken jartunk ossze egyeztetni, de fokozatosan komolyodott a ceg, bereltunk egy irodat ahova nap mint nap bejartunk, sot a vegen mar fizetesunk is lett . A letszamtol eltekintve a Invictus arculata nem sokat valtozott azota.
Erdekesseg, hogy az onEscapee, es az Insane fejlesztese alatt sem hittek a rokonok, baratok abban hogy lehet belole valami, de pont ezzel mar akkor felkeszitettek arra, hogy ha vannak is nehezsegek, nem szabad feladni.


Hogy milyen haszontalan nyelvekhez értek, arról már fentebb írtam.
Játékkód írásához kizárólag C++-t használunk a sebességérzékenység miatt. A játékkészítés köré épített eszközkészletek, editorok felhasználói felületének programozására viszont igen kényelmesen használható a C# és a .NET. Ezek megjelenése elõtt volt rá példa, hogy Delphiben hoztunk létre felületet, mivel akkor az volt a legkulturáltabb eszköz ilyesmire, de ez szép volt, elmúlt.


Air: Visual C++, Delphi, php, Java, Visual Studio, stb.


-> 1/5 Mennyi idõt töltesz programozással? Marad még otthonra is "lendület", vagy csak munkahelyen foglalkozol játékfejlesztéssel?

Manapság csak a munkahelyen kódolok, de cikkeket, könyveket szabadidõmben is olvasok a témában. Emellett sokat játszom, hogy ismerjem a konkurrens termékeket is, gyakran ezekbõl is legalább annyit lehet tanulni, mint a szakirodalomból.

Azota C++, Java amiben programozok, bar hobbi szinten butykolok php-t, de erre keves ido jut. Otthon nagyon ritkan ulok le programozni: foleg a szemem farad el, hala a TV es 14"/50Hz monitor elott "leult" eveknek.
Beszokasi idorol nem tudok nyilatkozni, nalam fokozatosan valik egyre inkabb munkava a hobbi.


Marad otthonra is (persze ki tudja meddig még, hisz nem vagyok már húszéves), de mivel ugye hobbi és munka mostanság szerencsésen megegyezik számomra, így otthon is az éppen aktuális feladatommal szoktam foglalkozni.

Air: Nem foglalkozok már kódolással


-> 1/6 Mennyire segítettek neked eleinte, a beszokási idõben a többiek?
Milyen hosszú volt ez az idõ?


Mindig van mit tanulni, még ennyi év után is. Mivel én AI-val, multival, game systemmel és game logic-kal foglalkoztam sokat, egy 3d engine programozó ma is tud újdonságot mondani.
De azt tapasztaltam, ha bátran kérdezek mindig szívesen segítettek a régebbi és újabb csapattársak is.


Mint a csapat legelsõ és hosszú hónapokig egyetlen programozója, elég rövid beszokási idõrõl számolhatok be, ugyanakkor a többiek mondhatni egyáltalán nem segítettek
Nade hogy valami hasznosat is mondjak, egy új ember beszokási ideje nagymértékben függ a kezdeti tudásától és az õ személyiségétõl is, valamint óriási mértékben attól, hogy mennyi idõt dolgozott már többfõs csapat részeként. Én individualizmusban világbajnok vagyok, igazi gyötrelem volt, amikor sokhónapos otthoni munka után bevittük a projectet egy igazi munkahelyre.
Azt is figyelembe kell venni, hogy a frissen felvett munkaerõ rendszerint nem rögtön a legínycsiklandóbb feladatokat kapja, ami erõteljesen kedvét szegheti. Sajnos több kifejezetten tehetséges embert láttam már emiatt távozni (jó esetben önszántából, rossz esetben a fõnökség szántából, látva az illetõ alacsony produktivitását).
Egy sokfõs csapatban nagy projecten dolgozni megdöbbentõ mértékben különbözhet attól, ahogy az ember otthon, vagy egy garázscégben dolgozik. Mindenféle rosszindulatú emberek esetleg csúnyán néznek rád, ha délután háromra esel be, és esetleg még csúnyábban, ha határidõre nem végeztél a fájlkezelõ rendszerrel, hiába csináltad meg helyette a világ tíz leglátványosabb effektjét, mert azt momentán - ki tudja, miért - érdekesebb feladatnak találtad.
Ami a segítségnyújtást illeti, az természetesen megtörténik, persze ésszerû keretek között. Programozási tanfolyamot nem tartunk egymásnak, ezért fontos, hogy csak megfelelõen megalapozott szakértelemmel jelentkezzen valaki játékfejlesztõnek.


Air: Pár hónap alatt el lehet sajátítani az alapokat, utána idõval egyre több és töb dolgot tud meg az ember a feladatairól. Az emberek segítõkészek mikor az idejük engedi.

Garry: A többiek nagyon segítõkészek voltak, nagyjából 1-2 hét volt a betanulás. Ez persze csak a tesztelésre vonatkozik. Valójában nem lehet így behatárolni, hisz még most is folyamatosan tanulok.



-> 2/1 Manapság milyen szintû referenciával kell rendelkezni ahhoz, hogy meghallgassák az embert?

Egy vezeto programozoi poziciohoz fontos a komoly szakmai tapasztalat, de a tobbi programozoi posztnal egyetlen igazan fontos dolog van: legyenek az onerobol, hazilag keszitett programok minel meggyozobbek.

Ez nagyban függ attól, hogy milyen területre keressük az embert, így általánosságokat nem tudunk mondani, de érdemes megnézni a www.stormregion.com oldalon az aktuális álláshirdetéseket, az alapkövetelmények rendere megtalálhatók ott.

A beszelgetesen nezzuk meg a jelentkezo altal keszitett anyagokat. Itt dol el nagyon sok minden, a szakmai szempontok mellett emberileg is ugyanugy meg kell felelni, sot ez utobbi talan meg fontosabb is. Ha valaki tehetseges, de peldaul csak Delphiben/OpenGL-ben programozott, ertekesebbnek tartjuk mintha nagyon menne neki a C++/DirectX de minden kreativitas nelkul.
Ugyanez vonatkozik a grafikusokra is, hiszen dolgozik nalunk olyan ember, aki soha nem dolgozott meg szamitogeppel mielott hozzank jott, de szabadkezi rajzban verhetetlen volt.


Hát igen, ez nehéz kérdés. Amikor egy nagyobb cégben az öreg rókák felvételiztetnek, titokban mindig a Nagy Polihisztor eljövetelét várják, aki mindent tud, tíz éve dolgozik a játékiparban, és húsz játék jött ki már a keze alól (természetesen a feledés jótékony homálya borul arra, hogy õk maguk hogyan kezdték). Ennek az az oka, hogy a projectek általában igen feszített tempóban zajlanak, mindig sok a munka, és kevés az emberhónap, így - ahogy az elõbb már említettem - nincs túl sok lehetõség a tanítgatásra.
Tehát egy kezdõ nem baj, ha jópár hónapot, vagy egy-két évet garázsfejlesztéssel, vagy ennek híján otthoni hobbi-önképzéssel (pl. demok készítése) tölt, mielõtt jelentkezik egy "igazi" céghez. Ez persze nincs kõbe vésve, de enélkül, ha át is jut a felvételin, nagyon nehéz lesz lépést tartania a munkával.
Nade hogy elejét vagyük a pániknak, általánosságban a következõk számítanak jó pontnak:
- objektumorientált programozásban, és konkrétan C++-ban büfének kell lenni (ez nem jópont, ez követelmény). Ez nem azt jelenti, hogy ismerni kell mindent flik-flakkot, ami a C++ tankönyv utolsó fejezetének lábjegyzetében megemlíttettik, inkább, hogy az objektumorientált szemléletet kell tudni természetes könnyedséggel alkalmazni, mégpedig C++-ban. Erre bizonyítékul korábbi cégeknél eltöltött idõt és/vagy némi C++ forráskódot kell tudni felmutatni.
- korábban programozással eltöltött évek, minél több, annál jobb. Itt természetesen sokszorosan számítanak a játékfejlesztéssel, vagy demokészítéssel eltöltött idõk
- korábban *csapatban* programozással eltöltött idõk szintén többszörösen számítanak
- ha a megcélzott munkakör engine-programozó, akkor egyrészt némi matematikai felkészültéget várunk el: koordináta-geometria, mátrix-, vektor-témájú elméleti tájékozottság; a dolog hihetõségét nagy mértékben javíthatja egy témába vágó felsõfokú végzettség, de persze nem mindig ezen múlik. Másrészt nem árt hozni egy, vagy több kis demot, ami a DirectX/OpenGL kezelésében való jártasságot a lehetõ legtöbb oldalról bemutatja.
- lehet általános programozónak jelentkezni, ami az engine-tõl független játékkód, vagyok toolok írásában jelent részvételt. Itt is elõny lehet, ha valaki tapasztalt bizonyos konkrét területeken, pl. AI-programozás, hálózat-kezelés, vagy multithreading, de ez nem követelmény, mivel a kódnak jelentõs részei vannak, amelyek általános programozási ismeretekkel is lebírhatók.
- még a programozási tevékenységhez sorolható a script-írás, ami pályák, küldetések létrehozását jelenti egy, a játékhoz tervezett speciális scriptnyelven. Ez hivatalosan designeri állást jelent, kevesebb fizetéssel, viszont adott esetben jóval szerényebb programozási tudással is megcélozható.


Air: Minél több annál jobb. Programozóként érdemes pár éves tapasztalattal rendelkezni. Amennyiben ezt a játékfejlesztésben szerezte, még jobb a helyzet.

Garry: A teszterséghez elég a (lehetõleg a projekt profiljába vágó) játékos múlt, pl. adott genre átfogó ismerete és hasonlók. A többi már betanulás kérdése. Kimondottan hasznos lehet azonban a projekt által használt programnyelv, fejlesztõi környezet, toolok legalább felszínes ismerete - az ember a saját dolgát könnyíti meg ezzel, és késõbb könnyebb lehet az elõrelépés: ismerek olyan kódert, aki teszterként kezdte, a lehetõségek határtalanok



-> 2/2 Ha valaki Delphiben programozik, vagy esetleg OpenGL-t használ, annak van esélye érvényesülni, vagy muszáj átszokni?

A legtobb cegnel C++ es DirectX van, ezek nelkul nem sok esely van.

Mi sem Delphit, sem OpenGL-t nem használunk, így ebbõl a szempontból nálunk muszáj.

[lásd 2/1]

A Delphirõl muszáj átszokni, persze az ott szerzett OOP tapasztalatok sokat számíthatnak az átálláskor (mármint itt a saját kezû OOP-zésre gondolok, a Delphi componentek pakolgatása a formokra és vezérlése a programból nem igazán elegendõ alap). De már megszerzett C++ ismeretek nélkül nem érdemes jelentkezni sehova. Az OpenGL esetében cége válogatja, van ahol kifejezetten azt szeretik. A Mithisben jelenleg minden engine DirectX-alapú.

Air: Van esélye. Az ilyen jellegû tudással könyebben tanulja meg az ember az új technikákat, és esetlegesen átszokni is könnyebb.

Garry: Hirtelen most nem tudok olyan játékfejlesztõt mondani aki Delphiben fejleszt, persze lehet hogy hiányosak az ismereteim



-> 2/3 Assembly mennyire elvárás manapság?

Az Assembly ma mar nagyon ritkan hasznalt, egyaltalan nem elvaras – bar egyes feladatoknal (pl. optimalizalas) hasznos lehet legalabb az elmeleti ismerete.

Egyáltalán nem elvárás, de ritkán jól jöhet.
Nálunk inkább trükkösebb hibák keresésében volt haszna, ill. egy-két kisebb kódrészletnél.


[lásd 2/4]

Igen nagy tisztelettel nézünk azokra, akik mûvelnek ilyesmit, de egyáltalán nem követelmény. Az assembly ismeretek természetesen arról is tanúskodnak, hogy az illetõ érti, hogy valójában mi történik a gépben, akkor is, ha egyébként C-ben programozik, tehát ez ebbõl a szempontbõl is jó pont. A gyakorlatban néhány elvetemült engine kóder szokott csak pár soros assembly-darabokat beszúrni a kódba nagyon speciális esetekben, egyébként a C++ az úr a háznál.

Air: Tudtommal nem elvárás.


-> 2/4 Milyen végzettség "kötelezõ", amitõl már meghallgatnak, és milyen tanulmányok hasznosak, azaz amikre már felfigyelnek?

Nem a vegzettseg a fontos, hanem hogy mit tudsz magadtol letenni az asztalra, de azert persze egy ELTE progmat vagy egy Muszaki informatikus vagy fizikus diploma noveli az eselyeket.

Igazság szerint a végzettség az a dolog, ami a legkevésbé sem számít, sokkal fontosabb annál a tudás, a szakértelem ebben az iparágban nem mindig papírhoz kötõdik. Több olyan autószerelõt ismerek aki grafikusként dolgozik játékfejlesztõ cégeknél.

Assembly tudas, OOP-ben valo jartassag, egyetemi vegzettseg nem kotelezo, de - foleg az utobbi - elonyt jelent: ha van akkor tudjuk hogy az illetonek mar joval tagabb a latokore, jobban atlatja a rendszert aminek valoszinuleg egy kis reszen fog dolgozni. Akinek pedig tagabb a latokre - ha nem is ismeri pontosan - de legalabb tud azokrol az eszkozokrol, (pl. algoritmusokrol, szoftverekrol) amelyek egy adott problema megoldasanal szobajohetnek.

Kötelezõ végzettség nincs, persze jó, ha valaki valamelyik szintû iskolájában tanult programozni, de inkább az eddig végzett gyakorlati munkája esik latba. Olyannyira, hogy iskolából frissen kikerült embereket nem is nagyon szeretünk felvenni, hacsak nem tud meggyõzõ saját készítésû demókat bemutatni. Ha valakinek értékelhetõ felsõfokú matematikai képesítése van (pl. programozó matematikus ), arra egészen biztosan felkapjuk a fejünket, de ismétlem, a gyakorlat mindenek felett.

Air: Úgyérzem, hogy inkább a referenciák a fontosabbak és nem a végzettség. Természetesen elõnynek számít, ha az ember pár diplomát fel tud mutatni.

Garry: Szerintem azt a fajta tudást, tapasztalatot, amit egy játékfejlesztõ cégnél magára szed az ember, nem lehet megtanulni semmilyen iskolában. Persze diploma nem hátrány, de hiába van akárhány diplomád, ha nem bírsz megírni egy templatet pl.



-> 2/5 Mi a legfontosabb egy jelentkezésnél? A referenciák, vagy a tanulmányok minõsége vet több súlyt a latba?

A referenciamunka mindennel fontosabb.

A legfontosabb, az, hogy mennyire akarod ezt csinálni. Ha megvan a lelkesedés és a tûz, a többi már nem is annyira számít. Nem azt figyeljük milyen programozó vagy most, hanem milyen akarsz lenni egy év múlva! Sokan megkapják az esélyt a bizonyításra, ha látjuk rajtuk, hogy szívvel-lélekkel csinálják, akkor lesz idejük szintre hozni magukat.

Csak ismételni tudom magam, bizonyos végzettségekre csillogni fog a felvételiztetõ szeme, de a referenciák, demok, lehúzott évek számítanak nagyobb súllyal.

Air: Mindkettõ fontos. A tágabb szaktudás és a több fókuszált tapasztalat is lehet elõny.


-> 2/6 C++-on kívül milyen nyelveket kell ismerni (vagy mi elõny, ha ismeri valaki)?

Egy ket specialis feladattol eltekintve (pl. webfejlesztes) a legtobb kodernek eleg a C++-t ismernie.
Es persze, ha mar a nyelveknel vagyunk, az angol nyelv legalabb iras/olvasasi szintu ismerete is nagyon fontos ;)


Minden elõnynek számíthat, manapság pl. a C# „divatos”. De nem is a nyelvek ismerete, hanem a modern programozás módszerek ismerete fontosabb inkább.

Jelenleg a cegnel hasznalt nyelvek: visual C++, borland C++ builder, java, shader assembly es HLSL, max script valamint keveske HTML, flash, asp es sql. Es termeszetesen az angol ertes szinten, hiszen a legujabb fejleszteseket mindig angolul dokumentaljak.
Grafikusok 3DS maxet vagy vizt, photoshopot hasznalnak.
Idonkent kulsos grafikusoknak is tudunk munkat adni, ebbol a "kulsos" statuszbol joval konnyebb foallasuva valni.


C#, .NET ismerete feltétlenül elõny, mivel ez toolok, editorok programozására képesíti az embert, és ilyenre mindig van igény. De nem kötelezõ.

Air: Aki C++ ban profi már érvényesülhet a játékfejlesztés terén. Érdemes minden egyéb objektumorientált nyelvet is ismerni.


-> 2/7 OOP tudása/ használata mennyire lényeges? Elég ha valaki csak beszokási idõ alatt érti meg az egész szemlélet lényegét, vagy már jól kell tudni használni?

Az OOP ismerete es hasznalata alapveto, enelkul nem erdemes probalkozni.

Az egyik legfontosabb alapkövetelmény, hogy jól használd, erre mindenkinek nagyon rá kell gyúrnia!

[lásd 2/4]

Mindenképp jól kell tudnia már használni.

Air: Mindenképp fontos az OOP szemléletmód ismerete és használata. Sajnos ez egy olyan szemlélet amit nehéz elsajátítani, de természetesen ha az illetõben látják a fantáziát, enélkül is érdemes jelentkezni.


-> 2/8 Hogyan dolgozik egy hivatásos csapat? Csak munkahely az egész, vagy vannak közös programok/ események?

Munkaidoben profi csapatkent csak a feladattal torodnek, de munkaidon tul vannak vidam kozos programok, pl. mozi, gokart, paintball.

Minél nagyobb egy cég, annál inkább munkahelynek tûnhet, ezért ilyenkor egyre több energiát kell belefektetni abba, hogy a családias, baráti légkör megmaradjon. Ezt nálunk a cég is támogatja közös gokartozással, paintballozással, illetve az egyénileg szervezett közös billiárdozás, sörözés, focizás is gyakori. Érdekességképpen: nálunk pl. a cég mindenkinek (akit érdekelt) vett ajándékba egy World of Warcraft-et a megjelenésekor, ezzel is erõsítve a közös mukahelyen kívüli együtt szórakozást!

Projectekben gondolkozunk, minden project tervezesekor szetosztjuk a teeendoket a munkatarsak kozott, termeszetesen veluk is egyeztetve. Kozosen megbeszeljuk a teendokre becsult idot, es a fuggosegeket, amit egy un. project planben rogzitunk. Amit a project planben rogzitettunk, a tovabbiakban azt kerjuk szamon. Igy nem a hataridoknel (alfa, beta, master) torlodnak a dolgok, hanem mar menet kozben is kezelni tudjuk a csuszasokat. Ha valaki nem keszulne el idore, akkor elvarjuk hogy huzzon bele, de a tervezesnek es az osztonzo jutattasoknak hala erre ritkan van szukseg.
A munka mellett idonkent kozossegi programokat is szervezunk, sot neha a kettot osszekotjuk, mint peldaul bogracsozas texturagyujtessel.


*Ha céges szervezésû programokra gondolsz, azok viszonylag ritkán vannak, általában valamilyen örömteli eseményhez köthetõen (project befejezése, alfát elfogadta a kiadó, ilyenek), és csapatépítõ tréningekre sem kell egyelõre járnunk. Kisebb egyéni szervezésû sörözések, kajálások, bulizások természetesen elõfordulnak, mint mindenhol. Azt még megjegyezném, hogy a "csak munkahely az egész" bizonyos helyeken indokoltan negatív értelmû lehet, de egy játékfejlesztõ cégben általában mindenki többé-kevésbé szereti, amit csinál, aminek van egyfajta aurája, így akkor sem feltétlenül éreznéd rosszul magad, ha "csak munkahely" lenne.
Ennél a résznél bekapcsolódom egy kicsit a cikkbe, projectvezetõi oldalról összefoglalva a dolgokat. Kovács László (Chris) vagyok, vezetõ teszterként dolgoztam a Philos Labsnál (Theocracy, Tim7, Rebels) és a Digital Realitynél (Africa Corps), majd projectvezetõként a Mithisben (Creature Conflict).


Air: Munkahely többnyire, de kisebb csoportok szerveznek közös szórakozásokat is. Szerepjáték, sportolás, konzolos vagy pc-s hálózati játszás, sörözés.

Garry: Vannak programok mind projekt, mind cégszinten. De szerintem ezek nélkül is, a legtöbbünknek ez több, mint egyszerû munkahely



-> 2/9 Mennyi az átlagos fizetés? Tanulási (beszokási) idõben mennyivel kevesebb?

Ez leginkább a korábbi tapasztalatoktól és a próbaidõ alatt mutatott teljesítménytõl függ. Viszont nagyon fontos a hozzáállás, hogy ha igazán arra a munkára vágysz, ezt lássák is az alkalmazóid rajtad. Mondok egy példát: ha elmész állásinterjúra akkor nézd már meg a cég weboldalát ahová mész, ha játékfejlesztõ cég, akkor töltsd le a demókat, játszd õket végig, nézz utána milyen kritikákat kaptak a cég korábbi játékai, mi volt jó, mi volt rossz bennük, ha olyat tudásod van amivel jobbá teheted a gyenge pontokat azt ne titkold el, próbálj érdeklõdni fórumokon a cégrõl, szedd össze a kérdéseidet az interjúra, stb. Ha minden vágyad, hogy annál a cégnél dolgozz akkor ezt tudják meg azok is akik fel akarnak venni, és ne olyanokat mondj (idézem, egy konkrét régebbi jelentkezõtõl, mikor megkérdeztük tõle miért akar hozzánk jönni), hogy "...hát valamibõl meg kell élni.". Szóval ne csak kódolni tanulj meg, hanem azt is, hogy az alkalmazóid is lássák, érdemes rád költeniük.

A fizetesek biztosan sok embert erdekelnek, de konkretumot nem fogok mondani, mert ez fugg a hozott tudastol, a munkakortol, az itt toltott idotol, masreszt a mar emlitett kiegeszito juttatasok miatt sem lenne osszehasonlithato. Ami tobbet modnhat: anyagiak miatt meg senki sem ment el tolunk.
A probaidoszak 3 honap, ezalatt fizetesuk 80%-at kapjak a hozzank kerulok.


Ez cég és projectfüggõ is és persze üzleti titok. Általánosságban a tapasztaltabb emberek már frissen felvéve is jó fizetést kapnak. Itt is a tapasztalat van megfizetve, nincs olyan hogy konkrét “beszokási idõ”. Ha valaki ügyes, fejlõdik, tapasztalatot szerez, akkor elõrébb léphet munkában is és fizetésben is. Egy teljesen tapasztalatlan és egy megbecsült, tapasztalt ember fizetése között attól függõen hogy milyen pályán helyezkedett el a szakmában, 50-100-200%is lehet a különbség ha már van 2-3 év tapasztalat a háta mögött.

Air: Beszokási idõben, mint mindenhol, valamivel kevesebb, de a végleges fizetési összeg nem haladja meg, illetve nem marad el egy átlagos irodában történõ munkavégzés keretétõl.

Garry: Próbaidõ alatt 2/3 a fizetés a megállapodotthoz képest.



-> 3/1 Kiegészítések, amikre nem vonatkozott kérdés:
Végül egy jótanács a végére: igyekezz minnél többet megtudni a játékfejlesztésrõl. pl. az egyik legjobb külföldi oldal a www.gamasutra.com, ahol elég sok cikket olvashatsz arról, hogyan mûködik céges keretek között egy játék fejlesztése.

Összefoglalva tehát azt, hogy lehet bekerülni egy játékfejlesztõ cégbe teljesen kezdõ programozóként: a végzettséggel szemben sokkal jobban számít az, hogy otthon hobbiból, lelkesedésbõl milyen minõségû kódot, játékot vagy scene demot állhozott össze az illetõ. Ha valaki korrekt C++-os tudással, source-okkal, bármi más értékelhetõ dologgal jön de semmiféle témába vágó iskolája nincs, simán felvehetik azzal szemben aki egy kalap diplomával jön de semmiféle bizonyítható tudása nincs.

A kérdéseiteket eléggé kóder szemszögbõl tettétek fel, ezért mundanék pár dolgot a szakma többi résztvevõjérõl is. Jó photoshopos és lowpoly model készítõi ismeretekkel és szépérzékkel a legkönnyebb grafikusként munkát találni, alapszintû programozói ismeretekkel, némi scriptelési tapasztalattal modolható játékok terén, némi rendszerezési és játékismerettel scripterként lehet elhelyezkedni. Jó adag kreativitással és játékismerettel, de azért rendszerezõ látásmóddal (nem elég a játékokat ismerni, ki kell tudni találni azt is, hogyan mûködnek) designeri pályát lehet megcélozni, hasonló képességekkel de kevesebb kreativitással ugyanakkor erõsebb idegrendszerrel teszternek is mehet az ember.

A jelentkezéssel kapcsolatban annyit hogy aki megfelel a kritériumoknak az akár nálunk is jelentkezhet már most . A jelentkezésnél célszerû már rögtön referenciákat mellékelni, nagyobbakat akár link formájában, ez nagyon sokat számít! Source-okat, kész modelleket persze nem mindenki szeret elküldeni, ilyenkor járható út screenshotok készítése és egy leírás. A cégeknél az új emberek felvétele nagyban függ attól hogy indul-e új project, ilyenkor van nagyobb esély a felvételre. Ez azt jelenti hogy nagy mázli kell ahhoz hogy ha valaki jelentkezik egybõl felvegyék, de érdemes jelentkezni mert ha a referenciák bíztatóak, elõbb vagy utóbb megkeresik az embert.



A képekért köszönet:

  • Testvéremnek (2 Concept Art)
  • Google

ShAdeVampirE – shadevampire@gmail.com

Értékelés: 10.00

Új hozzászólás
samu          2007.04.10 03:27
Extrém köszönet h vetted a fáradtságot és elkészítetted ezt a cikket, nagyon pro
gaborlabor          2006.06.23 02:30
Köszi, ez nagyon jó cikk! Végre egy olyan leirás, amely átfogó képet nyújt erről a témáról, és végre olyan emberektől kaptunk a kérdésekre válaszokat, akik tudják hogy miről beszélnek!