V´Yvoj Hernıho Editoru Na Platformˇe Flash

V´Yvoj Hernıho Editoru Na Platformˇe Flash

MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Vyvoj´ hern´ıhoeditoru na platformˇeFlash DIPLOMOVA´ PRACE´ Bc. Martin Jakubec Brno, jaro 2014 Prohl´aˇsen´ı Prohlasuji,ˇ zeˇ tato diplomova´ prace´ je mym´ puvodn˚ ´ım autorskym´ d´ılem, ktere´ jsem vypracoval samostatne.ˇ Vsechnyˇ zdroje, prameny a literaturu, ktere´ jsem priˇ vypracovan´ ´ı pouzˇ´ıval nebo z nich cerpal,ˇ v praci´ rˇadn´ eˇ cituji s uveden´ım upln´ eho´ odkazu na prˇ´ıslusnˇ y´ zdroj. Vedouc´ıpr´ace: RNDr. Barbora Kozl´ıkova,´ Ph.D. ii Podˇekov´an´ı Rad´ bych podekovalˇ Ba´reˇ Kozl´ıkove´ za skvelˇ e´ veden´ı diplomove´ prace´ a za vsechenˇ cas,ˇ ktery´ mi venovala.ˇ Dale´ chci podekovatˇ Michalu Gab- rielovi za konzultace a odborne´ rady a celemu´ tymu´ CUKETA, s.r.o. za po- skytnut´ı zazem´ ´ı priˇ vyvoji´ hern´ıho editoru. iii Shrnut´ı C´ılem diplomove´ prace´ je navrhnout a implementovat jadro´ hern´ıho en- ginu a editoru pro konfiguraci hern´ıch mechanismu˚ na platformeˇ Flash. Hern´ı engine bude modularn´ ´ı, aby jej bylo moznˇ e´ rozsiˇ rovatˇ a vyuzˇ´ıvat pro ruzn˚ e´ typy her. Soucˇast´ ´ı prace´ bude ukazka´ hry nakonfigurovane´ v tomto editoru. V neposledn´ı radˇ eˇ se budu snazitˇ prezentovat prakticke´ zkusenostiˇ z vyvoje´ realn´ e´ hry. iv Kl´ıˇcov´aslova hern´ı editor, level editor, hern´ı engine, vyvoj´ her, Adobe Flash, game en- gine, Flash Player, hern´ı prumysl,˚ hern´ı navrh,´ game design v Obsah 1 Uvod´ ................................... 3 2 Historie hern´ıhopr ˚umyslu ...................... 5 2.1 50.–60. leta´ ............................. 5 2.2 60.–70. leta´ ............................. 5 2.3 80. leta´ ............................... 6 2.4 90. leta´ ............................... 8 2.5 2000–soucasnostˇ .......................... 9 3 Hern´ıenginy a editory ......................... 10 3.1 Hern´ı enginy ............................ 10 3.1.1 Historie . 11 3.2 Dostupne´ flashove´ knihovny . 11 3.2.1 FlashPunk . 11 3.2.2 Citrus Engine . 12 3.3 Vykreslovan´ ´ı ............................ 12 3.3.1 3D vykreslovan´ ´ı ..................... 12 3.3.2 2D vykreslovan´ ´ı ..................... 13 3.3.3 Prom´ıtan´ ´ı hern´ıho svetaˇ . 13 3.4 Hern´ı editory ........................... 14 3.4.1 Historie . 14 3.4.2 Hra jako editor . 15 4 Flash jako hern´ıplatforma ...................... 16 4.1 Historie Flashe ........................... 16 4.2 Vyuzitˇ ´ı v soucasnostiˇ ....................... 17 4.3 Vykreslovan´ ´ı ve Flashi ...................... 17 4.4 Vyhl´ıdky do budoucna ...................... 17 4.5 Alternativy ............................. 18 4.5.1 Microsoft Silverlight . 18 4.5.2 HTML 5 . 18 4.5.3 Unity . 19 4.5.4 iOS . 19 5 Vyvoj´ hern´ıhoenginu ......................... 20 5.1 Jadro´ ................................ 20 1 5.1.1 World . 20 5.1.2 Player . 21 5.1.3 Entity . 21 5.1.4 IAction . 21 5.1.5 IModule . 22 5.1.6 Diagram trˇ´ıd . 22 5.2 Trˇ´ıdy a techniky pro efektivn´ı praci´ . 22 5.3 Komunikace v s´ıti ......................... 26 6 Level editor ............................... 28 6.1 Konfigurace chovan´ ´ı ....................... 28 6.1.1 Typy konfigurace . 29 6.1.2 Konfigurace meho´ enginu . 29 6.1.3 Reprezentace akc´ı a ulozenˇ e´ reakce na udalosti´ . 30 6.1.4 Verzovan´ ´ı konfigurace . 30 6.1.5 Ukazka´ popisneho´ XML souboru . 32 6.1.6 Ukazka´ konfigurace akce . 33 6.1.7 Ukazka´ konfigurace udalosti´ . 33 6.2 Navrh´ uzivatelskˇ eho´ rozhran´ı . 33 6.2.1 Casovˇ a´ osa . 34 6.2.2 Rˇ ´ıd´ıc´ı panel . 35 6.2.3 Konfiguracnˇ ´ı panel . 35 6.2.4 Flow-based programming . 35 6.2.5 Akce zpetˇ a vpredˇ . 38 6.2.6 Komponenta pro urcenˇ ´ı pozice . 38 6.2.7 Klavesov´ e´ zkratky . 38 6.3 Sprava´ extern´ıch zdroju˚ ..................... 39 6.3.1 Verzovan´ ´ı zdroju.....................˚ 39 6.3.2 Generovan´ ´ı grafickych´ atlasu˚ . 40 6.4 Automaticke´ uklad´ an´ ´ı projektu . 40 7 Specifika programov´an´ına platformˇeFlash . 42 7.1 Prace´ s typem Vector ....................... 42 7.2 Informovan´ ´ı o zmenˇ eˇ stavu enginu . 43 7.3 Garbage collector ......................... 44 8 Uk´azkov´ahra .............................. 45 8.1 Typy neprˇatelsk´ ych´ jednotek . 45 8.2 Typy strelnˇ ych´ zbran´ı ....................... 46 8.3 Uzivatelskˇ e´ rozhran´ı ....................... 46 8.4 Pouzitˇ e´ moduly .......................... 46 8.5 Shrnut´ı ............................... 46 9 Z´avˇer ................................... 48 2 Kapitola 1 Uvod´ Jelikozˇ je pocˇ´ıtacovˇ a´ hra z velke´ cˇasti´ audio-vizualn´ ´ı d´ılo, je nutne´ se behemˇ vyvoje´ soustreditˇ nejen na technickou stranku´ veci.ˇ Velkou roli hraje navrh´ hry (game design), ktery´ definuje hern´ı mechaniky a t´ım vlastneˇ urcujeˇ zabavnost´ hry. Spolu s vizualn´ ´ım a zvukovym´ zpracovan´ ´ım je to hlavn´ı cˇast´ vyvoje´ hry. Pomerˇ rozsahu prac´ı na jednotlivych´ cˇastech´ celkoveho´ pro- duktu se mu˚ zeˇ lisitˇ v zavislosti´ na typu a zameˇrenˇ ´ı hry. V 3D akcnˇ ´ıch hrach´ jde vetˇ sinouˇ predevˇ sˇ´ım o co nejrealistictˇ ejˇ sˇ´ı zobrazen´ı reality, oproti tomu takzvane´ adventury vetˇ sinouˇ vynikaj´ı umeleckˇ ym´ zpracovan´ ´ım a speci- fickymi´ hern´ımi mechanikami. V dobach´ davno´ minulych,´ kdy pocˇ´ıtacovˇ e´ hry nebyly ani zdaleka tak propracovane,´ veskerˇ e´ hern´ı mechaniky programovali prˇ´ımo pro- gramato´ ri.ˇ V dnesnˇ ´ı dobeˇ jsou ale naroky´ jak na technicke,´ tak i vizualn´ ´ı zpracovan´ ´ı mnohem vysˇsˇ´ı, proto se vyuzˇ´ıvaj´ı editory, tj. softwarove´ nastroje,´ ktere´ designerum˚ umozˇnujˇ ´ı menitˇ chovan´ ´ı hry bez nutnosti kom- pilovat hru po kazdˇ e´ zmenˇ e.ˇ Tyto editory jsou naprosto kl´ıcovˇ e´ pro krea- tivn´ı praci´ game designeru˚ a dalsˇ´ıch lid´ı, kterˇ´ı se pod´ıl´ı na tvorbeˇ audio- vizualn´ ´ı stranky´ hry. Pro nekterˇ e´ hern´ı zˇanry´ existuje relativneˇ velke´ mnozstvˇ ´ı jizˇ hotovych´ komercnˇ ´ıch enginu˚ a editoru.˚ Do teto´ kategorie patrˇ´ı hlavneˇ 3D akcnˇ ´ı hry (Unreal engine, Cry engine). Je to dano´ t´ım, zeˇ vytvoritˇ 3D vykreslovac´ı engine s co nejrealistictˇ ejˇ sˇ´ım zobrazen´ım reality nen´ı vubec˚ jednoduche.´ Tyto enginy vetˇ sinouˇ stoj´ı dost penez,ˇ na druhou stranu zarucujˇ ´ı jistou kva- litu a technickou podporu. Vetˇ sinaˇ her ma´ ale specificke´ hern´ı mechaniky a proto se ani priˇ pouzitˇ ´ı komercnˇ ´ıho softwaru nevyhnete programovan´ ´ı nastaveb´ a pluginu˚ pro specificke´ u´ celyˇ vyv´ıjene´ hry. Vytva´retˇ vlastn´ı engine a editor je ale beˇznˇ e´ i u velkych´ a usp´ eˇsnˇ ych´ fi- rem. Pro danou platformu naprˇ´ıklad na trhu nemus´ı byt´ dostupne´ zˇadn´ e´ vyhovuj´ıc´ı hotove´ reˇ senˇ ´ı. Existuj´ı natolik specificke´ hry, zeˇ je vlastn´ı en- gine vylozenˇ eˇ zˇadouc´ ´ı. Touto kategori´ı mohou byt´ napr.ˇ logicke´ hry, kde jsou hern´ı mechaniky vetˇ sinouˇ jednoduche´ a hlavn´ı duraz˚ se klade na pro- pracovanost a mnozstvˇ ´ı urovn´ ´ı, nebo adventury, ktere´ castoˇ byvaj´ ´ı velmi 3 1. U´ VOD umeleckyˇ zalozenˇ e.´ Castoˇ se pouzˇ´ıva´ extern´ı editor pro vytvorenˇ ´ı proto- typu hry (vytvorenˇ ´ı hern´ıch mechanik) a azˇ pote,´ co se vymysl´ı zakladn´ ´ı hern´ı koncept a mechaniky, tak se vytvorˇ´ı engine na m´ıru pozadavkˇ um˚ (napr.ˇ velmi obl´ıbeny´ StarCraft Editor). Ve firmeˇ CUKETA, s.r.o, kde pracuji na pozici hern´ıho vyvoj´ a´re,ˇ tvorˇ´ıme real-time strategickou 2D hru v pohledu shora (falesnˇ y´ isometricky´ pohled) na platformeˇ Flash. Vyv´ıj´ıme vlastn´ı engine a editor, protozeˇ na platformeˇ Flash nen´ı dostupny´ zˇadn´ y´ jizˇ hotovy,´ ktery´ by splnovalˇ naseˇ pozadavky.ˇ Protozeˇ tvurcem˚ obou, enginu i editoru, jsem vyhradn´ eˇ ja,´ v teto´ praci´ se budu snazitˇ priblˇ ´ızitˇ specifika vyvoje´ hern´ıho editoru a hry jako takove,´ pokud vyvoj´ enginu a prace´ game designeru˚ prob´ıhaj´ı soubeznˇ e.ˇ Dule˚ zitouˇ soucˇast´ ´ı textu by melyˇ byt´ prakticke´ zkusenostiˇ s vyvojem´ hern´ıho editoru a samozrejmˇ eˇ jeho implementace. V prvn´ı kapitole se venujiˇ velmi rychlemu´ a strucnˇ emu´ shrnut´ı histo- rie hern´ıho prumyslu.˚ V nasleduj´ ´ıc´ı kapitole popisuji ruzn˚ e´ typy hern´ıch enginu˚ a editoru,˚ jejich historii a soucasnˇ e´ vyuzitˇ ´ı. Tretˇ ´ı kapitola je venovˇ ana´ platformeˇ Flash. Popisuji historicky´ vyvoj,´ soucasnˇ e´ alternativy i vyhl´ıdky do budoucna. Dalsˇ´ı kapitoly jsou venovˇ any´ popisu prakticke´ cˇasti´ prace.´ Nejprve popisuji vyvoj´ hern´ıho enginu a jeho architekturu. Nejvetˇ sˇ´ı cˇast´ prace´ je venovˇ ana´ popisu vyvoje´ hern´ıho editoru. Popisuji jeho architekturu, formaty´ souboru˚ a konfiguraci chovan´ ´ı. Dale´ vyjme- nuji a pop´ısiˇ dule˚ zitˇ e´ komponenty editoru i uziteˇ cnˇ e´ tipy k implementaci. Upln´ eˇ na zav´ erˇ jsem naselˇ m´ısto pro dveˇ kratk´ e´ kapitoly, z nichzˇ ta prvn´ı je venovˇ ana´ nekterˇ ym´ uziteˇ cnˇ ym´ tipum˚ k programovan´ ´ı v jazyce Action- Script. V posledn´ı kapitole predstavˇ ´ım ukazkovou´ hru, ktera´ byla nakonfi- gurovana´ s pouzitˇ ´ım meho´ editoru. 4 Kapitola 2 Historie hern´ıhopr ˚umyslu V roce 2014 mame´ za sebou pribliˇ znˇ eˇ 60 let vyvoje´ pocˇ´ıtacovˇ ych´ her. V nasleduj´ ´ıc´ıch odstavc´ıch se budu snazitˇ velmi strucnˇ eˇ priblˇ ´ızitˇ nebo pripomenoutˇ zacˇatky´ hern´ıho prumyslu,˚ priˇ cemˇ zˇ se budu soustreditˇ hlavneˇ na informace relevantn´ı k tematu´ me´ prace.´ 2.1 50.–60. l´eta V roce 1952 vznikla snad upln´ eˇ prvn´ı pocˇ´ıtacovˇ a´ hra OXO. Byly to 3x3 piskvorkyˇ na pocˇ´ıtaciˇ EDSAC s osciloskopovym´ displejem a jako vstup byl pouzitˇ rotacnˇ ´ı cˇ´ıseln´ık ze stareho´ telefonu [29]. Sloˇ sp´ısˇ jen o pokus, nezˇ o necoˇ realn´ eˇ hratelneho.´ V roce 1958 potom vznikla hra Tennis for two na analogovem´ pocˇ´ıtaci,ˇ priˇ odrazu m´ıckuˇ se vygeneroval zvuk.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    57 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us