2011. november 30., szerda

A kezdő hibák

Mindig papolok arról, hogy mik a tipikus kezdő hibák, amikbe beleestem az előző játékom készítésénél. Bele is bukott a fejlesztésbe a kis csapatunk. Gondoltam, na, most majd az összes ilyen hibát elkerülöm...
Jelentem: ez nincs így.

Meg kéne számolnom hányszor írtam, hogy a TERVEZÉS nagyon fontos. A lehető legtöbb dolgot meg is tervezem papiron, vagy google docsban, esetleg leírom txt-be. De vannak napok, amikor csak leülök a gép elé, hogy húdejó, ma kódolok vagy 6 órát. Terveket lesz*rom, vagy pedig épp nincs tovább vezetve, hogy mit kéne csinálni, és akkor megnyitom a programot éééés.... szembesülök a salátával, ahova most be kéne építenem az EnemyControllert. A saláta látványától elmegy a kedvem a kódolástól, és ha nincs ami vezet (terv, doksi), akkor hajlamos vagyok elvonulni játszani. Ez történt hétfőn is, kedden is...

De tegnap este már seggberúgtam magam és azt mondtam: ELÉG!
Levonultam a konyhába, fogtam egy A4-es oldalt és leírtam mindent, amit tud a program és az editor. Átgondoltam mihez mi kell még, ahhoz hogy teljesen kész legyek a motorral és a szerkesztő programokkal. Átnézve a rendszereket megállapítottam, hogy nincs is már sok, de persze ez attól is függ, hogy mennyire akarom bonyolulttá, vagy összetetté tenni a játékot.

Tehát ha végzek a dolgommal, akkor... Akkor várnom kell, hogy egy grafikus megjelenjen és elhalmozzon gfx-el... Amire nincs sok esély, ezért elkezdtem Photoshop-ot tanulni... Viszont így, ha én csinálom a grafikákat, akkor semmi értelme, hogy túlbonyolítsam a későbbi pályaszerkesztőt, mert úgy sem tudok látványos dolgokat összehozni, a téglalap és háromszög űrhajókkal meg elég vicces lenne a dolog.

Belegondoltam abba is, hogy lassan a hang és zene is sorra kerül, és nem akarok megtanulni semmilyen zeneszerszámon... :D Szóval ide biztos összelopkodom a dolgokat.

Gondoltam még arra is hogy kiteszek egy Donate gombot, és a beérkező 4 forint 20 fillérből bérelek egy grafikust és/vagy zeneszerzőt, aki alám tesz valamit... Lehet a végén ez lesz, bár ez az egész fejlesztés a tanulásról szól részemről, és ha ehhez az kell, hogy megtanuljam egy alap szinten a Photoshopot, hát akkor az lesz. :)

Egyébként az összeírás alapján ezeken dolgozom most:
- MenuEditor kiegészítés: MapList, ami alapján a menüből nyíló MapSelector-ban ki lehet választani, hogy melyik pályán szeretnénk játszani. Ez most szabadon választható rész lesz, de később természetesen egyik pálya nyitja a másikat.

- EnemyEditor: Fegyver (Bullet) hozzáadása, valamint ennek a szerkesztője. Fegyverek pozicionálása a sprite-on, ergo: honnan lőjje ki a lövedéket. És az enemy méretezést is beépítem.

- BulletEditor: Lövedéklista, amit az EnemyEditor használ. Lövedék paraméterei (textúra vagy effekt, sebesség, sebzés, "firetime", lövedék mérete, stb.

Most már nem írok konkrét időt, hogy mikor érkezem érdemi eredménnyel, lehet már holnap. ;)

2011. november 27., vasárnap

Enemy Editor

Megváltozott az egész enemy kezelés, és módosítás.

Most már egy listában tárolom az ellenfeleket. Igy minden pályához külön-külön tudok csinálni listákat. Itt egy mellékelt kép az egészről. Ezen láthatjátok, hogy felül a lista, be van töltve 4 űrhajó. Rákattintok bármelyikre, alul módosíthatom az értékeit.
Ezt a listát később hozzá tudom kapcsolni akármelyik pályához. Most próbaképpen indítás után ezzel a listával dolgozik a játék. Kicsit még küszködöm az ImageList-el, mert külön kezelném az ellenségek listáját és a játék többi képét egy másik listában. Ezt a két listát kéne összefuttatnom, hogy legyen egy nagy képlistám.
Erre ma már nem maradt idő, így holnap fogom megoldani.

Aztán ha ez kész, akkor az egész heti program a Weapon/Bullet editor, ami szintén egy lista lesz, amit hozzá lehet rendelni mondjuk egy EnemyList-hez. Ezután jön az EnemyController újraírása, amihez kell hozzárendelni az EnemyList-et, és ezt az EnemyControllert kapja meg a Map. Lehet, hogy bonyolultnak hangzik elsőre, de egy nagyon jó kis rendszer ez és tök jól elkülönülnek egymástól a dolgok.

A legnehezebb dologgal nem tudom mikor fogok foglalkozni. Ez pedig a MapEditor... Most vagy az lesz, hogy sima űrcsaták lesznek és az EnemyController alapján jönnek majd ilyen-olyan enemik és azoknak hadán kell átverekednünk magunkat, vagy pedig változatosabb pályák lesznek és oda viszont kellenek tereptárgyak, mittomén, ellenséges bázis, felhő, erdő, stb. Ezek mind rombolhatóak legyenek, de haladjanak a háttérrel... Uhh, belegondolni is kemény, és ráadásul erre is Editor kéne... :D

Az biztos, hogy ez is grafikus függvénye, mert minek írjak meg egy ilyen - számomra még - bonyolult dolgot, ha nincs tartalom, amivel megtölthetem. Akkor inkább maradjon szimpla űrcsata és akkor ezt próbálom olyan tartalommal megtölteni, amit kóddal meg tudok oldani. Különböző robbanások, scriptelt események, stb. Szeretnék egy valódi űrcsatát összehozni, ahol ne csak azt érezze a játékos, hogy megy előre és bután csak nyomja a lövést és ennyi. Érezze úgy, hogy egy apró valaki egy hatalmas csatában két faj között, ahol akkora űrhajók rohangálnak, amit megsebezni sem tud, csak manőverezni tud köztük, azok meg lövik közben egymást... Bahh, bár csak már ott tartanék! :)

2011. november 26., szombat

Fejlemények

Kezdésnek egy rossz hírt közlök:
Zoli magánéleti problémák miatt nem tud a játékkal foglalkozni, így grafikus híján elkezdtem újra keresgélni a neten, hátha van valaki, akit érdekel egy jó kis sci-fi shooter.
Találtam is két olyan srácot, akiknek a munkájától az "omg-wtf-lololol" szavakat hihetetlen sokszor egymás után kiabáltam. :D
Felvettem velük a kapcsolatot, szóval már csak valami pozitív visszajelzést várok tőlük.

Hogy jó hírt is mondjak:
A videó közzététele óta elég szépen megnőtt a látogatottságom, szóval elmondhatom, hogy VANNAK olvasók!

A mai és a holnapi meló az alábbi:
- Enemy editor

A menü editorral már kb kész vagyok, több időt nem igazán akarok rászánni, még kiegészítem majd egy "stringeditorral", ahol is szövegeket tudok pakolni a gombokra. De ez is még várhat.

Holnap jelentkezem az Enemy editor bemutatásával! Nem hinném, hogy videó lesz, lehet csak képekben illusztrálom a dolgot. :)

2011. november 24., csütörtök

Videó + hang! (majd megőrültem a végére... :D )

Negyvenedjére felvett, borzalmas hangommal alászinkronolt, akadós videó, a készülő játékomról.
Később ahogy fejlődik a program, mindig jelentkezek egy-egy kisebb videóval, lehetőleg már jobb minőséggel és összeszedettebb szöveggel. :)

2011. november 23., szerda

Videó videó hátán - hamarosan

Ma is szerettem volna egy videót feltölteni a "játékról" editortól a lövöldözésig, de amíg manókám skype-ol szüleivel, addig nem fog menni. Ha lemegy fürdeni, vagy abbahagyja, akkor lehet jövök még ma egy bónusszal, amiben hihhhetetlen kommenteléssel ellátott videót fogok felrakni.

Mivel ma korán szeretnék lefeküdni, ezért lehet holnapra csúszik az egész.

Ha így haladok az Editorral, lehet a játék után kicsit gatyába rántom és ezt is felrakom, mint "game engine". Ha úgy nézzük, pár kattintással lehet csinálni egy akármilyen shootert. Meg azért is jó ez az egész, mert még tervezek 1-2 játékot Andorrában, és csak utána lépnék tovább C++/C# irányba. Kikérek majd sok tanácsot, meg átnézem a "trendeket". Mindegyik mellett szól valami. Én imádom a pure kódot, ezért legszivesebben C++ -t tanulnék, de valahol időpazarlásnak is tartom újra feltalálni a spanyolviaszt vele. Néha motiváltnak érzem magam arra, hogy nulláról írjak mindent, de olyankor belegondolok, hogy itt is milyen jó, hogy egy grafikus engine dolgozik alám, és ha úgy nézzük csak scriptelgetnem kell.
Jójó, jön a válasz, hogy ott is vannak mindenféle engine-ek, de mittomén, vonz az, hogy valamit nulláról írjak. Ilyenkor mondta mindig a régi progtanárom, hogy akkor üljünk le ASM elé és hajrá. :)

Lehet ez a téma is megérne egy blogbejegyzést majd, de inkább a Shooter fejlesztéséről kéne többet írnom, viszont minden nap nem tudom azt leírni, hogy "oké, ma megcsináltam a forgatást a sprite-hoz", meg "király, ma be tudtam olvasni az editorban gyártott menüt a játékban", stb.

Ezért gondoltam azt, hogy kommentelt videókkal fogok jelentkezni időről-időre, ahol bemutatom, hogy is állok a fejlesztésben.

TÁRSADALMI KÖZLEMÉNY!
Még mindig keresnék egy grafikust/designert, aki besegítene Zolinak, mert lassan már ott tartok, hogy nagyüzemben kéne gyártani a cumókat a játékhoz. Egy kis referenciát azért kérnék, mittudomén, ha már dolgozott valamilyen garázsjáték készítésében, vagy hobbi szinten rajzolgat és mutat 5-10 vázlatot, ilyesmi. :)

Na, ha minden jól megy, még jelentkezek egy videóval! Ha nem, akkor majd holnap! ;)

2011. november 21., hétfő

Egy kis prezentáció

Sikerült végre normális videocapture-t csinálnom az Editor "Main Menu Editor" részéről.
Hang nélkül ugyan, de bemutatom, milyen egyszerűen össze lehet dobni a játék alá egy menüt.

Mivel, mint már leírtam párszor, volt egy működőképes, spagettikódos menüm a játék alatt, ami működött. Most, hogy megírtam alá az editort, teljesen át kell írnom a menü kezelését, mert sokkal kevesebből, és spagettimentesen meg lehet már írni a lementett menü használatát. Irok rá egy egérkezelést holnap és ennyi. :) Ja, pláne, hogy saját osztályaimnak még sosem csináltam egérkezelést... OnMouseUp, OnMouseDown, OnMouseMove van a delphi összes komponenséhez, de saját komponensekhez, ráadásul némelyik Andorrás szülővel... Na ez egy újabb kellemes feladvány lesz. :)

Addig is lessétek meg a videót, nem túl hosszú, de legalább annál rosszabb a minőség. :D
Majd lehet bővebben is bemutatom a többi editor részt, hanggal, ha lesz rá igény. ;)

2011. november 20., vasárnap

Elmaradt hétvégi post

Igen, tudom, a hétvégére ígértem egy összefoglalót az editorról...
Sajnos az még várat magára, mert igaz, hogy folyamatosan fejlődik, de azért nem olyan ütemben, ahogy kellene.
Tegnap is leültem, hogy megoldjam a sprite-ok forgatását editorban, és azon kaptam magam, hogy eltelt 2 óra és nem sikerült megcsinálni... A Menü editorba kell ez, mert nagyon jó és kényelmes, hogy komplett menüt össze tudok dobni pár kattintással és egérrel tudom berendezni az egészet, nem kell kódban.

A működést felveszem ma valami programmal és feltöltöm youtube-ra. Tessék kivárni, mert jól néz ki. :)

Grafikusom, Zoli is tevékenykedik, be is rakok egy űrhajó-conceptet tőle, bár ez még csak a tervezés eleje.

2011. november 17., csütörtök

Hogyan is néz ki az Enemy és a hozzá tartozó editor

A szokásos 5 óra alvás után megint úgy érzem magam, mint a mosott sz*r. De nem a programozás miatt alszom ennyit, hanem mert van még más dolgom is... Most lefekszem fél 10-kor, holnap meg nyomom este 11-ig, vagy éjfélig, óje!


A piros részt csináltam ma, mert mint előző bejegyzésben kifejtettem, hát PERSZE, hogy a végétől kezdtem az Editor írását, és előbb volt meg a map editor meg az enemy controller szerkesztője, minthogy az enemit szerkeszthettem volna. Az enemy-nek meg hát kell lövedék is, meg az a player-nek is kell és hát ezt se kódból csináljam már, mint ahogy most van, hanem valami jó kis listából húzza be magának.
Ez a terv nem fedi a valóságot egyébként, mert a Bullet-nek van egy listája (BulletList), amiben az összes lövedék helyet foglal, valamint az enemy-nek is lesz holnap már egy teljes listája és nem külön kis fájlokban lesznek, mint most.

Kezdem kinőni ezeket a kezdő hibákat, és most már belém égnek az alapok.
Kezd egyre mélyebbre fúródni bennem egy nagyon fontos mondat: TERVEZZ, NYOMORULT!!!
Ez főleg az elmúlt napokban jött elő sokszor, az editor írásánál. Rengeteg időt meg lehet úgy spórolni, ha a fentebb látható terveket csinál az ember, aztán fogja magát, leül és pikk-pakk lekódolja a dolgot, mert csak tervet kell követni, és nem akkor kell kitalálni...

Holnap hosszabb bejegyzéssel jelentkezem, összefoglalva az Editort, és a hétvégi melót ecsetelendő. :)

2011. november 15., kedd

Editor ezerrel

Ezen a héten az editorral ügyködök, amennyit csak lehet, mert tudom hogy a belé fektetett idő többszörösen is megtérül. Tegnap az egész Enemy osztályomat kibeleztem, lecsupaszítottam. Kódból generáltam 4 féle ellenséget, plusz főellenséget, de hát ez igy nagyon trágyán nézett ki. Ideje volt, hogy editorból csinálhassak enemy-ket. Az enemy-t elmentem fájlba, és onnan olvashatom be őket bármikor, bármikor szerkeszthetem, stb.
Ez igy ezerszer jobb, mint kódban keresgetni, hogy jajj, hol is állítom a sebességét, meg hogy milyen animációja legyen, ha éppen kidurran a kereke... Beírok mindent, elmentem, játékban tesztelNÉM, de mivel átírtam az enemy-ket, és azokat meg az EnemyController babusgatja, aminek az editorját most át kell írnom, hogy befogadhassa fájlból az új enemy-ket ... zzzz... :) Miért fordítva kezdek el mindent? Nem hogy előbb csináltam volna az enemy editort, aztán a controllert, neeeem... Bár ez sem lesz nehéz, de ez a holnapi nap feladata.

Kicsit még az editorokról:
Ha hasonlóan kezdő játékfejlesztők vagytok, mint jómagam, akkor ti is gondoltatok már rá, hogy mennyivel egyszerűbb lenne editorból csinálni mindent. Vagy ha láttatok már profikat, hogy milyen brutális pályaszerkesztőjük, texture szerkesztőjük, modellezőjük, stb. stb. van (amit nagyrészt ők írnak), akkor pár kép után láthattátok annak komplexitását is.

Két példa:
God Of War 3
Crysis

Itt arra akarok rávilágítani, hogy én speciel el sem tudtam képzelni, hogy egy editort hogyan írjak meg. Hogy álljak neki, mit tudjon, mi kell, stb. Elkezdtem csinálni a játékot, működött minden, kódból, de bővíthetősége katasztrófális volt. Most azt veszem észre, hogy 2:1 arányban foglalkozom az editorral. Jah és úgy, hogy per pillanat látványra kevesebbet tud a játék, mint az elején. :) De amint teljesen kész van az editor, pikk-pakk be tudok majd mindent dobálni. Gombokat, ellenségeket, fegyvereket, effekteket, stb.

Tehát egy újabb tanulság: - mindig csinálj Editort!
Főleg, ha komplexebb játékot szeretnél. Kicsinél természetesen felesleges, mert csak az idő megy el rá, de mivel hosszabb távra tervezek ennél a játéknál, ezért szükségesnek érzem az editorok készítését.

Még egy kis segítség, hogy hogyan fogj bele:
Vezesd le itt is papíron, hogy mit szeretnél, mit tudjon az editor. Utána a legegyszerűbb, ha típusos fájlt használsz. Megalkotod a különböző fileformátumokat, és próbálod univerzálissá tenni az eljárásokat. Én pl ugyanazt az animációkezelést és sprite osztályt tudom használni az editorban is, és a játékban is. Tehát amit lehet használj fel újra. A későbbiekben is bármikor újrahasznosíthatod új játékoknál, valamint rengeteget lehet így fejlődni. Ha úgy nézzük, párhuzamosan több programot fejlesztesz, és véletlenül sem lesz olyan, hogy ráunsz 1-2 hónap után a fejlesztésbe. Valamint hihetetlen örömet okoz, ha működik a dolog. :)
Erről az editorozásról írok később egy bővebbet, valamint az én terveimet is közzéteszem, hogyan is álltam neki.

A lényeg, hogy ne féljetek tőle! Dobjatok be egy nagy adag kávét, füles a fejre, zenét csutkára és LET'S SZÓÓÓSZ! :D

2011. november 13., vasárnap

Vasárnap : sikeres hét

Szervusztok-szervusztok, kedves nem létező olvasóim!

Najó, páran már talán vagytok, de így legalább nem tűnök skizofrénnek miközben T/2 -ben írok blogot. :D

Két napi pihenő után nehezen indult el a kódolás, de legalább fejben összeraktam mit-hogyan kellene csinálni. Már 11-kor el akartam kezdeni a szószolást, el is indítottam a Delphi-t, de csak délután 4-től sikerült igazából kódolni. Az a fránya Left 4 Dead a barátokkal... :)
Utána bedobtam egy kis élénkítő italocskát, fejemre helyeztem a fülest, és feltekertem a metál hangerejét.

Sikerült megalkotni a .map fájlformátumomat, amt már Editorból szerkeszthetek és a játék nagyon jól beolvassa. Ez egy típusos fájl lett, ami most még csak a pálya hátterét és enemy AI-t tartalmaz. Enemy AI pedig annyi, hogy melyik ellenséges űrhajót dobálja a pályára. Bővül ez majd még szépen, mert a pályaelemek elhelyezkedését és az ellenséges érkezését és viselkedését fogja tárolni.

A menübe beraktam a pályaválasztás lehetőségét is, és gyorsan összedobtam két mappot (baromi nehéz volt kiválasztani két különböző hátteret és űrhajó típust... :D ), szóval most már különböző univerzumokban és tér-időben száguldozva tudom írtani az ellenséget... lol. :D

Viszont van két kis bug, ami totál nem tudom mitől lehet. Az egyik előjött Hooch barátomnak is, és a feleségemnek is. Egyszer csak ha lőnek, nem mozog a lövedék, csak áll lent. De ha hozzáér az enemy, persze robban, meg működik minden, egyszerűen csak nem mozognak. Wtf?
Másik hiba a menü és játék között ugrálva tapasztalható MÉG MINDIG... Belépek párszor ide-oda, aztán elkezdek játszani, lövök mint a hülye és a lövedék a SEMMI KÖZEPÉN felrobban, mintha nekimenne valaminek. Közben nincs ott semmi. A debug ablak is megmondja, erre való, hisz mutatja, hogy semmivel nincs több sprite, mint amennyinek kell lennie, ergo nincs-ott-semmi, mégis felrobban a lövedékem...

Mielőtt elburjánzana a programon a bugok hada, ezeket ki kéne gyomlálnom. :)
Jövő héten bővítem tovább a map recordom és próbálok valami értelmes AI-t összehozni, meg az editorban szerkeszthetővé tenni.

Azért jól haladok, bár még nagyon messze a vége. :)

2011. november 10., csütörtök

Csütörtök 2/2

Mint ígértem, itt az esti bejegyzés is.

Van már valamiféle menüm, igen, teljesen lopott képekből, de most még tök mindegy, csak valamim legyen.

A menü gombjaira a szöveget majd a kód teszi rá, így nem kell plussz gombokat gyártanom, csak van egy alap, üres gombom, arra rátolom a szöveget és kész.

Végre van egy totál (?) bugmentes verzióm és az ingame-ben sincs semmi gáz, minden tisztán működik.
Erről is mutatok egy screenshotot. Még nem túl hú, meg há, de azért
mégis az én gyermekem. :) Futás közben mondjuk ezerszer jobban néz ki a háttér, meg az elzúgó csillagok.

És ebben a pillanatban eldöntöttem, hogy regisztrálom a programot a jf.hu-ra. :) Most! :D Mivel úgy is a fejlesztés menete a lényeg, ezért még így nagyjából az elején érdemes, és nem egy kész játékot szeretnék felrakni, mert én is jobban szeretem ott az olyan munkákat, amiken lehet látni, ahogy napról-napra fejlődnek. Ezek mindig motiválnak engem is a további fejlesztésre.

Péntek és szombat baráti összeröffenéssel és pihenéssel/edzéssel/kajálással fog eltelni. Aztán vasárnap folytatom a harcot a kódsor ellen! ;)

Csütörtök : Na végre! :)

Hooch barátomtól megkaptam, hogy nagyon jó, hogy mostanában minden nap blogolok, de nagyon keveset írok. Őszintén megvallva, mikor este 10 és 11 között abbahagyom, már majdnem kizuhanok a székből olyan fáradt vagyok, örülök, ha gyorsan összesíteni tudom fejben mi volt aznap. Aztán meg még futok le kaját csinálni, mert a testépítő életmód délutánonként kicsit hanyagabbul megy a programozás miatt. :D
Úgy telnek el órák, hogy bele vagyok épülve a kódba, zúg a metál és csak kódolok, és már csak azt veszem észre, hogy nem ettem 3 órája és nincs sütve csirkemell...

Hogy a fejlesztésről is legyen szó végre: SIKERÜLT!
Kiküszöböltem a kedd óta tartó hibát. A megoldás csak annyi volt, hogy visszaraktam a main-be egy-két olyan osztály példányosítását, amit a game résznél próbáltam megcsinálni. Gondoltam minek nekem már a menünél ütközésteszter, meg ilyesmi. De hát nem tetszett valamiért, hogy egyfolytában megkreálom, elpusztítom... Igy maradt az eddig bevált módszer, hogy paraméterként átadom a game-nek, azt puszi.

Nagyon jól üríti a memóriát is ugrálva a játék és a menü között. A menü is leginkább a saját dolgait használja és a game rész is. A menü igy 17 megaramot eszik, a game meg 38-at.  Ez azért előrelépés a 70-hez képest, vagy már mennyinél tartottam. :D

Itt kell megemlíteni, hogy minden fejlesztés elejétől használjatok debugot. Főleg valami egyénre szabottat. Én csináltam egy külön formot a játék formja mellé, ahova kiírja a használt memóriát, processzoridőt, meg FPS-t. Látom hány sprite van a képernyőn, player koordináták, ütközés, stb. stb.
Nagyon megéri a befektetett melót, mert volt olyan, hogy nem láttam a képernyőn a sprite-ot, amit megkreáltam. Azt hihetné az ember, hogy le sem lett gyártva, és az ember totál máshol keresné a hibát, de mivel a spriteszámláló azt mutatta, hogy igen, ott van, ezért sejthető volt, hogy a texturázással van valami probléma.

Egyszóval tessék használni debugot! :D

Később még jelentkezek a mai nap folyamán. :)

2011. november 9., szerda

Szerda : brühühühü

Ma edzés volt, szóval csak utána pár órát tudtam a programmal foglalkozni.

Az eredmény:

ROHADJÁL MEG! :D

Még mindig szenvedek a menü-játék-menü-játék ugrálással.
Egyszercsak kidobja a hibát és texturára hivatkozik, tehát biztos valamelyik sprite-ot nem semmisítem meg, vagy van egy olyan osztályom, ami csinál valamilyen sprite-ot és ott, a saját destroy-ában kellene megsemmisítenem az a bizonyos spriteot...

Na mindegy, sok időt elvett az életemből. A lényeg az, hogy megy, max nem ugrálok egyelőre össze-vissza a menü és a játék között, ennyi. :D
Majd később visszatérek rá...

2011. november 8., kedd

Kedd : Menü és játék együtt

Szép estét! :D
Újabb kimerítő kódoláshullám után jelentkezek.
Az ImageList editor nagyon jól működik, már használatban is van, viszont nem hogy tömörítené a képeket, hogy még kisebb helyet foglaljanak, vagy ugyanannyit, hanem a 400 kbyte-os hátterem 9000 (KILENCEZER) kbyte-ot foglal a listában. Hát ez igy nagyon érdekes... :D
Lehet a butus bmp-ként kezeli a listán belül, vagy úgy tölti  be magát. Viszont igy már rejtve vannak a képek és nem kell spagettikódból kreálni ImageList-eket, hanem csak simán ImageList.LoadFromFile(file : string).

Ezután ma nekifogtam a menü hegesztésének és pikkpakk meg is lett. Berakhatok annyi gombot amennyit akarok, feliratot meg majd külön konstansból ráhúzza a gombra. Az hogy milyen animációja legyen, meg hogy villogjon sötétben, azt majd megírom, ha lesz normális dizájnterv, meg ilyesmi. Funkcionálisan működik, ez a lényeg, a többi már csak apróság.

Sikerült összekapcsolni az egészet úgy hogy a main-t tehermentesítettem, tehát semmi fölöslegeset nem kreál meg helyben. Az elején csinál egy menüt, aztán ha nyomok egy új játékot, akkor a menü megszünik és helyette a Game objektum jön létre, ami mindent példányosít, amire csak szüksége van. EnemyController, Background, Player, ütközésdetektáló, stb. stb.
A Background majd külön egy TMap -ban lesz benne, de még nem akarom ezt a részt tovább bonyolítani, amig tökéletesen nem működik ez a rész.

Egyetlen bug történt a mai nap folyamán és megcsinálnám még, de már 22 óra és megint 5-kor kelek... Tehát ha elindul a program, bejön szépen a menü, aztán elinditom menüből játékot, ez is megy szépen. Aztán kilépek a menübe. Tökéletes. De amint újra be akarnék lépni a menübe, már hibával elszáll a drága.

Ha nem lennék ilyen baromi éhes, álmos és nem kéne 5-kor kelnem, most lezúznám a nyomorultat, de ez majd a holnapi edzés utánra marad... :)

Train natural and happy coding!
Ez az új jelszópáros. :D
Külön-külön mindig is életfilozófia volt, de még sosem írtam le együtt... Érdekes. :)

2011. november 7., hétfő

Hétfő: minden kezdet nehéz - de azért sikeres :)

Ma meló után egyből belecsaptam a lecsóba, és elkezdtem írni a menüt. Igen ám, de egyből megláttam az én szép kis Pictures osztályomat. Na mondom, barátocskám, veled lesz ma dolgom, úgy érzem. :)

Úgy is már ideje írogatni párhuzamosan azt az Editort is a játékhoz, épp itt volt az ideje, hogy valami tartalmassal bővítsem (elkezdjem?) azt a részt is. Mivel a menüben elég csak pár gombot, meg egy hátteret megjelenítenem, gondoltam szétdarabolom a Pictures.ImageList-et. Eddig az volt a koncepció, hogy egyszerre mindent belezúdítok az ImageList-be, aztán épp ami kellett, azt használtam. Cserébe persze rengeteg fölös memóriát foglalt a drága. Itt volt az ideje, hogy darabokra szedjem, tehát lesz a menünek külön listája, és mappokra bontva is külön-külön listák. Mondjuk ez igy utólag evidensnek hangzik, de elsőre mégsem volt az. :D

Ahogy elkezdtem szétszedni, szembesültem azzal, hogy a drága Andorra ImageList-jének lehet komplett tartalmat is adni fájlból! Nem kell kódban hozzáadogatni, meg elvenni, meg külön eljárásokban meghívogatni, hogy ehhez a pályához ez, a másikhoz az, stb. stb.
Igy tehát elkezdtem írni az Editorban egy ImageList buheráló részt. Gombnyomásra van új listám, valamint be tudok tölteni már elmentett listákat, meg menteni tudok. Tudok egyesével hozzáadni képeket, ráadásul shortcut-ként láthatom a képét a fájlból betöltendő képnek, vagy pedig ha a ListView-ban rákattintok a kép nevére, akkor az ImageList-ben található képet láthatom. Teljesen jó, igaz, elment vele az egész délutánom, meg estém, de megérte. :)

Holnap befejezem ezt a részt is. Meg lehet adni, hogy mi legyen a transparent color, milyen méretű kockákat vágjon ki a képből (ez az animált spriteoknál fontos).

Igy már simán tudok listákat gyártani és még egyszerűbb lett/lesz az élet!

Ha minden jól megy, holnap már tényleg a menü lesz terítéken. :)
Azt úgy érzem pikk-pakk megcsinálom.

2011. november 6., vasárnap

Kisebb átszervezés!

Kezd salátává változni a kód, szóval nem is egy ütős demó összerakásán fáradozok, hanem a mostani rendszereket szervezem és írom újra.
Rakok egy menüt az egész alá, mert igy most a loop-ban megcsinálja a pályát, meg a playert, meg mindent és így elég borzalmas.

Magyarán a techdemót elkezdem átalakítani játékká.

A jövő hét tehát ezekből fog állni:
- Menü és a menüpontok létrehozása és a funkciók megírása (új játék, beállítások, kilépés).
Az új játék résznél egy pályaválasztó almenüt szeretnék, tehát az egész pálya részt, esemény- és enemy-kezelést át kell raknom egy .map fájlba, vagy valami ilyesmi kell.
- Optimalizálás minden téren, bár ha a fentebbi dolgokat megírom, az már egyfajta optimalizálás, mert nem loop-ból csinálok mindent...

Ez a két legfontosabb dolog, de ha ezekkel megvagyok, és marad idő, akkor a következőkre is próbálok időt szánni:
- particle system fejlesztése (robbanások, sérülések)
- darabokra tudjanak robbanni az űrhajók.

Ez a kettő megdobná az egész külcsínyt. :)

Jövő héten is minden nap lesz post, amikor lesz időm a fejlesztésre! Happy coding! :)

2011. november 3., csütörtök

Parallax scrolling

Ó igen! Végre a player mozgásától függően tolódnak az objektumok!
Végülis nem volt egy vészes dolog, mert a Me Smash You-ban már csináltunk ilyet, és ott sokkal jobban is néz ki a sok layeres háttér miatt, de most már legalább olyan Tyrian-os a mozgás és a pályaelemek (ellenségek, csillagok, dobott cuccok, effektek) scrollozása.

Ez volt a mai meló és a fegyverzet szintlépését fejeztem be.

Szeretem az olyan napokat, amikor minden 100%-osan úgy sikerül, ahogy elterveztem. :)

Hétvégén feldobom ide is az új demót, ami szintén zenére lesz szinkronizálva. Lesz már valamiféle alap GUI, meg egy-két saját grafika, nem csak top-down közlekedő ellenségek, és lesz boss fight. :)

No meg regisztrálom most már a programot a játékfejlesztés.hu -ra is.
Izgulok. Úgy is leszólják a kis programom,  brühühüh... De sebaj, ettől leszek csak feltüzelve, hogy még jobbá tegyem! Juhhheeeyyyy! :D

2011. november 2., szerda

Követős orb -> xp -> Weapon Upgrade

Ma is fejlődött kicsit a program. Miután elpusztítunk egy ellenséges objektumot, legyen az torony, űrhajó, bármi, akkor most már xp orbot is dobnak, nem csak pontot érő gyémántot. Az orbokat külön nem kell gyűjtögetni, mert bizonyos idő után automatikusan elkezd száguldani a játékos felé.

Bizonyos mennyiségű orb után pedig fegyverünk szintet lép és más animációval lövünk, valamint más sebességgel, sebzéssel, stb.

Elég rövidke fejlesztés volt, de ennyi fért most bele.

Holnap edzés után befejezem ezt a részt, és léphetünk tovább a következő lépcsőre.
Csak szépen, fokozatosan... :)