Ultiman kloonaaminen käy työstä...

Olen koodannut vanhoja Ultimoita etäisesti muistuttavaa tiiligrafiikkaroolipeliä jo puolitoista vuotta. Hulluutta? Ei, vaan #UltimaKlooni.

ultima-klooni-isometric-envr-damage

Pelit-lehdestä tuttu #UltimaKlooni-ikuisuuskoodausprojektini on nyt sellaisessa vaiheessa, että väännän parhaillani pelin taistelusysteemiä uusiksi. Siinä sivussa aion myös uudistaa pelin varsinaiset taistelusäännöt.

Ajattelin jonkinlaisessa joukkoistamisen hengessä esitellä pelisääntöjeni hahmotelmaa julkisesti. En nyt odota, että kukaan ryhtyisi viilaamaan sääntöjä puolestani, mutta totta kai ulkopuolinen feedback on tervetullutta.

Lyhyt yhteenveto uuden taistelusysteemin perus-featureista:

- Vuoropohjainen.

- Taisteluvälineinä miekka & magia.

- Pelaaja komentaa seikkailijaryhmäänsä, joka koostuu 1-6 hahmosta.

- Vihollisia on arviolta 1 - 20 per taistelutilanne.

- Toimintaa rajataan action pointseilla. Noin 2-3 actionia per hahmo per vuoro.

- Pelialue on 26 x 22 -kokoinen ruudukko, jossa on enimmillään viisi kerrosta korkeuseroja.

- Ympäristö on tuhoutuvaa (taikuudella ja mahdollisesti alkemistisilla kertakäyttöpommeilla).

- Korkeuseroilla on taistelukykyyn vaikuttavaa merkitystä.

- Yksittäisten taisteluiden ei ole tarkoitus venyä kohtuuttoman pitkiksi. (Ihannekesto 5 min?)

Lyhytkestoisuus asettaa mielestäni melko kovia vaatimuksia sääntölogiikalle. Jotta taistelut etenisivät vauhdilla, hyökkäyksillä pitäisi lähtökohtaisesti olla varsin korkea onnistumismahdollisuus. Samoin onnistuneilla hyökkäyksillä kuuluisi pääsääntöisesti olla kouriintuntuvia seurauksia, eikä ilman painavia syitä redusoitua nollan tai yhden pisteen näennäisdamageksi.

#UltimaKloonin aikaisemmissa buildeissa syntyi todellakin tilanteita, joissa taistelu taantui pelkäksi hutien tai tehottomien hyökkäysten läimimiseksi.

Ratkaisuni edellä kuvattuun ongelmaan on to-hit-laskelmien osittaminen kahtia.

Jokaisella taistelijalla (pelaajahahmoilla ja vihollisilla) on osumatodennäköisyyttä määrittävä base-to-hit-pohjaarvo. Jos hahmon base-to-hit on 30 %, niin hahmo voi luottaa siihen, että noin joka kolmas hyökkäys onnistuu. Olennaista tässä on, että yksittäistä taistelutilannetta ajatellen base-to-hit on muuttumaton. (Base-to-hit-arvoa voi kasvattaa hahmonkehityksen keinoin).

Base-to-hitin päälle lasketaan bonus-to-hit, joka on luonteeltaan paljon muuttuvaisempi. Bonus-to-hitissä huomioidaan:

- Hyökkääjän kokemustaso (hahmoluokkakohtaisesti +1...+3 % per level)

- Hyökkääjän dexterity-arvo (+0...+15 %)

- Hyökkääjän asetyyppi (-10...+10 %)

- Hyökkääjän aseen yksilökohtainen osumatarkkuus (-10...+10 %)

- Hyökkääjän haarniskan painoluokitus (light armor: ei penalttia, medium armor: puolittaa dex-bonuksen, heavy armor: neljäsosittaa dex-bonuksen kokonaan).

Puolustava osapuoli voi kumota bonus-to-hitin osittain tai jopa kokonaan omalla dodge-arvollaan. Siihen vaikuttaa:

- Puolustajan kokemustaso (hahmoluokkakohtaisesti +1...+3 % per level)

- Puolustajan dexterity-arvo (+0...+30 %) (eli dex on tärkeämpää puolustajalle kuin hyökkääjälle)

- Puolustajan haarniskan yksilökohtainen konstruktio (-10...+10 %)

- Puolustajan haarniskan painoluokitus (light armor: ei penalttia, medium armor: puolittaa dex-bonuksen, heavy armor: mitätöi dex-bonuksen kokonaan).

Esimerkki:

Hyökkääjän base-to-hit on 30 % .

Hyökkääjän bonus-to-hit on 15 %.

Puolustajan aversion-to-hit on 14 %.

Hyökkäyksen lopulliseksi osumatodennäköisyydeksi saadaan 30 + (15-14) = 31 %.

Jos hyökkääjän bonus-to-hit on suurempi kuin puolustajan dodge-%, kriittisen osuman todennäköisyys kasvaa näiden kahden arvon erotuksen verran.

Jos puolustajan dodge-% on suurempi kuin hyökkääjän bonus-to-hit, kriittisen osuman todennäköisyys vähenee näiden kahden arvon erotuksen verran.

Jos puolustajan dodge-% on suurempi kuin hyökkääjän base-to-hit ja bonus-to-hit yhteensä, hyökkäyksen epäonnistuminen johtaa automaattiseen (ilmaiseen) vastahyökkäykseen.

Puolustajan haarniskan panssariarvo EI vaikuta osumatodennäköisyyksiin lainkaan. Panssariarvon ainoa merkitys on damagen redusointi.

Jokaisella hahmolla on lisäksi stamina-arvo, joka toimii on-off-periaatteella. Kun staminaa on jäljellä, kaikki on hyvin. Jos hyökkääjän stamina kuluu nollaan, base-to-hit puolitetaan. Jos puolustajan stamina on nollassa, puolitetaan vastaavasti dodge-%. Stamina nollassa ei myöskään pysty tekemään enempää kuin yhden actionin per vuoro.

Staminaa kuluu ainakin:

- Hyökätessä

- Kiipeillessä

- Rämpiessä vedessä/suossa

- Kun käyttää peräkkäisiä vuoroja liikkumiseen

- Kun hahmo on vihollisten ympäröimä (väh. 2 kpl)

- Kun puolustautuu korkeammalta maalta tulevaa hyökkäystä vastaan

- Kun ottaa osumaa (vaikka haarniska redusoisi kaiken vahingon)

Taistelusta pakenemisella on luultavasti stamina-kynnyshinta. Eli rättiväsynyt ei voi yrittää pakoon.

Staminan perimmäisenä tarkoituksena on kiihdyttää taisteluita kohti luonnollista lopputulemaansa. Häviöllä oleva osapuoli kuluttaa staminansa loppuun, mistä seuraa taistelukyvyn romahdus.

Stamina on toisaalta kätevä väline, jonka avulla voidaan liittää myös selkeitä riskejä raskaissa haarniskoissa taistelemiseen. Levyhaarniskassa tankittava ei välttämättä jaksa pitkää taistelua loppuun.

Tuomas Honkala