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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2192
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Construct Engine - Első lépések 2011.05.14 20:50


Mint minden egyes belekezdett projekt életében, eljön a nap, mikor játékunkhoz egy motort kell írnunk, és egy motor megírásához nem csak tudás kell, hanem kitartás, megfelelő inspiráció is. Ha időnk nagyon szűkös, kénytelenek vagyunk non-commercial (a készített játék nem eladható), vagy ingyenes engine után néznünk. Köztük 2D-s és 3D-s engine-ek zöme található, de kezdőknek általában egy 2D-s motorral érdemes kezdeniük. Kategórián belül fontos, hogy elképzeléseinknek megfelelő motort válasszunk, nosza, turkáljunk bele az ajándék ló szájába. Ha egy arcade, vagy könnyebb stílusú játékot akarunk készíteni, sokaknak ajánlom a Construct Engine használatát, de mielőtt belefognátok a játékok sorozatgyártásába, érdemes leszögeznünk néhány pontot ezzel kapcsolatban, mondjuk... kezdhetnénk az alapokkal.

Figyelem! A példaprogramok, és a cikk teljes egészében a Construct Engine Office Black 2007 'témájában' készült!

Maga a játékmotor a következő linken tölthető le, először is elemezzük, mivel van dolgunk.

Construct Engine Letöltése

A fájl hál' istennek nem nyom többet 15 MB-nál, így ha lassú internetkapcsolat áll a rendelkezésünkre, akkor sem kell szégyenkeznünk, 10 percek alatt lejön.

Értelemszerű telepítés után neki is kezdhetünk a játékmotor kivesézésének, hiszen a cikk ezért íródott. Megnyitás során bejön a program, és a következő képernyőt láthatjuk magunk előtt:




(Ez a kép Office 2007 "Black" témában készült)
Eme ábrán megtekinthetitek, mi, hol található.

Kezdjünk hát bele legelső programunkba a Construct Engine-el!

A fájl menü megnyitása után haladjunk a "New" sávra, amelyen belül három további sávot találhatunk:

- New Application (Új alkalmazás)
- New Direct-X Game (Új Direct-X játék)
- New Template/Example (Új példaprogram)


Most pedig elmagyarázom, hogy mi a különbség ezen pontok között. Az "új alkalmazás"-al lehetőségünk van egyszerű programokat készíteni, vegyük példának egy képernyőmentő alkalmazást, egy képnézegetőt, zenelejátszót, chat programot, és még sok minden mást. Mivel az Engine nem valami stabil, nem biztos, hogy ezen ponton tett próbálkozásaink sikeresek lesznek még akkor is, ha a kód, és minden hibátlan, mert sajnos a motor nem, tele van bugokkal. :( Ezeket vegyük csak úgy példának, ne bízzuk el magunkat. Játékok fejlesztésére ez a módszer nem megfelelő, mert sokszor fagy, akadozik, nincsenek játékobjektumok, (lásd lent) vagy (már előfordult) hogy újraindítja a gépet, szóval ez inkább könnyebb, egyszerűbb programok fejlesztéséhez ajánlott.

A második lehetőség az "Új Direct-X játék", ami kifejezetten kedvező a számunkra, mivel játékot akarunk fejleszteni, nemde? Ez a Direct-X9-es bő lehetőségeivel él, úgyhogy a koncepciója egyértelmű: Nagyobb, összetettebb játékok futtatására is alkalmas. Nem jönnek fel azok a felsorolt hibák, amit az előző pontban szóvá tettem az új alkalmazásoknál.
Hibája persze ennek is van, néhol érdekes event bugokra (később említést teszek róla), illetve script hibákra lehet számítani, sőt! Van, mikor egy jól felépített feladatsorból itt is pillanatok alatt tud egy nagyszerű bugot, hibát kreálni, ízlése szerint. Fontos, hogy megjegyezzük, hogy miután ezzel elkészítettük nagy (vagy kicsi) játékunkat, mind fejlesztői (tesztelői), mind felhasználói (játékos) futtatásához elengedhetetlen a legújabb Direct-X Runtime Application beszerzése, vagy különben nem indul el a program.

Harmadik, egyben utolsó lehetőségünk, az "Új példaprogram" előhívása, amely mondhatni, nem is egy külön pont, hanem mondjuk úgy, egy példaprogram adatbázis. Segítségével könnyedén betölthetjük mások példaprogramjait, illetve mi is tudunk kis archívumunkhoz adni egy-két icipici apróságot, ha már félprofi szinten értünk az engine kezeléséhez.



Mivel ismerkedünk a programmal, és az alapokat tanuljuk, kattintsunk a "New Application" (Új Alkalmazás) sávra! Ezután a jobb felső sarokban válasszuk ki, (mint elkezdett projektnél) a fő alkalmazás ikont, ami a tulajdonságok panelre visz minket!



Ennek kiválasztása után a következő fajta panel jelenik meg szerkesztőnk bal oldalán:



A program 640x480-as ablakméretet adja alkalmazásunknak alapul, de ez tetszőlegesen módosítható bármilyen méretre a Tulajdonságok panelen. Viszont ajánlom mindenkinek hogy ehhez a mérethez kösse programját, mivel nem minden felhasználónak van ugyanolyan felbontású képernyője, így a programot felhasználó alanyt (ne adj isten a fejlesztőnek) igencsak zavarni fogja az, hogy nem látja a teljes programablakot. Persze ugyanitt beállítható a Direct-X, vagy a szoftveres támogatás, az FPS (Frame Per Second) korlát, megadhatod a szoftver készítőjének nevét, e mellett magának a készített programnak a nevét, többjátékos, vagy csak egyjátékos esetében a billentyűzetkiosztást. Ezen a menüponton átláthatjuk a 'Családokat' és az 'Atribútumokat', amelyek majd később kerülnek megemlítésre, mert első programunk elkészítéséhez nem feltétlenül lesz szükségünk rá, sőt, talán a közeljövőben sem.

Most kattintsunk újra a jobb felső sarokban látható "Layout 1"-es ikonra, amely az adott szoba szerkesztőjét hozza be. Nyomjuk le egerünk jobb egérgombját, és egy legördülő menü fogad minket, mindenféle gombokkal, de nekünk csak egy kell a sok közül:



Válasszuk ki a "Insert an object" (Objektum beszúrása) pontot. Most egy felugró ablak állja utunkat, bár igényesen ki van alakítva szerintem, mert az objektumok az adott feladatok elvégzésének csoportjába vannak sorolva, mint például a rendszer, amiben a 'Window' (ablak), Sys Info, Path, és egyéb objektumokat találhatjuk meg. Emellett még ott vannak a kép, (Sprite, TileBackground, és egyebek - bár ez a csoport csak Direct-X játék alatt jelenik meg) és hangobjektumok, (Audió konvertáló, XAudio2, MOD, ID2, stb is megtalálható) de erről a következő cikkemben beszélek.

Most hajtsuk végre a következőket a felugró ablakban:

- Válasszuk ki a "System" névre keresztelt csoportot.
- Azon belül a 'Window' ikont.


A 'window' automatikusan hozzáadódik a programunk éppen aktuális 'szobájához'. Fontos, és kötelező, hogy mindegyik 'szobát' a "Window" objektum beszúrásával kezdjük, egyrészt azért, mert később ennek (persze ha továbbfejlesztjük projektünket) fontos szerepe lesz, másrészt elengedhetetlen, ha a program tesztelése közben ki kívánunk lépni a programból, egy egyszerű egérkattintással.

Ha ezeket a feladatokat jól elvégeztük, már van egy működő programunk, mindenféle parasztvakítás, és extra nélkül, pucéron, amit futtatni is tudunk, csak az alábbi pontokat kell véghez vinnünk:

- A füleknél menjünk rá a "Projekt" menüre.
- Ismét kattintsunk az alatta lévő menüben a "Run all" kékképernyős ikonnal ellátott gombra.
- A program compilál, számol, és...




KÉSZEN VAN A CSUPASZ PÉLDAPROGRAMUNK

Persze ezt a kis példaprogramot bővíthetjük még plusz lehetőségekkel, objektumokkal, eseményekkel, illetve betölthetünk egy másik példaprogramot, amely kicsit velősebb. de fejlesszük kicsit még azt a programot.

Saját készítésű szövegsokszorosító:

Gondolom ez a program elsőre morbidnak, és nehéznek tűnik, pedig nem az. Elkészítése pofonegyszerű, gyors, és bugok nélkül megvan az egész 2 perc alatt.
Elkészítéséhez először is szükségünk van az előbb leírt, és meggyártott csupasz példaprogramra, némi angoltudásra, és egy lapra, vagy ha jó a (emberi, biológiai értelemben vett) memóriánk, akkor még az se kell.

A program elkészítéséhez az imént leírt módszerrel tegyük meg az alábbi lépéseket:

- A most felugró objektumválasztó ablakban menjünk a 'Controls' csoportba, és válasszuk ki a 'Button' objektumot. Helyezzük el egy tetszőleges pontra a szobánkban, én a bal alsó sarokba, (Objektumra kattintva, a tulajdonságok panelen, X=16, Y=434) raktam el a gombot, hogy könnyen elérhető legyen majd a számomra.

- Még egyszer ismételjük meg ezt a műveletet, de most a 'Graphics' csoportba haladjon utunk, és válasszuk ki, majd helyezzük el a képernyő középpontjába (a program felbontásának a felébe, PL: 640x480:2 = 320x240). Miután ezzel megvagyunk, javasolt, hogy az alap sablonszöveget, az objektumra kattintva, majd a 'Propeties' menüben, a 'Text' sornak jobb felére írjunk valami nekünk tetsző szöveget, én például a "Majom" szót fogom használni, majomtenyésztés céljából... :)

- Miután ezzel megvagyunk, menjünk a 'Szerkesztő fülek', 'Event Sheet Editor' című menüpontjába, majd jobb klikkel, nyomjunk rá az 'Insert Event' elnevezésű gombra.

- Itt válasszuk ki a 'Button' objektumot, ezek után előttünk kondíciók fognak megjelenni, szinte ugyanúgy, mint az előbb az objektumok kiválasztásakor. Ezután válasszuk ki azt a kondíciót, hogy "On button clicked". Ha jól végeztük el a munkát, egy kis csoportféleség fog megjelenni a szerkesztő ablakban. Ezek után helyezzünk be egy akciót, ('+ New Action' a csoport mellett) és mivel ez egy szövegsokszorosító, vagy-mi-a-szösz, válasszuk ki a 'System' objektumot, majd a 'Create' csoportot, majd a 'Create Object' akciót. Itt egy újabb ablakkal találkozunk, ahol különböző kitöltendő sorokkal állunk szemben. Kreálni való objektumnak válasszuk ki a 'Text'-et, majd (X-koordináta:random(x-ablakméret), random(y-ablakméret)) adjuk meg. Ez, a program nyelvére lefordítva pontosan azt jelenti, hogy ha a felhasználó rákattint a mi általunk definiált gombra, akkor sokszorosítsa meg a szövegünket a képernyőn, amit beírtunk, véletlenszerűen. (Persze program keretein belül, nem fogja az asztalunkra kidobálni az objektumokat.:))

- Ezután teszteljük a programot, és jó pár nyomkodás után, már saját majomfarmot nyithatunk, persze virtuálisan:




Készen is volna a saját készítésű szövegsokszorosítónk. (Más néven majomtenyésztőnk. ;))

Epilógus

Most véget ért a cikksorozat első része, találkozunk a következő részben, amelyben kicsit mélyebbre ásunk, és tövéről hegyéig beszélünk az objektumokról, és arról, hogy mire valók, hogyan kell bánni velük, mivel kell etetni őket, egyszóval, mindent megtárgyalunk majd, ami az objektumokkal kapcsolatos, és fontos is.

Azért persze elnézést szeretnék kérni, hogy a leírás ilyen "szájbarágós" lett, de ha egy ultraamatőrnek kéne elmagyaráznom az engine használatát, így kezdenék bele. A cikksorozat növekedésével persze az olvasó tudása is bővül, és nem kell majd olyan részletesen, és óvodásoknak szóló módon leírnom a dolgokat, mint az imént, mivel ezeket a dolgokat már alapból tudni fogja.

Nos, most itt érzékeny búcsút veszek az olvasótól, és a következő cikkemig a Construct Engine-el kapcsolatban az ihlet, és az erő legyen veletek!


4Bit


Figyelem! A cikk nyomokban mogyorót tartalmazhat! :D

Értékelés: 0

Új hozzászólás
Tibsy          2011.08.05 19:40
egy forrás kódnak jobban örültem volna !
Kalapacs          2011.05.18 13:59
Kezdem a pozitívumokkal, mert azokkal hamarabb végzek.
Jó hogy valaki foglalkozik tutorírással, nekem nem lenne hozzá türelmem. A képektől teljesen érthető, amiről írsz.

A negatívumok.
Az első képen nem lehet elolvasni amiket odaírtál, vagy darabold kisebb szeletekre, vagy ha lehet, használj inkább thumbnailt. A Construct nem egészen engine, hanem game maker, nem ugyanaz a kettő. Nyilván kezel minden szart, amit egy engine nek kezelnie kell, viszont ez megtévesztő azok számára, akik A, tudnak kódolni, és teljesen testre szabható engine t keresnek[habár ez esetben van lehetőség a bővítésre, elvégre open source], vagy B, nem tudnak kódolni, és inkább hagyják az egészet, mert hogy nem game maker.
Nem tudom melyik verziót használod, de nálam nem szokott olyan dolgokat produkálni, amiket írtál(az editor rendszeresen szétfagy, ez igaz, viszont a legyártott exe meglehetősen stabil, ha meg relatíve gyakran mentesz, nem okoz nagy fejfájást ez sem - aki dolgozott már max el, teljesen hozzászokott az ilyesmihez.) A fagyásokat erősen lehet redukálni azzal is egyébként, ha egyszerre csak egy project van megnyitva, és lehetőség szerint minél kevesebb ablakváltás legyen, ha már viszonylag sok objektum van betöltve.
A felbontással kapcsolatban: System.SetResolution(x,y) a barátod.
new application t meg ne használj ha játékot akarsz csinálni, nem arra lett kitalálva, nem véletlenül nem kezel még egy nyomorult sprite ot se, nemhogy a többi 'apróságot' ami egy játékba kell.

A window miért olyan elengedhetetlenül fontos?

Ez persze szubjektív, de szerintem nem sok értelme van végig dőlt betűvel írni, az maradjon meg a fontos részeknek, elvégre erre lett kitalálva.