Viliam Búr

28. 7. 2008

Vodná mapa pre Wesnoth, uverejnená

V predchádzajúcom článku sme si nakreslili mapu na vodné súboje s názvom "2p_Pool.map". Teraz pridáme podmienku, že hráči môžu verbovať iba morských ľudí a morských hadov. A potom túto mapu uverejníme ako stiahnuteľný doplnok na serveri Wesnothu, takže si ju hráči na internete budú môcť stiahnuť a zahrať proti sebe.

V editore máp môžeme iba kresliť terén a umiestňovať počiatočné pozície. Na všetko ostatné potrebujeme konfiguračný súbor. Je to textový súbor. Slová "textový súbor" označujú textový súbor vytvorený jednoduchým textovým editorom ako napríklad Notepad alebo KWrite. Nie dokument aplikácie Word, ani dokument RTF, ale iba obyčajný súbor "*.txt". A ten bude vyzerať asi takto:

[multiplayer]

 id=multiplayer_2p_Pool
 name= _ "(2) Pool"
 description= _ "Vodna bitka medzi vodnymi ludmi a hadmi."
 map_data="{@campaigns/Examples_by_Viliam/maps/multiplayer/2p_Pool.map}"

 {DEFAULT_SCHEDULE}
 {DEFAULT_MUSIC_PLAYLIST}

 [side]
  side=1
  controller=human

  team_name=zapad
  user_team_name= _ "team^Zapad"

  canrecruit=yes
  recruit=Merman Fighter,Merman Hunter,Mermaid Initiate

 [/side]

 [side]
  side=2
  controller=human

  team_name=vychod
  user_team_name= _ "team^Vychod"

  canrecruit=yes
  recruit=Naga Fighter,Saurian Augur,Saurian Skirmisher
 [/side]

[/multiplayer]

Nebojte sa. Ak sa trochu posnažíte, dá sa to pochopiť. Konfiguračný súbor je vlastne zoznam dvojíc "parameter=hodnota". Niektoré parametre sú obklopené značkami ako "[multiplayer]" a "[/multiplayer]", alebo "[side]" a "[/side]". Môžete sa naučiť, čo znamenajú (majte vždy poruke ťahák), alebo len skopírujte tento príklad a skúšajte zmeniť to, čomu rozumiete.

Značky "[multiplayer]" a "[/multiplayer]" znamenajú "toto je začiatok / koniec popisu scenára pre viacerých hráčov". Parameter "id" je identifikátor scenára; hráčovi sa nikde nezobrazuje, musí to byť len nejaká hodnota iná ako "id" iných scenárov. Parameter "name" je názov, pod ktorým sa scenár objaví v zozname máp. Názvy tradične obsahujú počet hráčov, preto "(2) Pool". Parameter "description" je text, ktorý sa objaví, keď na náhľad mapy ukážete kurzorom myši. Parameter "map_data" je linka na súbor s mapou, ktorý sme vytvorili v editore máp.

Symboly "{DEFAULT_SCHEDULE}" a "{DEFAULT_MUSIC_PLAYLIST}" sú iba skratky (nazývané makrá) niečoho zložitejšieho. Znamená to, že budeme používať štandardné striedanie dňa a noci, a štandardnú hudbu. Nemáme to teraz dôvod meniť.

(C) 2008 Viliam Búr viliam-bur.blogspot.com

Značky "[side]" a "[/side]" znamenajú "toto je začiatok / koniec popisu bojujúcej strany". Máme tu dve strany, a na mape sme umiestnili dve počiatočné pozície. Parameter "side" je len poradové číslo, 1 alebo 2. Parameter "controller" znamená, že za túto stranu môže hrať človek (ale pri spúštaní v hre možno nastaviť aj počítačového hráča). Parameter "team_name" je identifikátor tímu, "user_team_name" je názov tímu, ktorý sa zobrazí hráčovi, aby vedel, či ide hrať za západnú alebo východnú armádu. Parameter "canrecruit" hovorí, že hráči môžu vo svojich pevnostiach verbovať jednotky; "recruit" je zoznam verbovateľných jednotiek oddelený čiarkami. (Definície jednotiek nájdete v adresári "data/core/units", kde "data" znamená "C:\Program Files\Wesnoth 1.4\data" alebo niečo podobné. Pozrite sa na tie konfiguračné súbory a hľadajte ich "id".)

Znamienko "_" pred niektorými textami znamená, že tieto texty sa dajú preložiť do iných jazykov. To teraz nebudeme robiť, ale je dobrým zvykom písať znamienko "_" pred každý reťazec, ktorý sa zobrazí hráčovi. Časť textu pred znamienkom "^" v texte sa nezobrazí; je to iba kontextová pomôcka pre prekladateľov.

Poznámka: Konfiguračné súbory sa zvyčajne píšu po anglicky, bez diakritiky. Ak chcete nechať svoj súbor preložiť do iných jazykov, píšte ho po anglicky. Ak vám na preklade nezáleží, a ak píšete iba pre slovenských hráčov, môžete zobrazované texty písať po slovensky... ale aj tak rozhodne odporúčam bez diakritiky. V opačnom prípade pravdepodobne nastane problém pri načítavaní súboru, a scenár sa nebude dať spustiť. (Pre odborníkov: Textový súbor musí byť uložený v kódovaní UTF-8, ale nesmie obsahovať značku Byte Order Mark, ktorú napríklad Notepad automaticky pridáva na začiatok každého súboru v UTF-8. Ak si s tým neviete poradiť, píšte bez diakritiky.)

Teraz potrebujeme umiestniť súbor s mapu "2p_Pool.map" a konfiguračný súbor scenára "2p_Pool.cfg" niekam, kde ich hra nájde, a aby jeden správne linkoval druhý. Pretože chcem viaceré svoje príklady uverejniť v jednom balíčku (po anglicky), vytvoril som si adresár "userdata/data/campaigns/Examples_by_Viliam". (Toto síce nie je kampaň, ale herný server s doplnkami podporuje kampane, takže naňho musíme použiť takýto trik.) Vnútri tohoto adresára som uložil súbor s mapou ako "maps/multiplayer/2p_Pool.map" a súbor so scenárom ako "scenarios/multiplayer/2p_Pool.cfg". Všimnite si, že hodnota parametra "map_data" v konfiguračnom súbore scenára ukazuje na súbor s mapou. Ak chcete použiť iné adresáre, musíte príslušne upraviť aj tú linku.

Aby hra videla tento balík, potrebujeme ďalší konfiguračný súbor "userdata/data/campaigns/Examples_by_Viliam.cfg". Bude vyzerať asi takto:

#ifdef MULTIPLAYER
{@campaigns/Examples_by_Viliam/scenarios/multiplayer}
#endif

Konfiguračný súbor balíka načíta obsah podadresára "scenarios/multiplayer", ak je hra v režime súboja viacerých hráčov. Ak robí hráč niečo iné, netreba plytvať pamäťou. A ešte budeme potrebovať publikačný súbor "userdata/data/campaigns/Examples_by_Viliam.pbl" asi takýto:

title="Examples by Viliam"
version="0.0.1"
author="Viliam Bur"
passphrase="tu_by_bolo_moje_heslo_ale_vymyslite_si_vlastne"
description="Priklady na WML. Mozno fungujuce..."

Keď teraz spustíme hru a vyberieme si v menu "Doplnky", zobrazí sa zoznam stiahnuteľných balíkov, a aj možnosť uverejniť tento náš balík. A to som aj urobil... takže ak vám niečo v tomto návode nebolo jasné, stiahnite si v hre balík "Examples by Viliam" a pozrite si tie súbory na vlastnom disku.

Ak máte nejaké otázky ohľadom tohoto príkladu, alebo ak vám pripadá užitočný, môžete mi tu napísať komentár. Ak máte ďalšie otázky ohľadom tvorby obsahu do hry Wesnoth, a ak rozumiete po anglicky, prosím zaregistrujte sa na diskusnom fóre Wesnothu a opýtajte sa tam. V diskusnom fóre je mnoho ľudí ochotných pomôcť, ak sa správate slušne, a ak najprv skúsite pohľadať informácie na webovej stránke a až potom sa opýtate.

Súvisiace články:

Menovky:

27. 7. 2008

Vodná mapa pre Wesnoth

Poznáte hru Bitka o Wesnoth? Je to ťahová stratégia s tematikou fantasy. Môžete si ju zadarmo stiahnuť z webovej stránky a začať hrať. (Vážne, vyskúšajte ju! Potom sa ale vráťte a dočítajte tento článok.) Navyše v nej môžete vytvárať vlastné mapy, kresliť vlastné vojenské jednotky, a písať vlastné príbehy. A potom to všetko môžete uverejniť na internete. Vyskúšajme si to!

Toto je moja prvá mapa do Wesnothu. Hrávam ho už od roku 2003. Vtedy bol v hre iba jeden príbeh, ktorý mal iba 5 alebo 10 scenárov, po ktorých sa zobrazila nejaká správa v zmysle: "Pokračovanie nabudúce." Hehe, staré zlaté časy... ;-) Nemusíte sa báť, dnes už sú všetky oficiálne príbehy v hre dokončené a otestované. No a tak už pár rokov uvažujem, že by som vytvoril aj nejaký vlastný príbeh, akurát som mal vždy niečo iné na práci (napríklad preklad tejto hry do slovenčiny). Teraz som sa ale rozhodol naučiť sa WML (skriptovací jazyk Wesnothu) a vyrobiť pár máp, možno aj nejaký súvislý príbeh. Počas štúdia chcem zároveň písať na web návody na to, čo som sa naučil, nech majú z toho nejaký úžitok aj druhí. Takže toto je prvá mapa, snáď bude nasledovať mnoho ďalších.

Pri inštalovaní hry sa nainštaluje aj editor máp. Spustíte ho (vo Windowse) v menu Štart, ako "Wesnoth | Map Editor". Spustite ho!

Mapy sa vo Wesnothe skladajú zo šesťuholníkových kúskov terénu (nazývaných hexy). Hranice šesťuholníkov sa v hre trochu prekrývajú a zarovnávajú, aby krajina vyzerala prirodzenejšie. Ale v editore máp dávam prednosť jasne viditeľným hranám, čo dosiahnem pomocou položky v menu "Nastavenia | Nastavenia | Ukáž mriežku". Mriežka sa dá zapínať a vypínať aj tlačidlom v pravom paneli. Teraz sú hrany jasne viditeľné, ale v hre to tak nebude. Presnejšie povedané, v hre si takisto môžete v nastaveniach mriežku zapnúť alebo vypnúť.

Veľkosť mapy zmeníme pomocou položky v menu "Edituj | Zmeň veľkosť mapy". Nad správnou veľkosťou netreba dlho špekulovať, dá sa zmeniť aj neskôr.

Keď pohybujete kurzorom myši ponad mapu, na označenom hexe sa ukazujú dva malé šesťuholníkové obrázky. To sú terény nastavené na kreslenie ľavým a pravým tlačidlom myši. V paneli napravo môžete kliknúť na jednotlivé terény ľavým alebo pravým tlačidlom, a tým sa nastaví, že toto tlačidlo bude na mape kresliť tento terén. Terény sú rozdelené do skupín, takže si môžete zobraziť všetky naraz, alebo napríklad iba vodné terény.

Väčšina bojov vo Wesnothe sa odohráva na zemi, druhým najčastejším miestom je podzemie. V hre sú aj lietajúce a plávajúce jednotky, ale väčšina jednotiek chodí pešo, a tak tomu mapy zodpovedajú. A viete čo? To nie je fér! Urobme teraz jednu mapu plnú vody, nech si aj morskí ľudia a morskí hadi môžu užiť poriadnu vodnú bitku. Dáme tam vodné dediny, vodné hrady...

...a nakoniec som ešte jazero obkolesil trávou, pridal za hrsť močarísk, a pár mostov krížom, pretože taká veľká modrá plocha vyzerala dosť nudne. Je tu príliš málo rôznych vodných terénov. Mohli by sme vytvoriť nové, ale teraz nie. Zatiaľ len jednoducho. Predsa len, je to prvá mapa.

(C) 2008 Viliam Búr viliam-bur.blogspot.com

Po dokreslení mapy musíme ešte umiestniť štartové pozície hráčov. (Na to je v pravom paneli tlačidlo. Po umiestnení pozícií sa ďalším tlačidlom vrátime do kresliaceho režimu.) Dáme jednu štartovú pozíciu pre hráča číslo 1, a jednu pre hráča číslo 2. Štartová pozícia je miesto, na ktorom sa na začiatku hry objaví veliteľ/ka danej strany. Zvyčajne je to v pevnosti, aby mohol/mohla verbovať jednotky. Ja som sa rozhodol dať na každú stranu po dva hrady a veliteľa/ku umiestniť medzi ne. Mám s tým určité zámery, ale tie prezradím až v inom článku; zatiaľ to skrátka berte ako autorský rozmar.

Map Editor screenshot

Keď je všetko hotové, môžeme mapu uložiť napríklad pod názvom "2p_Pool.map" a vypnúť editor. To "2p" na začiatku je zvyčajné označenie mapy na súboj dvoch hráčov. Mimochodom, mapu je rozumné občas ukladať aj počas editovania, pretože svet nie je dokonalý, programy majú svoje muchy, a aj editor môže niekedy spadnúť alebo zmrznúť, hoci by nemal.

Takže kde vlastne máme tú mapu uloženú a ako ju spustíme v hre?

Po spustení programu nájdeme našu mapu v zozname máp na súboje, ku ktorým sa dostaneme pomocou menu "Súboj | Lokálna hra". Mapa nakreslená v editore sa automaticky objaví v hre. Nemôžeme ju však zatiaľ hrať cez internet, pretože na súperovom počítači sa nenachádza. Neskôr si ukážeme, ako uverejňovať veci na internete. Zatiaľ si môžeme mapu vyskúšať proti počítaču, alebo môžeme nechať dvoch počítačových hráčov bojovať proti sebe.

Všetky súbory, ktoré vo Wesnothe vytvoríte, by sa mali nachádzať v adresári "userdata". Jeho presné miesto závisí na vašom operačnom systéme a na verzii Wesnothu. Vo Windowse je to niečo ako "C:\Program Files\Wesnoth 1.4\userdata". Odteraz už budem písať iba "userdata" a vy budete vedieť, čo tým myslím. Takže mapy vytvorené v editore máp sa ukladajú do adresára "userdata/editor/maps", pokiaľ nezadáte niečo iné.

Ešte treba urobiť pár vecí. Napríklad chcem umožniť verbovať iba morských ľudí a morských hadov. Ale to sa nedá urobiť v editore máp, tam možno iba nakresliť terén a umiestniť štartové pozície.

Súvisiace články:

Menovky:

Mapa stránok

Vitajte, toto je môj slovenský blog. Zatiaľ tu nie je veľa stránok. Dúfam, že časom pribudnú. Až ich raz bude priveľa, na tejto stránke nájdete to, čo hľadáte: