Orcs of War

Vuoropohjainen verkkostrategiapeli

Tommi Nirha & Kalle Marjola 2000
Tämä määrittelysuunnitteludokumentti on Kallen käsialaa, Tommilla voi olla poikkeavia mielipiteitä, joten tämä päivittyy sitä mukaan kun synkronisoimme ajatuksiamme.

Tommin sivut aiheesta

Pohjaa

Orcs of War (työnimi versio 1) on monen pelaajan örkkistrategiapeli hieman mukaillen vanhaa 'Orcwars!' strategiapeliä.

Pelin ympäristöön oleellisena kuuluu se, että koska kyseessä on pelkästään örkkien (ja muiden vastaavien rotujen) johtaminen, voi komentojen perille saaminen olla ajoittain hyvinkin työlästä.

Vaatimuksia

Määrittelyä

Pelin alku

Jokainen pelaaja saa alkuun pääpomonsa, jonka tavoite on julistaa itsensä onnistuneesti örkkimaan uudeksi kuninkaaksi. Hänellä on myös alaisena pari pomoa, joilla myös oma armeijansa.

Pelin kulku

Armeijat kulkevat ympäri örkkimaata keräillen lisää joukkoja, tai käyvät örkkimaata reunustavissa kuningaskunnissa ryöstelyretkillä. Armeijat mättävät toisiaan.

Pelin loppu

Kunhan joku örkkipomo saa rakennettua itselleen linnan ja kerättyä tarpeeksi mainetta, voi hän julistaa itsestään kuninkaan, jolloin hän alkaa saada lisää kannattajia ja hänen on helpompi murskata vastustajansa, elleivät nämä ole riittävän nopeita ja voita häntä ensin, jolloin etsitään taas uusi julistautuja.

Armeijat

Kaikki monimutkaisempi komentaminen joukoille tapahtuu armeijoittain, joita jokaista johtaa joku kova örkki (tai vastaava). Tämä johtaja yrittää saada armeijaansa tekemään mitä haluaa, ja hallitsee joukkojaan voimalla tai viekkaudella.

Armeija koostuu johtajan lisäksi joukoista (unit), joka edustaa laumaa örkkejä tai muita vastaavia ököjä. Joukoilla on taitonsa, varusteensa ja joukot voivat kehittyä pelin edetessä.

Armeijalla on aina kakkospomo, joka ottaa komennon jos pääpomo kuolee. Samoin jos armeijan jakaa kakkospomo ottaa toisen osan haltuunsa. Seuraavan kierroksen alussa saa moelmmat uudet armeijat uuden kakkospomon, joka yleensä on selkeästi heikompi kuin pääpomo.

Rodut

Pelissä on virallisesti kaksi rotua:

  • Orcs (örkit), dominoiva rotu. Useita eri heimoja eri ominaisuuksilla
  • Monster (ne muut), edustavat kaikkia muita rotuja, esimerkiksi giants, ogres, trolls (swamp, rock), gnolls, humans. Yleensä palkkasotureina, mutta myös ihan ilmaisapuna.

Joukot

Joukot ovat laumoja örkkejä, bugbeareja, ogreja tai muita humanoideja. Joukot joko vaeltavat maastossa tai ovat osa jotain armeijaa.

Joukoilla on suuri joukko ominaisuuksia, jotka yleensä lähtevät rodun perusarvoista, mutta voivat kasvaa kokemuksen myötä. Tällaisia arvoja ovat:

  • strength, melee, weapon quality (melee)
  • toughness, armor value, health (armor)
  • bravery, loyalty, discipline (moral)
  • special-skill, special item quality (special)
Joukkojen arvosta pelaaja saa vain joukkojen johtajan subjektiivisen näkemyksen, ryhmittäin.

Joukoilla on koko/kunto, joka kertoo, kuinka paljon joukossa on väkeä jäljellä. Kun koko käy liian pieneksi, joukko tuhoutuu tai sulautuu toiseen vastaavanlaiseen joukkoon.

Joukoilla voi olla yksi (1) erikoisuus, jota vastaava taitokin heillä on. Erikoisuuksia ovat: Archers, Cavalry, Ballista, Catapult, Siege Tower. Erikoisuudet saadaan kouluttamalla yksikkö käyttämään moista, kunhan vastaava laitteisto on käsillä (sotakone rakennettu, paikka saada jousia tai ratsuja). Erikoisuudet on yleensä sidottu rotuun, esimerkiksi ogret eivät voi saada mitään erikoisuutta.

Palkka-armeijat

Ajoittain palkka-armeijat voivat tarjota pelaajalle palveluksiaan. Nämä palkka-armeijat ovat tavanomaisia joukkoja, joille on maksettava palkkaa lootin muodossa.

Palkka-armeijoiden lojaalisuus ja kuri on kuitenkin yleensä aivan eri luokkaa kuin muiden joukkojen, ja ne on helpompi saada mukaan yhtäkkiä melkein minne vain. Toisaalta, ne vievät kokoajan ryöstösaalista, ja jos se loppuu, armeija jättää armeijan ja voi vieläpä suuttua lähtiessään.

Vakoojat

Armeijoiden lisäksi pelaajilla voi olla vakoojia. Vakoojilla ei sodita, mutta kerätään tietoa ja voidaan tehdä erikoistoimintoja, kuten sabotointia tai salamurhausta.

Maasto

Kartta on jaettu useaan epäsäännölliseen maastoalueeseen. Maastoalue ei ole yhtä maastotyyppiä, vaan yleistys alueesta (vuoria, mökiä) jne. Maastolla on "liikkumisnopeus" jokaiseen viereiseen maastoalueeseen. Nopeus takaisin ei välttämättä ole sama, vaan tämä nopeus enemmän kuvaa painorvoa, jolla maastosta tullaan - vuorelta painetaan tehokkaammin laaksoon kuin laaksosta noustaan vuorille. Liikkumisnopeus tulee lähinnä vastaan silloin kun kaksi armeijaa kohtaa rajalla.

Jokaisella Örkkimaan maastoalueella on perusheimo, jota tältä alueelta (lähinnä) löytyy. Kun pelaajien armeijat ja vakoojat liikkuvat maastossa, he voivat huomata kyliä, joista voi rekrytoida lisää joukkoja armeijaan. Vastaavasti voi löytyä myös muita asioita, kuten shamaani tai linnoituksen jämät.

Taistelujen tai rakentamisen jäljiltä voi maastosta löytyä myös sotakoneita (war engine) tai vaeltavia joukkoja.

Saalis (loot)

Lähinnä ulkomaailmassa ryöstelyn seurauksena örkit voivat kerätä saalista. Tämä saalis ei tarkoita pelkästään rahaa, vaan myös taideaarteita, karjaa ja muuta sälää.

Saalis liikkuu armeijoiden mukana tai jätetään piiloon tai linnoitukseen. Armeijoiden mukana liikkuva saalis on kaikkein herkintä katoamiselle ja ryöstelylle.

Saaliilla pelaaja voi maksaa palkka-armeijoiden palkkaa, rahoittaa linnoitusten ja sotakoneiden rakentamista ja lahjoa toisten joukkoja ja johtajia.

Maine

Örkkijohtaja (ja muutkin pomot) keräävät pelissä mainetta. Mainetta saa taisteluihin osallistumisesta, niiden voittamisesta, Ulkomaiden ryöstelystä ja kaikesta mahdollisesta muustakin, mistä muut voivat kuulla juttuja.

Maine ei ole kovin katoavaista. Korkean maineen avulla örkkijohtaja voi julistaa itsensä uudeksi kuninkaaksi, ja voittaa tätä kautta pelin.

Systeemiä

Kartta

Kartta on aina täysin näkyvissä, joskin eri maaplänttien sisältö ei välttämättä ole kovin eksakti, eikä toisten armeijoista välttämättä liikaa havaintoa, ainakaan niiden sisällöstä.

Kartta on tehty vaihtelevan muotoisista maaplänteistä. Jos pelaaja tietää alueella olevan joukkoja tai paljastettuja kyliä tai muita resursseja (chips), ne näkyvät symboleina.

Pelaaja voi ottaa jonkun alueen tarkempaan katseluun, jolloin kaikki siellä olevat näkyvät selkeästi ja niille voi antaa komentoja (tai ne voidaan valita kohteeksi)

Chipit

Parempi nimi olisi kiva, toim.huom
Pelimaailmassa olevat kylät, vaeltavat yksittäisjoukot, linnoitukset jne. ovat yhteisnimeltään chippejä - kun pelaajan joukot löytävät jonkin asian, siitä tulee merkiksi chip kartalle. Jos tämä chip katoaa näkyvistä, pidetään yllä, koske se viimeksi nähtiin ('2 kierrosta sitten tuolla alueella oli örkkikylä')

Vinkit

Pelaaja voi saada vinkkejä (hints) armeijoista, kylistä ja muista pelin olioista (forces, chips). Vinkit esitetään kartalla 'hint'-disclaimerilla, sekä kerrotaan, kuinka vanha vihje on (2 kierrosta sitten tuli vinkki, että tässä sektorissa on örkkikylä...) ja mistä vihje on peräisin. Jos samasta asiasta tulee usealta eri taholta vinkki, voi pelaaja olla hyvin varma siitä, että asia on todellakin siellä missä on.

Kun pelaajan joukot saapuvat paikalle tai muuten paljastaisivat vihjeen, se joko korvataan todellisella chipillä tai sitten se katoaa, ollen väärä vinkki.

Armeijoiden toiminta

Armeija voi kierroksen aluksi tehdä nk. ilmaisia toimintoja (free action). Näitä toimintoja tehdessä palvelin vastaa välittömästi tuloksen kera (muille pelaajille mahdolliset tiedot menevät vasta kierrostulosten joukossa).

Vapaiden toimintojen lisäksi armeija voi tehdä yhden päätoiminnon, joka annetaan komentona. Pääkomennot toteutetaan sitten kun kaikki pelaajat ovat antaneet komentonsa ja kierros 'ajetaan'.

Pääkomentoja on mm. viereiselle alueelle siirtyminen tai alueen tutkiminen. Jos pelaaja haluaa, hän voi antaa armeijalle välittömän komennon 'pysy täällä (Stay Here), jolloin kyseinen armeija ei voi liikkua tällä kierroksella, mutta yksittäiset joukot voivat tehdä erinäisiä toimia, kuten uudelleen yhden vapaan toiminnon tai sotakoneiden käyttöönoton. Ne joukot armeijassa, jotka eivät tee jotain erikoista, tekevät yleistä toimintoa (kunhan se ei ole liikkuminen, koska sitä ei voinut tehdä jos jäi paikalleen).

Vakoojille annetaan yksi komento, jonka he tekevät, tai ainakin yrittävät tehdä. Mahdollisia komentoja on vakoilun lisäksi esimerkiksi sabotointi, salamurhaus tai varkaus. Ennen komentoa vakooja voi tehdä yhden ilmaistoiminnon, joka yleensä rajoittuu liikkumiseen.

Taistelu

Taistelussa oleellista on se, että pomo yrittää saada joukkonsa tekemään jotain ja joukot sitten ehkä tekevät sitä, tai sitten eivät, vaan luultavammin vain rynnivät toisen kimppuun ilman strategiaa.

Yleensä ottaen on vaikeaa saada joukkoja olemasta lyömästä toisiaan, paitsi että joukot voivat myös vaihata puolta, jos toisella puolen on lupaavampi pomo ja niin edelleen.

Koodia

Peli on Javalla rakennettu systeemi, jossa server on yksittäinen (demoni) jossain koneessa, johon applet-pohjaiset clientit ottavat yhteyden.

Oliorakenteita/riippuvuuksia

Olioita:

 Player
 Map
 Area -> PlayerArea, ServerArea
 Force -> Spy, Army, Caravan
 Leader
 Unit -> PlayerUnit, ServerUnit
 Chip -> PlaceChip, ForceChip
   ForceChip -> CaravanChip, ArmyChip, ...?
   PlaceChip -> VillageChip, FortressChip, ...?
 Tribe ?
 Message -> Command, CommandReply, Event, DataMessage
   Command -> InstantCommand, StoreCommand
   Event -> WorldEvent, AdminEvent, PlayerEvent, ...?

Tarkempi uudempi kuvaaja.

Interfaceja:

 Packable (luo talletettavan stringin oliosta)

Tietorakenneverkkoa (ks. kuvaaja)

 World <...n> Area <...0-n> Chip 
                   <...0-n> Force
 Army <...0-2> Leader
      <...0-n> Unit
 Player <...0-n> Force
        <...0-n> Area

Client -> Server

Client lähettää kaikki (lopulliset) komentoyritykset serverille. Hyvien käyttäytymissääntöjen mukaan client huolehtii itse riittävästä logiikasta, ja lähettää vain oikeita komentoja, mutta server varautuu myös vääriin komentoihin.

Clientilta tapahtuvat komennot (mm.):

army.RecruitFromVillage (target-village, partaking-units)
army.Split (split-units)
army.StayHere
army.SetCommand
army.SetNextCommand
unit.Transfer (target-army)
unit.FastMove (target-area)
unit.ClaimEngine (target-engine)
Komentoja armeijoille ovat muunmuuassa:
TrainUnits
ScoutArea
SetAmbush
MoveTo
Fortify
Build
Combat
Annettuihin komentoihin serveri vastaa:
command.Ok (+result-events)
command.Failed (+reason)
Esimerkiksi FastMovea ei voi tehdä kuin tietyt joukot (ratsuväki, yksin olevat pomot ja vakoojat), tai ClaimWeaponrya ennenkuin armeijalle on valittu StayHere (ks. yleinen pelisysteemi). Ok vastataan, vaikka joukot eivät tekisikään sitä, mitä yritettiin, tai muutoin homma menee pieleen, mutta kunhan komento oli hyväksyttyvä.

Server -> Client

Komentojen vastausten lisäksi serveri lähettää eventtejä, joista client on vastuullinen ylläpitämään tilannetta ja näyttämään ne järkevästi pelaajalle. Mahdollisia eventteja:
ArmyDataInfo
ArmyBattleResult
ArmyCommandResult
SearchResult
RecruitResult
UnitStatusUpdate
NewTurnStart
GameTime

Serverin rakennetta

Alustava suunnitelma serverin arkkitehtuurista on löytyy kuvana.