Uusimmat

TIS-100 (Mac, PC)

07.12.2015 19:00 Miikka Lehtonen

tis-100_arv_0kansiTekijä: Zachtronics
Julkaisija: Zachtronics
Testattu: Mac, PC Windows 8.1, Intel Core i5-4670k, 16 Gt muistia, GeForce GTX 970
Saatavilla: Mac, PC
Laitevaatimukset: Windows XP tai uudempi, 2,0 GHz prosessori, 2 Gt muistia
Pelaajia:  1
Muuta: Ladattava peli, hinta 6,99 euroa (Steam tai GOG.com)
Pelin kotisivu: http://www.zachtronics.com/tis-100/
Arvostelija: Miikka Lehtonen

tis-100_arv_04

 

TIS-100 on peli, jonka ei pitäisi toimia. Sen ei pitäisi kiinnostaa, sen ei pitäisi viihdyttää. Miksikö?. Koska se ei ole peli perinteisessä mielessä. Ehei, se on ohjelma, joka emuloi kuvitteellista 80-luvun retromikroa.

Taustatarinassa pelaaja on saanut käsiinsä unohdetun ja hukatun TIS-100-mikron ja sen manuaalin. Aika on korruptoinut laitteesta kaiken paitsi ihan perustason käskyt. Ja nyt olisi aika palauttaa se toimintaan.

TIS-100 on siis viritelmä, jossa pelaaja ohjelmoi kuvitteellista 80-luvun mikroa rajoittuneen ja yksinkertaisen assembler-kielen, eli symbolisen konekielen, avulla. Kone on kyllä aikanaan pystynyt jos jonkinlaisiin toimintoihin, mutta aika on korruptoinut niistä vastaavat piirit, joten pelaajan täytyisi nyt aivan alkeistason käskyjen avulla toteuttaa alati monimutkaisempia operaatioita ja näin avata koneen salaisuuksia.

Siinä sivussa löytyy korruptoituneita muistirekisterejä, jotka tuntuvat olevan täynnä koneen alkuperäisen omistajan kryptisiä viestejä, muistiinpanoja ja varoituksia. Onko kaikki TIS-100:n ytimessä sittenkään aivan sellaista, kuin miltä se vaikuttaa?

tis-100_arv_01

MOV UP, RIGHT

TIS-100 on siis peli, jossa käytännössä koodataan konekieltä. Ideana on, että pelaaja saa yhdestä tai useammasta syötteestä erilaisia numeroita, joita sitten pitää prosessoida ja lähettää oikeassa muodossa ja järjestyksessä yhteen tai useampaan ulostuloon. Helppoa paperilla, käytännössä ei niinkään.

Toisin kuin moderneissa korkean tason ohjelmointikielissä, TIS-100:ssa pelaajalla ei ole käytössään kovinkaan laajaa käskyvalikoimaa, saati sitten varsinaisesti mitään mahdollisuutta määritellä omia luokkiaan tai mitään muutakaan ihmeellistä. Ehei. Jokaiseen rekisteriin mahtuu 15 riviä koodia, eikä yhden rekisterin sisältä voi viitata muihin mitenkään. Jos haluaa päästä rekisterissä A1 käsiksi rekisterin C4 numeroihin, ne täytyy käsin sieltä toimittaa perille.

Tässä kohtaa on myös se TIS-100:n suurin nyökkäys pelillisille elementeille, sillä sen muistirekisterit muodostavat ikään kuin kaksiuloitteisen ristikon, ja niitä käsitellään suunnittain. Rekistereistä voi siis lähettää ja vastaanottaa dataa ylös, alas ja sivuille. Tämä on toki tavallaan myös haaste, sillä se pakottaa pelaajan suunnittelemaan ohjelmiaan vähän eri tavalla kuin oikeasti koodatessa, koska datan täytyy kulkea rekisteristä toiseen lineaarisesti, eikä esimerkiksi hyppimällä kätevästi paikasta toiseen.

Käytössä oleva käskykanta on rajoittunut, eikä peli sitä itse mitenkään selitä tai opasta. Ehei, mukana tuleva manuaali kannattaa printata, sillä sitä tarvitaan. Dataa lähetellään eri suuntiin, lasketaan ja vähennetään, tarkastellaan, onko näin saatu numero suurempi tai pienempi kuin nolla ja hypitään ohjelman eri riveille. Käskykanta on pieni, mutta riittävä pelin vaatimuksiin.

Hauskana lisähaasteena TIS-100 ei osaa itse synkronoida ohjelmia mitenkään. Se ei siis osaa esimerkiksi odottaa syötettä ja jatkaa sitten käsittelyä, vaan jos haluaa, että rekisteri D3 lukee omalla rivillään 10 dataa vasemmalla olevasta rekisteristä, täytyy huolehtia käsin siitä, että se data saapuu vasemmalta oikeaan aikaan rekisteriin tai muuten suoritus pissii reisille. Miten? Heittelemällä oikeisiin väleihin nollakoodeja, jotka siis vain käytännössä odottavat yhden syklin ajan.

Mitäs näillä keinoilla sitten pitäisi tehdä? Vähän kaikenlaista.

 

 

SUB LEFT, ACC

Ongelmat alkavat hyvin yksinkertaisista: lasketaan yhteen kahden rekisterin numerot, lähetetään tulos mutkittelemaan rekisteristä toiseen kohti ulostuloa. Helppoa parin rivin kamaa. Hetken päästä ollaan jo tilanteessa, missä eri rekistereistä tulee numeroita ja niitä pitäisi vertailla. Lähetetään ensin pienempi, sitten suurempi, lopuksi nolla sekvenssin päättymisen merkiksi.

TIS-100 ei vaadi sinänsä mitään suunnattomia lahjoja ohjelmoinnin saralla, sillä ongelmat eivät ole teknisesti monimutkaisia. Käskykanta on yksinkertainen ja tehtävätkin ovat loogisesti yksinkertaisia. Haaste tulee siitä, että ratkaisut pitäisi saada puristettua pieneen tilaan. Ennen pitkää täytyykin jo turvautua todella vanhan koulukunnan optimointiratkaisuihin, joilla yritetään puristaa mahdollisimman paljon koodia mahdollisimman pieneen tilaan.

Mukana on myös leaderboard-meininkiä, sillä peli pitää kirjaa kaveriporukan kesken suorituksista. Kun kenttä on läpäisty, peli kertoo, miten monilla koodiriveillä ja sykleillä kaverit tehtävän ratkaisivat. Kun huomaa, että oma ratkaisu on selvästi hitaampi kuin muiden, motivaatio lähteä optimoimaan koodia kasvaa. Ja toisaalta jos huomaa että on itse keksinyt jonkin jipon mikä meni muilta ohi, fiilis on hyvä.

tis-100_arv_02

TIS-100 on addiktiivinen peli ja sen suurin ongelma on, ettei sitä ole tarpeeksi. Pelistä löytyy jokunen kymmenen koodaushaastetta ja lisää voi tehdä pelin sisäisellä editorilla. Tehdä, mutta ei jakaa. Jos jokin peli niin TIS-100 huutaisi tukea Steam Workshopille, jotta haasteitaan voisi tuuppia jakoon koko kansan ihmeteltäväksi.

Ja toki on myös todettava, että eihän TIS-100 ole varmastikaan koko kansan peli. Mutta ei se sitä yritäkään olla. Jos loogiset pulmat ja koodaus kiinnostavat edes ideatasolla — pelatakseen ei todellakaan tarvitse olla koodausguru — TIS-100 on äärimmäisen suositeltava pelihankinta.

 

Miikka Lehtonen

Muropaketin uusimmat