Fraktaalivuoria AmigaBasicilla

Skrolli on siitä epätavallinen tietokonelehti, että se painaa ohjelmalistauksia paperille myös vuonna 2018 – uusimmassa numerossamme ja jatkossakin, monen muun lehden luovuttua tästä kauniista tavasta vuosia/vuosikymmeniä sitten. Koodista kertominen ja sen esitteleminen itse lehdessä on keskeinen osa Skrollin tehtävää, vaikka laitamme listauksemme toki verkkoonkin ladattavaksi.

Kirjoitimme uusimmassa Skrollissa 2018.1 myös toisesta mieleen painuneesta ohjelmistokehityksen ilmiöstä, nimittäin fraktaaleista ja proseduraalisesta maisemanluonnista. Otimme kulmaksi pelinkehityksen, Rescue on Fractalus! -pelin perspektiivistä, sekä sen seuraajan Fractalus-remaken tekijänsä Luke Arnoldin haastattelun kautta.

Tässä Skrollin toimituksen blogimerkinnässä kumarretaan hieman esikuvillemme ja tehdään pieni aikamatka samanaikaisesti sekä painettujen ohjelmalistausten että fraktaalien maailmaan. Fraktaalit pysyttelivät 1980-luvulla pitkälti elokuvaefektinä, mutta ujuttivat lonkeroitaan satunnaisten pelikokeilujen ja maisemageneraattoreiden lisäksi myös ohjelmointiharrastajien keskuuteen.

Esimerkkinämme aikalaisilmiöstä on Matthew Timmermanin artikkeli COMPUTE!-lehdestä elokuulta 1987, joka opasti kädestä pitäen – puolentoista sivun leipätekstin ja sivun listauksen avulla – kuinka fraktaalivuoristoja lasketaan AmigaBasicilla, Microsoftin Amigalle kehittämällä ohjelmointikielellä, joka kuului varhaisten Amigojen varusohjelmistoon. Skrolli testasi listauksen ja toimiihan se edelleen…

Lähde: http://www.commodore.ca/gallery/magazines/compute/Compute-087-01.pdf

COMPUTE!:n artikkeli löytyy nykyisin webistä tekstimuodossakin, joten listausta ei välttämättä tarvitse naputella itse. Tekstiksi muunnettu listaus kuitenkin simuloi 1980-lukua tahattoman autenttisesti sisältämällä useita virheitä. Näppäilyerehdysten sijaan virheet tosin lienevät tällä kertaa syntyneet koneellisesti, kun listaus on OCR-luettu paperilta ASCII-tekstiksi. Tuli MikroBitin Tarkastaja-ohjelmaa ikävä!

Esimerkiksi listauksen rivi, joka päättyy 4 a$ = CHR$ (a*17), tulee jakaa omalle rivilleen a$:sta alkaen ilman numeroa neljä… Syynä lienee se, että COMPUTE!-listauksiin oli rivinvaihdoksi painettu 4:sta muistuttava merkki. Samasta syystä yhdeltä riviltä puuttuu muuttujan arvo kokonaan: xm = 4 sijaan on vain xm =. Lisäksi aliohjelmien nimiin on kaksoispisteen eteen tullut tuhoisia välilyöntejä sekä end2-aliohjelmassa jopa endin ja numeron väliin, joka muuttaa syntaksin merkityksen täysin.

Ehkä salakavalimpana virheenä useampi numero 1 on webiin siirretyssä listauksessa muuttunut pieneksi L-kirjaimeksi, sekä useissa muuttujanimissä (esim. rx1 ja xrun1) että joissakin muuttujien arvoissa. Näistä seuraa Divide by zero -virheitä ja mielenkiintoisia graafisia glitchejä. Yksi rivi alkaa myös yrunl = ABS, kun sen pitäisi alkaa yrun = ABS, sekä kertaalleen kaksoishipsusta on tullut yksöishipsu. Nämä korjaamalla, esimerkiksi skannatusta lehdestä tarkastaen, pääsee eteenpäin.


Listaus piirtää vuoret isometristä tasoaan seuraten, ei pikselirivi kerrallaan.

Jos haluat lukea fraktaalipeli Fractaluksesta Skrollista 2018.1, tai tutustua numeron ohjelmalistauksiin taustoineen (mm. Suomea mukaileviin Tampio-ohjelmointikielisiin), saat uusimman lehden tilaamalla vuoden 2018 vuosikerran tai ostamalla irtonumeron paperilla tai diginä osoitteessa tilaaskrolli.fi.

AmigaBasic on saatavilla kaupallisesti/lisensoidusti Amiga Forever -emulaattorin mukana sekä verkkolatauksena että optisella medialla. Workbench 1.3 -levykkeet, joihin AmigaBasic kuuluu, voi edelleen ostaa myös uutena erikseen.

Janne Sirén
Digipäällikkö, Skrolli