[PELIN NIMI TÄHÄN] ================== [pelin nimi] on tekstipeli, joka jäljittelee hieman Infocomin tekstipelejä ja Z-koneen tuntumaa. Koska Z-koneen uudelleen keksiminen olisi tylsää, toteuttaa [pelin nimi] ominaisuuksia, joita Z-koneeseen olisi ollut hankala toteuttaa. Tällä on toki hintansa — seikkailujen lukeminen tekstitiedostoista olisi tämän pelin Z-koneen ylittävien ominaisuuksien vuoksi hankalaa. Ensimmäinen olennainen lisäys on moninpelipainotteisuus. Tämä olisi todennnä- köisesti ollut toteutettavissa Z-koneeseenkin, esim: => https://github.com/icculus/mojozork Toinen olennainen lisäys on suomalainen kulttuuriperintö, aikapaineella höys- tettynä: pelissä lauletaan vihamiehiä suohon, ja se tapahtuu kirjoitusnopeus- testien merkeissä! Z-koneen kannalta haastavin lisäys (joskaan ei muutoin tämän pelin teknisesti haastavin osuus) lienee monimutkaisempi ei-pelattavien henkilöhahmojen tekoäly. Kun tekoälyt kirjoitetaan suoraan scala-ohjelmaan funktioina, voivat ne olennaisesti tehdä mitä tahansa, sen sijaan että Z-kone millään lailla rajoittaisi niitä. Järjestelmävaatimukset (TÄRKEÄÄ) -------------------------------- INTELLIJ IDEA:n OLETUSTERMINAALI EI OLE TUETTU!!! Sinun on pelattava tätä jossain tuetussa terminaalissa. Muuten tuloste tulee näyttämään oudolta (todennäköisesti rivin alku tulostuu toistuvasti siihen, mihin yrität kirjoittaa tai kursorisi ei pääse pois rivin alusta). Onneksi tuetut terminaalit ovat varsin yleisiä: nopealla testillä kaikki keksityt terminaalit olivat tuettuja IDEAa lukuun ottamatta. Tuettuja olivat ainakin: * cmd.exe (dokumentaation perusteella - ei ollut saatavilla testiin) * alacritty (toimii myös Windowsilla) * xterm * gnome-terminal * konsole * kitty * xfce4-terminal * jopa st (miten sekin on OOB parempi kuin IDEA?) Tarkemmin määriteltynä, jos uuden terminaalin lataamista ennen tahdot varmistua kyseisen terminaalin sopivuudesta: terminaalisi on tuettava ANSI-koodeja `ESC7`, `ESC8` ja `ESC[0E` (jossa 0 voisi muissa sovelluksissa olla jokin muukin luku). Näiden koodien bitit ovat samassa järjestyksessä 0x001b 0x0037, 0x001b 0x0038 ja 0x001b 0x005b 0x0045, mikäli edelliset merkinnät olivat epäselvät. Pelin käynnistäminen -------------------- Saat käynnistettyä pelin seuraavasti: ``` 1) Liity viralliselle palvelimelle (cron4.fi) 2) Käynnistä palvelin laitteellasi ja liity sille 3) Liity mielivaltaiselle palvelimelle > 1 Valitse itsellesi pelin sisäinen alter ego. > [nimi] [liityt peliin] ``` Huomaa, että olet liittynyt julkiselle palvelimelle, jolla saattaa olla muita pelaajia. Jos olet assari arvioimassa, kovin moni tuskin vielä tietää pelistä taikka palvelimesta, joten pelin tila lienee jotakuinkin ennallaan. Moninpeliominaisuudesta saat eniten iloa irti, joten jaa [pelin nimi] ystävillesi ja ala pelaamaan! Jos sinulla ei ole ystäviä, onnistuu moninpeli- ominaisuuden testaaminen joko liittymällä useamman kerran julkiselle palveli- melle tai pystyttämällä palvelin omalle koneelle seuraavasti `n` pelaajaa varten. Prosessi 1: ``` Miten tahdot pelata? 1) Liity viralliselle palvelimelle (cron4.fi) 2) Käynnistä palvelin laitteellasi ja liity sille 3) Liity mielivaltaiselle palvelimelle > 2 Valitse portti palvelimelle. (Jätä tyhjäksi oletusta 2267 varten) > Kuinka monta pelaajaa pelissä saa olla samanaikaisesti? > [n] Syötä vuorojen aikaraja yksiköttömänä sekunneissa odottelun vähentämiseksi. Syötä 0 aikarajan poistamiseksi. (Jätä tyhjäksi oletusta 30 varten) > Palvelin käynnistetty taustalla. Valitse itsellesi pelin sisäinen alter ego. > [nimi] [liityt peliin] ``` n x muu prosessi: (huom. en ole prosessiteekkari) ``` Miten tahdot pelata? 1) Liity viralliselle palvelimelle (cron4.fi) 2) Käynnistä palvelin laitteellasi ja liity sille 3) Liity mielivaltaiselle palvelimelle > 3 Syötä palvelimen verkkotunnus. > 127.0.0.1 Valitse portti palvelimelle. (Jätä tyhjäksi oletusta 2267 varten) > Valitse itsellesi pelin sisäinen alter ego. > Bob ``` Huomaa, että pelin ajamista varten samalla koneella useampaan kertaan, on IntelliJ IDEA:n ajokonfiguraatiota muokattava. Olettaen, että ohjelma on kerran ajettu main-funktion play-napista, valitse play-napin vierestä valikko, jossa lukee `main` tai `[pelin nimi]` -jotain. Sieltä valitse "Edit Configurations". Valitse oikea kohde avautuvan ikkunan vasemmasta palkista, klikkaa kohtaa "Modify options" ja valitse "Allow multiple instances". Sitten OK/Apply. Jos tästä muodostuu ongelma, kannattaa ensin vähän googlata tai lukea seuraava StackOverflow: => https://stackoverflow.com/questions/41226555/how-do-i-run-the-same-application-twice-in-intellij Pelin tavoite ------------- [lisää pelille tavoite] Pelin pelaaminen ---------------- [pelin nimeä] ohjataan kutakuinkin samalla lailla, kuin Z-koneen pelejä. On kuitenkin hyvä huomata, että peliä ohjaava serveri usein pakottaa vuorot tiettyyn aikaraamiin muiden pelaajien odottelun vähentämiseksi. Tämä aikaraja näkyy aina syötteen (merkitään '>'-merkillä) edessä: ``` Istut metsässä ja pohdit maailman menoa. Polkuja johtaa kaikkiin ilmansuuntiin. [30]> ``` Yllä aikaraja olisi 30 sekuntia. Myöskään kaikki komennot eivät ole samoja kuin Z-koneessa, eikä se ollut tavoitekaan. Alla on lista komennoista: `mene [suunta]` Käskee pelaajan liikkua annettuun suuntaan. `lepää` Käskee pelaajan levätä, eli odottaa vuoron päättymistä. `sano [viisaus]` Sanoo annetun enemmän tai vähemmän viisaan lausahduksen ääneen. `sano [terveiset] henkilölle [äiti]` Sanoo annetut terveiset annetulle pelin sisäiselle henkilölle. Pelin tekijöitä ei kuulu pitää vastuussa, jos tätä kautta yritetään välittää terveisiä pelin ulkopuolisille henkilöille. `laula [olento] suohon` Aloittaa annetun olennon suohonlaulannan. Peli tulee seuraavaksi pyytämään sinua kirjoittamaan jonkin säkeen, todennäköisesti kalevanlamitassa. Kirjoita tämä säe niin nopeasti kuin pystyt, koska laulun vaikutus määräytyy kirjoitusnopeuden perusteella! [lisää loput käskyt]