BECHON

[Highscores]   [Download]   [Screen shots]   [Napsali o nás (CZ)]   [Návod (CZ)]  


Hra Bechon umožňuje širokou škálu změn levelů, grafiky, zvuků a celkového pojetí emzáků. Tento stručný návod by měl pomoci orientovat se v definicích těchto hodnot.
Verze souboru je z 7.2.2006

Program pro konverzi modelů z formátů .ASE a .3ds na .mesh: ModelConv.exe.


Levely

Všechno kolem levelů - počty a chování emzáků, bonusy, hlášky a atmosféra jsou nastavitelné přes xml soubory v adresáři levels\.
Filosofie souborů je postavena na nadřazenosti zapsaných údajů. Pokud je v základním souboru events.xml u emzáka hodnota životů nastavena na 200, ale v levelu je mu přidělena hodnota 100, platí hodnota 100.
Soubory spawns, events a level používají na nejspodnější úrovni stejný zápis údajů a pracují tedy se stejnými údaji pro vytvoření předmětu. Např. život můžem zapsat v events.xml jako základní hodnotu, ve spawns.xml zadat rozdílné hodnoty pro jednotlivé emzáky - třeba první ve vlně je silnější, a v některém patře jim všem ze skupiny nastavit lehčí úroveň.
Soubory levelů se ještě liší tím, že mohou obsahovat definice událostí, sad emzáků či animace.

Postupně si projdem všechny soubory:


events.xml
Soubor obsahuje definice událostí pro vytvoření základních hodnot. Můžem jej chápat jako aliasy pro později volané události, zprostředkovává pro nás tedy základní komunikaci mezi xml soubory a programem.
Data jsou seznamem event prvků, parametr name - jedinečné jméno pod kterým budeme tuto událost volat později z levelů.

Podíváme se na příklad emzáka Houba:
  <event name="MZhouba" event="emzak1" param="houba">
    <score>64</score>
    <life>32</life>
    <Position z="180.00000"/>
    <Speed z="-1.00000"/>
    <RotationSpeed z="1.00000"/>
  </event>
Emzák houba má jednoznačný název MZhouba.
Parametr event určuje, která událost v programu se použije, emzak1 vyvolává základní událost pro standartní emzáky, která umožnuje načíst jakýkoliv model a texturu uložené v adresáři models\emzaci1. O této události si povíme později.
Některé události z event mají možnost zadat další parametry, obvykle oddělené čárkou. V tomto případě je pro událost emzak1 poslán parametr param houba.
Defaultní hodnotou skóre za zabití je 64.
Defaultní hodnotou života je 32.
Defaultní pozice je 180bodů nad aktuálním středem ve chvíli vyvolání.
Defaultní rychlost houby je Z = -1. Rychlost v Bechonu je standartně 1 bod po ose Z. Takže emzák, který by měl vizuálně stát na místě, by měl mít rychlost po Z = 1. Víme tedy, že emzák houba po vytvoření bude rychle padat dolů (rychlostí 3*60, tedy 180 bodů za sekundu).
Defaultní rychlost rotace je Z = 1, rychlost je udávána v počtu stupňů, takže emzák rotuje kolem osy Z celkem svižně (60 stupňů za sekundu).

Seznam všech zadávaných hodnot bude k dispozici později.


spawns.xml
Soubor obsahuje definici sad, nebo skupin emzáků. Samotný soubor začíná zdánlivě nesrozumitelným kódem, leč jedná se o kopii zdrojového kódů, ukazující možnosti zadávání náhodných hodnot.
Data jsou rozdělena na skupiny spawntype, ty pak na prvky spawn. Každý spawn prvek vytváří další kopii použité události.
Údaje v souboru říkají programu, kolik kopií událostí se má vyvolat a může také upravovat všechny jejich údaje. Pomáhá nám zadávat více stejných naráz - řady, dvojice a další útvary mající stejné chování.

Podíváme se na příklad skupiny CoupleLeft:
  <spawntype name="CoupleLeft" rand="1">
    <spawn addtime="0">
      <position x="-300" y="2" z="200" />        
    </spawn>
    <spawn addtime="0">
      <position x="-200" y="2" z="200" />        
    </spawn>
  </spawntype>
Skupina obsahuje opět jednoznačný a jedinečný název, CoupleLeft. Z názvů plyne, že půjde o dvojici objevující se vlevo.
Parametr rand programu říká, že může tuto skupinu použít v náhodných patrech již od 1. levelu.
Skupina obsahuje dva spawn prvky. Proberem si ten první.
Parametr addtime uvádí v počtu framů od prvního vyvolání, kdy se má událost objevit. Je nastaveno 0, tedy ihned.
Parametr position uvádí pozici. Údaj je vždy od aktuální pozice středu obrazovky (X 0, Y 0, a Z se pohybuje).
Z obou parametrů spawn je vidět, že první emzák bude na X -300, druhý o 100 bodů doprava, tedy na -200. Oba se objevi současně.

V každé skupině spawntype můžeme definovat stejné údaje jako v events, v každém prvku spawn také, přesto to doporučuji nepoužívat, pouze v případě, že by to nešlo jinak.


animations.xml
Soubor obsahuje definice animací - pohyby a chování emzáků. Tento soubor se liší od prvních dvou v tom, že používá jinou sadu parametrů k nastavení.
Data jsou rozděleny na skupin animations, obsahující prvky anim, tedy jednotlivé změny - animační klíče. Všichny objekty ve hře jsou animovány ve standartní rychlosti 60 snímků ve vteřině.
Pozice snímků je odpočítávána ihned od vytvoření emzáka, události se provádějí v posloupnosti s tím, že některé delší, lze kdykoliv přerušit další událostí.

Podíváme se na příklad animace IntroBecher - láhve Becherovky pod herním menu:
  <animations name="IntroBecher">
    <anim smooth="1">
      <Speed x="2.1" y="0" z="1"/>
    </anim>
    <anim frame="290" smooth="1">
      <Speed x="0" z="1"/>
    </anim>
    <anim frame="500" smooth="1">
      <Speed x="2.1" z="1"/>
    </anim>
  </animations>
Skupina obsahuje jednoznačný a jedinečný název - IntroBecher.
Obsahuje 3 animační klíče.
První neobsahuje parametr frame, takový prvek je spuštěn ihned po vytvoření, podobně jako kdyby obsahoval honodotu 0.
Anim bez udání typu upravuje rychlost emzáka. Je třeba opět brát zřetel na to, že rychlost pohybu kamery je konstatní, tedy 1 po ose Z. Událost, která by vizuálně měla stát na místě, musí tedy mít také rychlost 1.
První prvek tedy nastavuje, že událost se bude pohybovat s kamerou konstatní rychlostí a bude se pohybovat směrem doprava (X 2.1).
Druhý prvek, spouštěný 290 framů po vytvoření zastaví pohyb doprava.
Parametr smooth určuje, že změna rychlosti bude postupná - všechny zde uvedené parametry se budou měnit postupně.
Třetí prvek, spouštěný 500 framů po vytvoření opět zavede pohyb doprava.

Výsledkem je tedy přílet láhve Becherovky zprava až těsně doprava, kde se na chvíli zastaví a pak opět pokračuje. Vzhledem k tomu, že se animuje změnou rychlosti, je třeba představivost a několik zkoušek.
Seznam typů animací pro jednotlivé prvky anim bude přidán později.


Level_X.xml
V tomto souboru je definována posloupnost událostí v patře.
Může obsahovat všechny předchozí nastavení, která budou platná jen pro daný level - důležité pro možnost přidávat nové druhy emzáků, událostí a skupin bez ohledu na hlavní soubory hry.

V hlavičce každého souboru by měl být číselný parametr id shodný s číslem v názvu souboru.
Název levelu je již nepoviný, ale pro přehled by se měl uvádět.
Data v souboru jsou rozdělené na tři sekce: events, animations a spawns.
Events a animations mohou tedy obsahovat stejné data jako v defaultních souborech a mají před nima přednost. Data ve spawns mohou obsahovat dva typy prvků. Spawntype - bude se tedy jednat o definici, nebo spawn - jednotlivé události patra.

V levelu se nejvíce pracuje s parametry time a addtime, UseType a UseEvent. První dva určují čas kdy se má daná událost vyvolat a čaový posun od posledně definovaného prvku. Druhé dva určují typ ze spawns.xml a událost z events.xml.
Podíváme se na část ze souboru level_0.xml - nehratelné patro probíhající pod herním menu:
  <spawn addtime="200" rand="3">
    <UseType>IntroSpawn</UseType>
    <UseEvent>MZrocketeer3</UseEvent>
  </spawn>

  <spawn time="100" />
  <spawn addtime="700" repeat="10">
    <UseType>IntroBecherovka</UseType>
    <UseEvent>MZbecherovka</UseEvent>
    <Position y="-14" />
  </spawn>
Level 0 obsahuje celou sadu postupně jdoucích emzáků, jedná se o přehlídku, kdy jednotliví aktéři jsou oděleny časem 200. (něco málo přes 3 vteřiny).
První prvek je posledním z řady přehlídky, obsahuje parametr addtime 200, tedy posun 200 framů od posledního.
Nultý level slouží programu také jako zdroj událostí pro náhodná patra. Parametr rand tedy určuje, že se událost MZrocketeer3 použije až od třetího náhodného patra.
Pro tuto událost bude použita sada IntroSpawn, jejíž definici můžem nalézt v souboru spawns.xml. Dočteme se tam, že událost bude vyvolána vizuálně vlevo nahoře, bude mít rychlost kolmo dolů a bude používat animaci IntroAnim, kterou opět můžem nálezt v souboru animations.xml. Podívate-li se do daného souboru, uvidíme poměrně složitou animaci, která ve výsledku vytváři onu přehlídku pod menu.
Jako poslední událost je použita event MZrocketeer3. Na definici události se můžem podívat do souboru events.xml - standartní emzák ověšen raketama.

Nálsedující prázdný prvek, nebude vytvářet žadného emzáka ani vyvolávat jinou událost. Nastaví jen čas při načítání souboru zpět na 100.
Čteme-li v souboru dále, hned pochopíme proč.
Od času 100 následuje 10x po 700 framech (včetně první) láhve becherovky.
Nový prvek repeat udává, kolikrát máme použít danou událost MZbecherovka (events.xml) v sadě IntroBecherovka (spawns.xml).
Pro všechny kopie je použitý parametr position upravující hodnotu Y na -14, becherovky jsou tedy trochu níže než je rovina hry.

Můžeme tedy zadávat události v kombinací prvků s parametry time a addtime. Posloupnost je důležitá jen pro úvodní načítání patra.

Level_0 je navíc omezen tím, že první události až po spawn time="100" jsou použity jako zdroj událostí pro náhodná patra. Samotný program totiž nerozpoznává definované události v events.xml dobré od špatných, proto seznam emzáků, tedy nepřátel v prvním patře.
Chcete-li přidat nového emzáka tak aby byl použit v náhodných patrech, je třeba jej zadat do events.xml a i do level_0.xml


Soubor mass.xml má stejnou syntaxy jako level_X soubory. Je použit jen pro náhodná patra jako seznam objektů v pozadí (tedy vraky lodí a shluky meteoritů).


Seznam typů animací:


Událost emzak1:

Speciální událost umožňující načíst libovlný model z adresáře models\emzaci1\mesh\.
Jako parametr vstupuje název modelu, samotný soubor by měl vypadat ve tvaru emzak_nazev.mesh.
Pokud v adresáři models\emzaci1\images\ existuje png soubor emzak_nazev.mesh je použitý jako textura.
Pokud není, je použita textura emzak_default.png.
Začíná-li název m_, je jako default použita mixovaná textura mdefault.png.

Parametr param může obsahovat až několik parametrů oddělený čárkou.
První z nich je vždy název emzáka.
Nadále může obsahovat:


Událost emzakX:

Speciální událost umožňující načíst libovlnou skupinu modelů jejichž definici nalezne v adresáři models\emzaciX\xmls\.
Jako parametr vstupuje název modelu, samotný soubor by měl vypadat ve tvaru emzak_nazev.xml.
Struktura souboru je poměrně jednoznačná, jediný návod se může týkat parametru together.
Pokud je nastaven na 0 nebo chybí, jedná se o složení emzáka z několika částí, které lze samostně odstřelovat. Přesto je emzák mrtvý až ve chvíli, kdy sestřelíme poslední část.
Pokud je nastaven na 1, jedná se o jednolitého emzáka tvořeného několika modely. I přesto lze nastavit jednotlivým částí některé specifika.
Samotné použití emzáka se pak řídí stejnými pravidly jako předchozí.




Contacts:
Gurroa, icq 75129856