Working in Game editor

Working in Game editor

Updated: 24.05.2010


Introduction

V tomto článku Vás ve stručnosti seznámím s velice propracovaným programem na tvorbu her, který jsem náhodou objevil na internetu a který je zcela zdarma. Což je v dnešní době malý zázrak. Dokonce je možné si program koupit pro případné komerční šíření svých her.

Acquaint with program Game editor

Game editor je kompletní nástroj na tvorbu her pro platformy: Windows (95, 98, Me, NT, 2000, XP), Pocket PC / Windows Mobile, Handheld PC, GP2X, Windows Mobile-based Smartphone a Linux, o velikosti pouhých 16MB.

Není zapotřebí žádného dalšího programu, krom grafického editoru (Malování, Paint Shop Pro, Illustrátor, Flash,...).

Program je v současné době (verze 1.3.9 ke dni 5.5.2010) k dispozici pouze v anglické verzi, ale to by nemělo být překážkou. Všechny texty jsou srozumitelné.


Doporučená konfigurace Vašeho PC je následující:

  • Windows XP nebo Linux (min. Windows 95)

  • 512MB RAM (min. 32MB)

  • x86 kompatibilní procesor (Pentium, AMD, ...)

  • 2.0 GHz (min. 200MHz)

  • 3D grafická karta (OpenGL a Direct3D hardware acceleration)

Pozn.: Minimální požadavky na HW splňuje dnes každé PC.


Pro vytvoření jednoduché hry si vystačíte pouze s myší. Stačí shlédnout tutoriály, které jsou součástí instalace a za jedno dopoledne máte vlastní hru hotovou. Ale tím možnosti editoru samozřejmě nekončí. Pokud to situace vyžaduje, můžete vkládat i kód v jazyce C a tvořit velice komplexní hry.

Výsledná velikost Vašich her pak bude mít 1MB + zkomprimovaná data (obrázky, konfigurační soubory, datové soubory, hudba a zvuky).

First start

Program si stáhněte ze stránek www.game-editor.com a rozbalte ve Vašem PC.

Spusťtě soubor gameEditor.exe. Otevře se Vám editor s následujícím dialogovým oknem:

welcome.jpg

Na začátek je vhodné si projít návody (Click here for the tutorials). A jako první nejlépe Demo Making Of..., kde se dozvíte, jak rozpohybovat objekt player.

Po skončení tutoriálu zůstane před Vámi otevřený editor. Na další návody se dostanete přes menu Help, kde máte následující výběr:

mainmenu_help_dropdown.png

Běh návodů je možné přerušit prudkým pohybem myši do stran. Toto je vhodné, pokud paralelně s tutoriálem vytváříte Vaši hru.

Návody Vám názorně ukážou, jak vkládat Actors (1. Actor view je vždy již vložen), jak definovat události na klávesy a na myš, jak přehrát zvuk, jak vkládat kód, atd.

K Vaší pomoci máte navíc i off-line verzi nápovědy, která se Vám otevře v internetovém prohlížeči, když kliknete na položku Documentation. Obdobná verze je k dispozici i na domovské stránce programu.

Program control

V programu se pohybujeme myší, přičemž levé tlačítko je určeno k výběru, případně posunu Actoru po pracovní ploše. Pravým tlačítkem se vyvolá příslušná kontextová nabídka z volbami odpovídajícími typu Actoru (Normal, Canvas, Wire Frame Region, Filled Region a Path).

Dále je do programu implementováno několik pomocných kláves:

  • Levý Shift - zapnutí/vypnutí lepení Actoru na mřížku

  • Pravý Shift - při podržení lze mazat nakreslené Tiles v režimu kreslení do Platformy

  • -/+ - oddálit/přiblížit pracovní plochu

My tips

  1. Před vkládáním nových Actorů si můžete ty původní uzamknout, abyste je nechtěně neposunuli.

    Uzamčení se provede pravím tlačítkem myši nad Actorem a volbou Lock Actor v dialogovém okně:

    actormenu.gif

    Škoda, že v Game editoru nejsou vrstvy, do kterých by se umisťovaly Actory. Pak by stačilo uzamknout ostatní vrstvy a pracovat jen v té jedné. Narážím tady na skutečnost, že pokud si např. nad několik Actorů umístíte Filled Region Actor (na pracovní ploše je to modrý rámeček, např. Actor mouse_area), tak se na Actory pod ním již nedostanete (vypínač a šipka s textem):

    addactor_mousearea.jpg filledregion_mousearea.jpg

    Nezbývá než rámečkový Actor posunout stranou, upravit Actory a pak vrátit rámečkový Actor zpět.


  2. Game editor neindikuje, zda došlo v otevřeném souboru ke změně (některé programy zobrazují symbol '*' v horním rámečku vedle jména aplikace).

    Pak se Vám lehce stane, že se Vám při ukončení Game Editoru zobrazí následující hláška:

    quitdialog.jpg

    Bohužel, program Vám volbu pro uložení souboru nenabídne.


  3. Pokud budete tvořit hru pro Pocket PC, nezapomeňte na obrazovku vložit tlačítko quit, resp. ikonu vypínače (samozřejmě musí být tlačítko doplněno příslušným algoritmem):

    colation_of_game_button_turnoff_in_game.jpg

    Tím umožníte hráči korektně ukončit Váš program. V opačném případě se ze hry nedá vyskočit jinak než tvrdým resetem Pocket PC

    Níže si můžete stáhnout ikonu vypínače o velikosti 30x30px (pravé tlačítko myši -> Uložit obrázek jako...):

    game_button_turnoff.bmp
  4. Pokud se při práci potřebujete podívat do video tutoriálů (součástí programu), nemusíte přerušovat Váš projekt. Jednoduše si program spusťtě ještě jednou (kliknutím na ikonu na ploše nebo z nabídky Start).

    Pak si v menu Help Game editoru zvolte Vámi požadovaný tutoriál:

    mainmenu_help_dropdown.png

    Pokud disponujete jen jedním monitorem, myší si oba programy zmenšete tak, aby se vešly na jednu obrazovku.


    Pozor: Program je dost náročný na paměť, proto mějte trpělivost, když budete nuceni chvilku počkat po přepnutí z jednoho Game editoru na druhý.


  5. Při pozicování objektů jsem v programu postrádal ruční zadávání souřadnic. Nezbývá, než objekty umisťovat (pozicovat) pouze myší a vpravo nahoře v info okně sledovat pozici.

    mainmenu_mousecoordinates.gif

    Pozor: Pokud je pozicovanný objekt vztažen k jinému (má nastaven Parent v dialogovém okně Actor Control), v info okně se objeví symbol velkého žlutého pacmana a pozice je vztažena k rodičovskému Actoru.


  6. Pokud potřebujete vynulovat nebo nastavit na počáteční hodnotu nějaké proměnné při startu Vaší hry (skóre, životy, bonus, pomocné inkrementační proměnné), vytvořte si nový Actor (např.: game_inicialization) a pro událost Create Actor (tato událost se provede při vytváření Actoru) vyberte akci Script Editor, kam vložíte následující řádky:

    time_to_update_score = 0;
    game_score.textNumber = 0;
    game_player_lives.textNumber = 0;
    

    Pro větší přehled Actorů na pracovní ploše tomuto Actoru přiřadím text v panelu Actor Control -> Text.

    Např.: game_init, menu_init, level_init, apod.

    set_text_gameinit.jpg
  7. Jak bylo řečeno v odstavci Working in Game editor, pro pozicování Actoru můžete použít lepení na mřížku. Já osobně tuto funkci používám při kreslení Tiles do Platformy (po ní chodí Player). Je vhodné si před kreslením nastavit rozteč podle velikosti Tile. K tomu slouží položka Grid size:

    mainmenu_preferences.gif
  8. Byť se v dokumentaci o víceúrovňové hře rovněž hovoří (jen obecná pravidla), v tutoriálech jsem návod nenašel. Stejně tak jsem nenarazil na postup, jak vytvořit úvodní obrazovku, menu a obrazovku s návodem.

    Nezbývalo, než trochu zaexperimentovat. Po pár slepých uličkách jsem se ke kýženému cíli přece jen dostal. Vám tady teď předkládám stručný návod:

    1. Nejprve si vytvořte na pracovní ploše Game editoru Logo, Menu a Úroveň.

    2. Pak v menu Regions přidáte postupně nové Regiony kliknutím na Add Activation Region:

      region.gif

      Na pracovní ploše Vám přibudou žluté obdélníky:

      activationregion.jpg

      Ty myší zvětšete kolem klíčových oblastí tak, aby vždy zahrnovaly všechny Actory, kteří do těchto oblastí patří:

      game_layout.jpg
    3. A teď už zbývá zařídit, aby se hráči objevila jen požadovaná obrazovka nebo výřez úrovně.

      To se provede pomocí Actoru view, resp. změnou jeho pozic x, y. V regionu Menu vybereme Actor Play (postupně pak i Help a Quit). V dialogovém okně Actor Control -> Add pro něj zvolíme událost Mouse Button Down a k ní přiřadíme Script Editor s následujícím kódem:

      view.x = -120; // hodnoty jsou zavisle na umisteni prislusneho Regionu
      view.y = -120;
      

      Díky předchozímu rozdělení pracovní plochy na Regiony, se při změně pozice Actoru view ze současného Regionu do jiného, vytvoří včechny Actory, které v tomto novém Regionu jsou a které mají v dialogovém okně Actor Control nastavenou kolonku Create at startup na Yes:

      actorcontrol.gif
  9. Pokud chcete změnit barvu textu pomocí scriptu, poslouží k tomu proměnné R, G a B. Trik funguje, i když Actor není text, ale obsahuje animaci. Toto je velice vhodné pro změnu barvy položky v Menu (Play, Option, Quit,...) označené hráčem.

    Pro lepší představu si stáhněte zdrojový kód zmena_barvy_textu.zip.


  10. Před smázáním již nepotřebných souborů v adresáři data (odsud Game editor nahrává datové soubory) se ujistěte, že tyto soubory skutečně žádný Actor nepoužívá. V opačném případě se Vám lehce stane, že při otevírání projektu Game editor ohlásí chybu (jméno souboru který postrádá).

    Pokud tento soubor neobnovíte, daný projekt v editory zkrátka neotevřete.


  11. Při psaní kódu berte na vědomí, že program umí pouze jazyk C, nikoliv Ansi C, případně C++. Jinými slovy Vám nebude chodit následující definice struktury, i přesto, že v Game editoru implementovaný kompilátor onen kód akceptuje:

    typedef struct {
      int r;
      int g;
      int b;
    } COLOR;
    
    COLOR barva_polozky;
    COLOR barva_zvolene_polozky;
    

Shortcoming (for version 1.3.9)

Výčet výtek níže chápejte jen jako nápady pro zlepšení programu. Nikoliv jako důvody k jeho odsouzení.

  1. Jsem zvyklý během práce stále ukládat, abych nepřišel o horko těžko vypocené algoritmy a vytvořenou grafiku. Nicméně v Game editoru musíte stále lézt do menu a v zápalu práce na to zkrátka zapomenete, nebo Vás to přestane bavit - ruší Vás to od promýšlení algoritmů.

    Problém by vyřešily horké klávesy a nebo aspoň nějaký autosave.

    P.S. Game editor mi totiž už 2x spadl a přišel jsem tak o několik algoritmů. Nutno podotknout, že nemám vždy spuštěný jen Game editor, ale též Flash. Jinými slovy, dva na paměť velice náročné programy. Možná že i odtud pramení můj zvyk stále ukládat.


  2. Docela bych uvítal nástroj na zarovnání Actorů, podobně jako panel Align v program Flash, který umožňuje zarovnat ke straně/na střed/nahoru/dolů a samozřejmě možnost zvolit (pomocí To stage), zda se zarovnání vztahuje k pracovní ploše a nebo rodičovskému objektu:

    flash_alignpanel.jpg

    Dále jsem postrádal možnost vycentrovat Actor na obrazovce pomocí skriptů. Při změně textu Actoru (změní se i jeho délka) pomocí skriptu se pak programátor nemusí zabývat vycentrováním na střed obrazovky.


  3. Jak v manuálu, tak v konferenci na webových stránkách Game editoru jsem nenašel informaci, jak měnit velikost (případně font) textů skriptem. Toto je velice vhodné pro změnu proporcí jednotlivých položek v Menu (Play, Option, Quit,...) podle volby hráče.


  4. Nemožnost přejmenovat objekt. S propracovaností hry roste i počet Actorů a tvůrce se v nich začne ztrácet. Přehlednost se zlepší pojmenováním podle účelu obrazovky: logo, menu, help, game. Seznam Actorů pak může vypadat takto:

    actornames.jpg

    Bohužel, na vhodné pojmenování musíte myslet již od začátku!


  5. Nemožnost vytvořit kopii Actoru. Toto se obzvlášť může hodit pro vytvoření stejného pozadí pod hlavní menu, jako je v samotné hře. Případně pro režim DEMO.

    Jste tak nuceni si vše vytvořit znovu a nebo použít funkci Actor Control -> Clone.

    Kámen úrazu je, že klon dědí všechny vlastnosti jako originál (stejnou délku, nemožnost zvolit pro klon nekonečné opakování, stejná bitmapa s tiles), včetně událostí, které nyní nepotřebujete (kolize z Playerem).


  6. Nemožnost označit více Actorů najednou a hromadně je posunout po pracovní ploše - v rámci přehlednosti nebo změně konceptu. Jste tak odkázáni na mravenčí práci při přesunu všech Actorů a jejich vzájemné pozicování.


  7. Ti z Vás, co se programováním her zabývají již několik let, my jistě dají za pravdu, že nejlepším studijním materiálem jsou zdrojové kódy úplné hry (včetně Loga, Menu, aspoň dvou Úrovní, atd.), nikoliv manuál a nebo rozdělaná hra Caveman (jakožto podklady pro video tutoriál).

    Na stránkách Game Editoru jsem nalezl několik děl od fanoušků. Jako nejzajímavější bych zde uvedl 1945 a MarioAndTheGoldenKey_ByBee-Ant. Obě hry mají menu, druhá hra dokonce i více stránkový návod. U druhé hry ještě stojí za povšimnutí, že je víceúrovňová a jednotlivé úrovně jsou tvořeny kombinací Tiles a několika Actors.


Conclusion

Než jsem se rozhodl napsat tento článek a rozšířit tak povědomí o tomto úžasném programu mezi více lidí, pracoval jsem s Game editorem bezmála týden. Za tu dobu - vzhledem k mým předchozím zkušenostem s tvorbou her - jsem měl dostatek času odhalit všechny důležité klady a zápory programu a jednoznačně bych ho doporučil lidem, co chtějí tvořit hry, mají základní znalosti s programováním v jazyce C (není nutnou podmínkou pro vytvoření jednoduché hry), ale nechtějí obětovat učení se tvorbě her v takových monstrózních aplikacích jako je Delphi a nebo Microsft Visual Studio.

Stále nemohu pochopit, jak se autorům povedlo do pár MB natěsnat jednoduchý a vcelku intuitivní editor (v podstatě stačí shlédnout pár tutoriálů, abyste pochopili způsob tvorby her), který - a to my skutečně hlava nebere - umožňuje export do tak rozdílných platforem jako je Windows vs Linux, včetně komprese dat a nutno též zdůraznit, že bez nároků na další pomocné ovladače. Samozřejmě jsem si vědom, že např. ve Windows 2000/XP/Vista/7 již jsou ovladače periférií, jako je grafická karta, zvuková karta, atd., a též grafická knihovna DirectX, určená pro hry. Ale už to neplatí o Pocket PC, kde vyexportované hry běží rovněž.

Já sám jsem se kdysi zabýval vytvořením podobného programu. Ale když porovnám moje výsledky s programem Game editor, musím přiznat, že pro programátory Game editoru bych mohl tak akorát nosit kafe smile_fun.jpg.


Best of luck on game creation!

Statistics
Advertisement
guestbook_button.jpg navy_button.jpg email_button.jpg