Developer blog / Profession (page 4)

Gondoltam megtöröm itt kicsit a csendet. A rendes nagy projektjeim még váratnak magukra, nyárig garantáltan nem lesz rájuk egy percem se, pedig nagy ötleteim vannak. Előtte még jó eséllyel publikálni fogok egy party-kellék programot amin az utóbbi időben dolgoztam, erről majd még részletesebben beszámolok.

Addig is, Beágyazott Rendszerek Gyakorlata óra, avagy hogyan írjunk .NET Micro Framework alapú eszközre Space Invaders-t másfél óra alatt. :D

Nehéz a kreativitást és az alkotóvágyat türtőztetni, amikor tanulni kéne. Az egyik jelenlegi projektem egy hangszóró életre keltése, négyszögjelről vezérelve. A későbbiekben lesz benne több szólam is, de analóg módon lesznek a csatornák összekeverve, mivel a panelról csak alacsony vagy magas jel jön. Majd annyi vezeték jön ki, ahány csatorna van.

Addig is megépítettem egy 3x4 gombos billentyűzetet, amit egyből be is tanítottam, hogy a temperált skála szerinti egy oktáv 12 hangját lehessen vele előcsalni. Az oktávok közötti léptetésre két külön gomb szolgál a Basys 2 panelon. 16Hz-től egészen 7902Hz-ig elmehetünk vele.

A billentyűkiosztás az alábbi:

C C# D
D# E F
F# G G#
A A# B

A zenei tudásom kimerül a Boci Boci Tarkával, úgyhogy a bemutató videóhoz is ezt a dalt választottam. :D
(A hangja azért ilyen halk, mert közvetlenül a Basys 2 kimenetéről hajtom meg)

Elérkezett hát a várva várt pillanat, publikálásra került a Codename Z első alfája.

Tech Demo

Mint azt már korábban írtam, az AI kimarad ebből a verzióból, viszont helyette összeraktam egy érdekesnek bizonyuló kis pályát, tele apró meglepetésekkel. Cél az nincs, csupán a felfedezés. Na de lássuk csak mit is lehet csinálni: rögtön az elején teljes fegyverarzenállal indulunk, ezek között a szám gombokkal vagy az egérgörgővel váltogathatunk. Ajtókat az E gombbal nyithatjuk ki, F gombra bekapcsol az elemlámpa, N gombra pedig az éjjellátó.

A rakétavetővel és az overkiller-el, atomjaira bonthatjuk az egész pályát, meg az ellenfeleket is, a Beam Gun-nal vaporizálhatjuk őket és bónusz feature a gomba. Igen, gomba. Van egy pár elrejtve a pályán, és meg lehet őket enni. A hatás nem marad el :D

Ha kifogytunk a lőszerből, csalhatunk is. Hozzuk elő a konzolt az F1 gombbal és oda írjuk be, hogy "giveall", aztán enter. Ez a birtokunkba juttatja az összes fegyvert (ha esetleg nem lenne meg, bár itt alapból megvannak) és teljes lőszermennyiséget ad mindhez.

Többet nem is mondanék, a képek mindent elmondanak, maga a játék meg méginkább. Innen letöltheted:
http://vbstudio.hu/games/codenamez-alpha_labs_sector_a
Jó szórakozást ;-)

...de nem az, amire gondoltok, még nem. Ez most egy tavalyi verzió, amit véletlenül most túrtam elő és úgy éreztem, hogy nem merülhet feledésbe. Ez egész pontosan a Haladó Programozás órára készített verzió, amiben még felülnézet van és a régi Incomplete Operation-ös pályával, de tele rengeteg advanced cuccal. Olyanok mint: spéci dinamikus fénykezelés, menürendszer, normálisan megrajzolt szereplők, látványosan bontható falak, rakétavető, shotgun, éjjellátó (N), szonár (M).

A játékot letölthetitek innen: http://vbstudio.hu/games/codenamez-ioap

A mostani alpha verzió is jön, már majdnem kész vagyok vele. Az AI az nem nagyon működik benne, de most nem is fogok már nekilátni megcsinálni, hanem gyorsan publikálom így ahogy van, ugyanis több radikálist változtatást is készülök végrehajtani, amik miatt legközelebb max nyáron lehet belőle normális verzió.

Lassan már érik egy tech-demo, de most már egy rendes, nem olyan, amiből gyorsan egy „mondjuk hogy kész” játékot faragok, és kihagyok egy csomó klassz funkciót a sztory meg a játékmenet miatt. A pálya rombolhatóságát és a dinamikus fényeket még eddig nem igazán mutattam be, úgyhogy a hangsúly főleg ezen a részén lesz.

bird's view

Legújabb feature a kamera mozgásának immár fokozott szabadsága. Már tud mozogni függőlegesen is, ezáltal bármilyen magasságú lehet a főhős, továbbá megoldhatóvá vált a „head bobbing” is (ez utóbbit ki lehet majd kapcsolni :D).

Ahogy a képen látható, a nézés iránya is változtatható, bár ez a rész csalás. A trükk az, hogy a horizont került arréb. Képzeljünk el két monitort egymáson, a horizont a kettő között lesz. Ha csak az alsó monitort nézzük, akkor olyan, mintha lefelé néznénk, mert a horizont alatti részt látjuk csak, pedig valójában a kamera továbbra is egyenesen néz. Ezt a technikát alkalmazták több hasonló elvű régi játékban is, mint pl. a Duke Nukem 3D-ben. Bár hogy lesznek-e ennyire madártávlati jelenetek, az azon fog múlni, hogy meg tudom-e oldani, hogy a menyezet egyes nyílásain betekintve is renderelje a falakat, mert ez egy kicsit bonyolítja a procedúrát. Ami viszont mindenképp lesz, az a padló és plafon közti mozgás.

Vaporizer gunNekiláttam és implementáltam egy részecskegyorsító... izé... részecske motort a játékba és most mindenből részecskék folynak.

Részecske, avagy hivatalos nevén Particle, róluk azt kell tudni, hogy olyanok, mint egy sprite, csak ezeknek nincs textúrája, egyszínű az egész és a mérete sem fix, többnyire picikék. Ilyen részecskékből előállítható rengeteg minden: törmelék, vér, víz, füst, hamu, tűz, lövedéknyomvonal, szikrák... gyakorlatilag bármi, ami apró kis színes pontokból kirakható és természetesen különféle fajta részecskéknek eltérő lehet a viselkedésük is. A dolog még cifrázható is azzal, hogy lehet átlátszó, vagy additív blending-el is kirajzolni őket. Utóbbi kiváló pl. lézerfegyver nyalábjához (a képen pont nem azzal van, az csak simán átlátszó, majd kijavítom).

Jelenleg még csak kezdem felfedezni a benne rejlő potenciált, a mai remekmű a baloldalt látható hamvadás animácó, ami a 2D sprite-ot alakítja 3D-s particle hamufelhővé, megtartva az eredeti pixelek színét (ha nem is sokáig). A terv az, hogy rengeteg ilyen cucc lesz és ha nem esek túlzásokba a mennyiséggel, akkor elég korrektül fogja vinni bármelyik átlagos CPU. (Csak várjátok ki míg berakom a multi-thread támogatást is :D)

Másik nagy újítás az, ahogyan a falak lebomlanak: amikor egy darabot kilövünk a falból, annak a helyét feltölti ilyenekkel, és aztán repülnek a szélrózsa minden irányába, pattogva, miközben folyamatosan rajzolódnak át a padlóra, - mint ahogy az a hamunál is látszik - így miután eltűntek, utána is örökre megmarad a nyomuk. Jó lesz majd így a végleges játékban visszatérni egy korábbi csatatérre és végignézni a pusztításunk nyomait :D

Boldog Karácsonyt Minden Kedves Látogatónak! :)

Amikor elhatároztam, hogy Karácsonyra összehozok egy játékot, nem is sejtettem hogy mit vállalok el :D Határidőre dolgozni nem a legjobb, főleg amikor az utolsó napon kerülnek elő hibák. Nem is beszélve a misztikus hibákról, amik csak bizonyos rendszereken jönnek elő.

Codename: Xmas

Codename: Xmas (klikk ide a játékhoz)

Ha már a Codename Z motorjára írtam, ragaszkodtam hozzá hogy valamelyest utaljon rá a neve. Az utóbbi időben kizárólag a 3D résszel foglalkoztam, nem is csoda, hisz a 3D világ sokkal érdekesebb kihívásokat tartogat és az eredmény is látványosabb. Ami jelentős fejlődés a legutóbbi verzióhoz képest, az a skybox, illetve hogy a padló is lehet átlátszó, olyan hatással, mintha üveglapon járnánk (ez a funkció nem látható a karácsonyi kiadásban). Ezekből a lehetőségekből remek űrbéli pályákat lehet csinálni.

További újítás, hogy már a képarány se fixen 4:3-as. Kivéve a felülnézetes módnál, azon okból, hogy szélesvásznú képnél zavaró, hogy oldalirányban messzebre látunk, mig fölfelé meg lefelé alig. A 3D módban választható lesz, épp úgy, ahogy most is a beállítások menüben.

Ennyi update jelentés elég lesz mára, mindenki menjen ajándékot bontani :-)

Egyetem mellett nehezen jut időm másra, de mivel ez részben a beadandó feladatom is (megint), ezért lassan de biztosan haladok tovább a játékkal. A Codename Z: Incomplete Operation mint a neve is utal rá: félkész. Most ezt a régi engine-t fejlesztem tovább, azóta kerültek bele a dinamikus fényekhez dinamikus árnyékok is, rengeteg optimalizáción esett át, kapott komplett menürendszert is.

Mogyorós Márton kolléga jóvoltából lesznek új ellenfelek és jó sok tereptárgy, statikus és interaktív egyaránt.

Fejlődik a pályatervező is, amit a végleges játéknál tervezem hogy publikáljam. Ehhez lesz majd „Online MapStore”, ahova egy VB stúdiós login ellenében bárki feltöltheti és menedzselheti a saját pályáit. Mindezt login nélkül is le lehet majd tölteni ráadásul közvetlenül a játékon belül, és már megy is!

(A Wolfenstein grafika nem lesz a végleges verzióban, csak ez volt hirtelen kéznél)

A 3D mód, ami eredetileg poénnak indult, ilyen „ilyet is tudok” alapon, az mostanra elég fejlett, mondhatni játszható állapotba került. Az Incomplete Operation-ben még csak a falakat renderelte, és a statikus fényeket, most már az összes dinamikus fény is benne van, és sprite-okat is tud, tehát ellenfél, tereptárgy, lövedék, minden megjeleníthető benne. Ezért kár is lenne érte, ha ez a mód csak egy bónusz funkcióként lenne elrejtve. A terv az, hogy ugyan a fő játék az marad a felülnézetes, lesz egy bónuszküldetés a 3D módban, ami az alapjáték történetéhez akár semmilyen szinten nem kötődik.