2011. december 30., péntek

Lassan, de biztosan.

Kezdek kifogyni a frappáns címekből, ezért ritkultak meg a bejegyzések ... :)

Nem, egyébként nem, csak itt vannak/voltak az ünnepek, meg pihenés, edzés és csendes kódolás van.

Időközben megcsináltam az EnemyController Editort is. Végre lehet "triggerelni", hogy mikor, honnan, milyen és mennyi ellenséges űrhajó jöjjön. A szerkesztőben lehet nekik formációt megadni, hogy mondjuk V alakban jöjjenek, vagy fordított V, esetleg \ vagy / alakban, stb.
Ezt pikk-pakk össze lehet kattingatni, aztán a játékban egyből lehet tesztelni.
Végre nem ész nélkül jönnek az űrhajók. :)

Most amin dolgozgatok, az az hogy a Menu Editorban a gomboknak lehessen szöveget megadni. A szöveget ezek után karakterekre bontja és az előre megadott képfájlból pedig kivagdossa hozzá a képeket.
Ezt még anno az MSU -ban már megcsináltam nagyon szépen, szóval itt csak át kellett emelnem a kódot és kicsit átírnom.
Csak most egy kis falba ütköztem, mert az Editorban is másként kell viselkednie ennek az egész szövegkiírásnak, meg a játékban is...
Lövök pár zombit, és közben rájövök, hogyan is kéne megoldani. :)

Addig is BÚÉK!

2011. december 23., péntek

Publikus ParticleEditor v1.0

Itt a LINK , tessék tölteni. :)

Nem írok hosszabb használati útmutatót, mert elég egyértelmű.

A bin könyvtárban vannak mellékelve textúrák, vagy pedig használjatok a google-n talált képeket.
Keressetek rá, hogy "particle texture".

Töltsetek be egy képet, állítsátok be a paramétereket és lehet kísérletezni.

Ha valakinek kérdése van mégis, az írjon nyugodtan. (ebből is látom legalább, hogy valaki leszedte, az én Hooch barátomon kívül... :D )

A "játékot" is feltettem ultrawebre, az abban található .apf fájlokat be tudjátok olvasni és felül is tudjátok írni, így egyből ki lehet próbálni a játékban, működés közben.

Starship Prototype v0.3

2011. december 18., vasárnap

Nagyüzem

Megvolt a hétvégi nagyüzem. :) Elég sok mindenhez hozzányúltam, az editorokhoz, a játékmotorhoz, mindenhez.

Pár sajnálatos dologgal is szembesülnöm kellett, mégpedig, hogy nem tudok hajtóműeffektet rakni az enemy űrhajókra, mert ugyanaz az akadás lesz, mint amikor lövedékparticle-el kísérletezgettem. Igy tehát csak akkor alkalmazok particlesystemeket, ha nagyon muszáj. Értelemszerű, hogy a robbanások, az orbok, a player hajtóműve, az mind-mind megmarad ilyennek. Ez az alap. :) De úgy néz ki így annak is lőttek, hogy kicsit valósághűbb sérüléseket varázsoljak az ellenséges űrhajókra. Pedig jól nézett volna ki, ha minden becsapódott lövedék után füstölgő, lángoló effektekkel lett volna tele egy-egy nagyobb hajó...

No de nem baj, a grafikai csillivillit akkor másképpen kell tovább fokozni. Lesz attól még itt darabokra robbanás, de azt csak sprite alapon, mivel az több száz sprite egyidejű legyártásánál sem okoz akadást.
Valamint kis "kamu-fizikával" fogom ellátni a hajókat, meg a darabokra robbant részeket. Egymásnak csapódnak, pörögnek-forognak, ilyesmi. :)

A Menu Editorban pár hibát javítottam, meg a külsejét teljesen átalakítottam, hogy még felhasználóbarátabb legyen. Próbálok paneleket is csinálni, mint ha Delphiben egy GroupBox például. Ez azért jó, mert menüben rápakolom a gombokat egy ilyen panelre és az egészet együtt cipelhetem bárhova, nem kell egyesével, hogy panel, gomb1, gomb2, stb. stb... Ezt ha nem is most fogom tudni kihasználni, de lehet, hogy az Options rész olyan mindenre kiterjedő lesz, hogy nem árt az editorban való kezelésnek kicsit könnyebbnek lennie, és erre a Panel lesz (lenne) a legjobb megoldás.

A Particle Editort is teljesen átszabtam. Megígértem a jf.hu -n is, meg itt is, hogy lesz egy publikus verzió, ahol mindenki szabadon csinálhat robbanásokat, meg a játékban találhatóakat is átalakíthatja. Csak hogy ehhez "hülye-biztossá" kell tenni, mert nincs benne szinte még semmi védelem sem.

Legnagyobb fejlemény, és egyben leglátványosabb is viszont Hooch barátomnak köszönhető, aki írt egy nagyon jó kis lépésszámolást az orboknak. Most már nem bután mennek, hogy elmegy a játékos X poziciójához, aztán elmegy az Y-hoz ilyen hülye kockamozgással, hanem közvetlen belerepül, szépen, sugárban a playerbe. :) Még kicsit csinosítani kell, de már most ezerszer jobb, mint az eddigi volt.

Ez egyben a hőkövető rakéta alapja is lett, valamint kamikaze enemy-k célbarepülésének számításához is ezt fogom használni. 

Beraktam fegyverváltást is a playernek ettől felbuzdulva és már sréhen is lövöldözhetünk. :)

Csupa jó hír a hétvégére, ezt szeretem. :)

2011. december 16., péntek

Első publikus verzió

Hát eljött ez a nap is! :)
Feltöltöttem az első, "nagyközönség" számára is publikus verziót.


Majd regisztrálok most már egy saját tárhelyet is ultraweben, vagy valahol, de annyira izgatott vagyok, hogy most nem érdekel ez igazán. :D

Rövid leírás:
- A "menüben" a gombok most még felirat nélküliek.
Az első gombbal indul a játék, a középső semmit nem csinál, míg a harmadikkal kilépsz.

- A játékban lehet egérrel is közlekedni, viszont még elég bugos, ezért billentyűzettel ajánlatosabb.
Irányítás a kurzorral, lövés a szóközzel.

- A ParticleSystem-ben van egy olyan bug jelenleg, hogy a folyamatosan megjelenítendő effekteknél (orb és hajtóműtűz) minél nagyobb FPS-en fut a játék, annál szebben néz ki... Az egyszer megjelenítendő effeknél, ami a robbanás, FPS-függetlenül ugyanúgy néznek ki.

- Másik bug a ParticleSystem-ben, ami sajnos az engine hibája (a készítője szerint is), hogy néha-néha nem jelenik meg az effekt. Ez kínos egy-egy nagyobb robbanásnál, de 1:100 az arány, szóval nem vészes.

- A játékban a lelőtt űrhajókból orbok "esnek ki", amik belerepülnek a játékosba. Az orbokért XP-t kapunk, amitől fejlődik az űrhajó lövése. Nagyobbat sebez és gyorsabb lesz.

- Ha kiírna DX-es dll hibát, akkor azt a fájlt töltsétek le netről és tegyétek a Windows System könyvtárába és máris működni fog a játék. :)

- Boccs, hogy jelenleg kicsomagolva több, mint 10 megát foglal a játék, de a képeket nem tudtam jól összetömöríteni egy fájlba. Ez természetesen változni fog.


Minden véleményt szívesen várok, de egyet most előre mondok:
MÉG SEMMI SEM VÉGLEGES! Szinte minden változni fog.

Jó szórakozást. :)

2011. december 15., csütörtök

Heggesztés

Miután tegnap sikerült 6 órát droidpózban eltöltenem, lettek bizonyos fejlemények. Alig vártam ugye, hogy hazaérjek, rettentő lelkesedéssel nekiálltam éééés... Sikerült kijavítani a torzulós hibát, jeee!
Ja, hogy új jelentkezett? Király.

Ez az új hiba viszont már TÉNYLEG motorbeli.
Az Andorra készítője is írja, hogy néha-néha előfordulhat olyan bug, hogy nem jelenik meg a ParticleSystem. Hát ez nagyon f*szán meg is mutatkozik, amikor 0.2 másodpercenként akarok a hajóm két oldalán egy-egy lövedéket legyártani. Nagyjából 10 lövésből 9 megjelenik.
Nem, nem esek kétségbe, annál azért már jobb vagyok! (egyébként nem, csak magamat próbálom bíztatni)
Visszahozom a régi, sprite alapú lövést és hozzárakok egy particlesystemet, tehát megy a lövedéksprite, de maga után húzza az effektet. Ám ez sem jó!

Történik ugyanis az, hogy nyomom a lövést, mint az ökör. Ekkor lövésenként két ParticleSystem-et kell legyártania a programnak, ami a két lövedéksprite effektje. Viszont ha én 0,2 másodpercenként ezt legyártatom, valamint a torkolattüzet is legyártom, az összesen, másodpercenként 20 ParticleSystem példányosítás, és ehhez nem raktam hozzá még azokat az effekteket, ami közben jelenik meg, pl robbanások, találatok, stb. stb.
És a legrosszabb az egészben az, hogy hiába fut 200 FPS-en még most is a játék, ha lövésenként megreccen látványosan az űrhajóm és vele együtt az egész játék. 

De a spórolás végett biztosan a sprite alapú lövedéknél maradok, viszont kis trükkhöz kell folyamodnom, hogy kicselezzem a zendzsint.

A trükk az, hogy a játék indításánál az összes effektet legyártom egyetlen egyszer. Ezután pedig mindenki hozzáférhet az én saját ParticleSystem ojjektumomhoz (ez magába foglalja az összes AdParticleSystem-et).
Ezután csak azt teszem majd, hogy lövésenként meghívom az Emit eljárást, magyarul az adott (rövidítsünk) AdPS megjelenik az adott helyen.
A rajzolást és mozgatást pedig az én saját osztályom végzi minden ciklusforduláskor.

Ez így jól hangzik, de remélem meg is lehet valósítani, különben lőttek az én effektekkel teli csillagháborús terveimnek és mehetek vissza a spriteokhoz... 

Pedig olyan szépek a kis drágáim, brühühühü...

Na majd este kiderül! Szurkoljatok!

2011. december 13., kedd

Egyet vissza, kettőt előre

Jajj kedveskéim... Tele a tököm néha az Andorrával. :D
Szeretem, imádom, meg gyors és meglepően jó, de hogy a készítője, Herr Andreas Stöcke miután megírta a motort, nem volt képes normális tutorialokat csinálni, az botrány.
Amiket csinált, azok között is van olyan, amit nem lehet érteni, esetemben a ParticleSystemet.
Mert hát a PS-t bemutató tutorialban TOTÁLISAN másképp csinálja a dolgokat, mint abban a kis demóban, amiben szintén használ részecskerendszert. Miért? Ne kérdezzétek. Van három példaprogram, amiben szerepel részecskerendszer, és mind a háromban máshogy. Máshol számoltatja a mozgását, máshogy rajzoltatja ki, stb.
Most vagy én vagyok a gyökér, és nem vagyok képes felfogni, hogy ezt csak azért csinálta, hogy mutassa, milyen univerzális a rendszer, vagy pedig akkora művész, hogy ő úgy gondolja, absztrakt mód használja a dolgokat... :)

A legszörnyűbb az egészben, hogy természetesen az én esetemben egyik lehetőség sem volt jó, és erre ráment nem egy napom. Mert a hiba nem a legelejétől jelentkezik, neeeem! Rohadt mód hagyja, hogy a kóder elhiggye, ő jól csinálja a dolgokat. Aztán ahogy egyszerre 4-6-10 effektet kell megjeleníteni, elkezd torzulni az egész, és ez minden egyes újabb effekttel egyre rosszabb. Esti órákban én már azt hittem rosszul látok, vagy torzít a monitor, mert túlságosan bele vagyok süppedve a székbe... Nézem, összemennek az effektek, meg ha sok ütközik egyszerre, akkor 200-as FPS-ről leesik 40-re, vagy megáll az egész, aztán eltelik fél másodperc és újra 200 körüli FPS-en száguld az egész.

Nem szoktam sokat káromkodni, de tegnap este már majd levertem a vakolatot, mert szörnyű érzés volt, mikor rádöbbentem, hogy az egész eddig megírt rendszert kukázhatom és ma újra kell írnom... Pedig olyan szépen működött...

Már mindent átírtam erre. Mindent.
Kiszedtem a sprite alapú lövést, robbanásokat, orbot és kicseréltem részecske alapúra. Kb. elkezdett úgy kinézni a program, ahogy én azt elképzeltem pár hónapja, csak nem tudtam megvalósítani, ezért volt minden sprite alapú. Aztán ahogy belemélyedtem a ParticleSystem-be, jött a gondolat, hogy mindent lecserélek.
Persze a régi, sprite alapú dolgokat nem töröltem ki véglegesen, mert egy új osztályt hoztam nekik létre UOldShooterGFX néven. Lesz egy ilyen funkció majd a beállításokban, hogy ha valakinek gyengébb gépe van, akkor aktiválni lehet a sprite alapú grafikát a részecske-alapú helyett.

Egyébként lett torkolat- és hajtóműtűz, rengeteg robbanás, füst... Ezeket végülis nem kell lecserélnem, csak a rendszert kell újraírnom, ami kezeli őket. És az Editort sem kell újraírnom, hála a Magasságosnak... :D

Tegnap este is fél 11-kor álltam fel a gép elől, lementem sütni, zuhanyozni, és már eközben kezdtem összerakni fejben, hogy mitől is nem működik jól a dolog. Először arra gondoltam, hogy mégsem olyan jó ez az Andorra. Lehet nem tud 10 körüli effektet kezelni, vagy valami... Hát persze, egyből az engine-t kell hibáztatni, nem pedig magunkat... Persze.

Aztán ahogy lefeküdtem aludni, jóéjt kívántam kedves kis feleségemnek, behunytam a szemem és ... 5 perc alatt összeraktam fejben, hogy mit kúrtam rontottam el. Alig bírtam magammal, hogy éjfél környékén ne rohanjak vissza a géphez és ne írjam meg az egészet egy szuszra. Aztán a kimerültség győzött. :)

Most itt ülök a melóhelyen és pangási indokkal blogolok egyet. Alig várom, hogy hazaérjek...
Még jelentkezek. ;)

2011. december 8., csütörtök

Részecskerendszer

Sikerült végre beüzemelni a nagyon tudományos nevű "részecskerendszert", vagyis a ParticleSystem-et.
Egyszerűbb, ha effekteknek hívom, így még a nálam tudatlanabbak is megértik. :)

Mivel oooolyannyira fantasztikus ez az Andorra2D, hogy majdnem az összes példaprogramja, editorja nem indul, vagy hibás, ezért mit tesz egy öntudatos kóder? Hát persze, hogy ír egy sajátot!

Na mivel én nem vagyok egy pro kóder, ezért először szentségeltem, aztán pánikba estem, és csak aztán gondoltam egyet, hogy hát írok egy sajátot. Azért szerencsére elég könnyen hadra lehetett fogni az Andorrás alapokat, utána nekem már csak meg kell adnom képfájlt, méreteket, színeket, stb. Miután kész egy tetszetős effekt, azt kimentem fájlba és a játékba pedig beolvasom.

Igy lett lecserélve az eddigi kezdetleges, sprite alapú robbanás egy részecske alapúra. Jól is néz ki, ráadásul pikk-pakk módosítom, nem kell spriteokkal vacakolni.

 Igy már tudok csinálni füstölgő hajóroncsokat, mindenféle lézer effekteket, rakéta füstöt, stb. stb.

Kb 2 órája próbálok összehozni egy épkézláb, akadásmentes ingame videót, de valamiért borzalmasan ugrál a framerate...

Na majd még próbálkozom, de most egy alap AI-n dolgozom, bár már egymást kikerülgetik a hajók most is.
Ha már nem lesznek szép ürhajók, akkor legalább szép effektjeim legyenek, nem? :D

2011. december 4., vasárnap

Vissza a gyökerekhez.

Átrágtam magam a dolgon és döntés született:

Magam fogom a grafikát megcsinálni, és olyan lesz, amilyen lesz. :)
A szerkesztőprogramokkal sem fogok ennél a játéknál tovább foglalkozni. Megírok egy 4-5 pályás kis játékot, mindenféle bonyolultabb sztori nélkül. Igazi, régi időket idéző, játéktermi space shooter lesz, egy kicsit modernebb grafikával.
A döntésem azért esett erre, mert ez a "tanulóprogram" lassan túlnő azon, aminek szántam.
Már hat (6) hete megirtam egy olyan változatot, ami egy komplett pálya 4 féle ellenséggel, aszteroidamezővel és a végén főellenséggel. Akkor még mindenféle editor nélkül, pure spagettiben. :)
És eközben azt veszem észre, hogy párhuzamosan növekszik egy szörnyeteg, amivel már többet foglalkozom, mint magával a játékkal. Egy elég komplex rendszer kezd kialakulni, amit egyáltalán nem bánok, mert még 2-3 játékot szeretnék Delphiben és Andorra2D-ben megírni. Szeretnék max 2 hónapokat foglalkozni egy-egy játékkal, és utána továbblépni.

Tehát a jövő héten lefixálom az engine-t és az eredeti "minimálproject" befejezésével fogok foglalkozni.

Már azon vettem észre magam, hogy űrhajók darabokra robbanásával foglalkozom, meg hogy szerkesztőben lehessen megadni, hogy hol milyen fegyvere legyen az űrhajóknak, azok milyen lövedékeket lőjjenek, stb. stb. Szóval nagyon elkanyarodtam az eredeti tervektől és már egy sokkal nagyobb és jobb játékot akartam az egészből csinálni. Lehet később lesz egy Starship Prototype 2 is, ahol ezeket megvalósítom, de 2 héten belül megpróbálom befejezni ezt a kis játékocskát. Remélem az időm is fogja engedni.

Addig is: happy coding! :)