Minitilbakeblikk: Graphics BASIC

Vi tar en titt på Ron Gilberts første kommersielle utgivelse, Commodore 64-programmet Graphics BASIC.

Den legendariske utvikleren Ron Gilbert er mest kjent for sine bidrag til eventyrspillsjangeren, fra Maniac Mansion i 1987 til Thimbleweed Park i 2017. Hans første kommersielle produkt var imidlertid ikke et spill. I stedet var det Graphics BASIC for Commodore 64, som han skapte sammen med en god venn ved navn Tom McFarlane.

Ron Gilberts første kommersielle utgivelse.
Ron Gilberts første kommersielle utgivelse.

BASIC-utvidelse

Graphics BASIC er et eksempel på en type systemer det fantes flere av på Commodore 64. Som du kanskje vet er BASIC et programmeringsspråk som var svært populært på sytti- og åttitallet, spesielt på mikrodatamaskinene som preget hjemmemarkedet på den tiden. Commodore 64 hadde sin egen variant, lagt inn i maskinens ROM-brikke. Når du skrur på systemet, lastes BASIC automatisk og umiddelbart inn, og du møtes av den kjente, blå velkomstskjermen. Versjonen av BASIC som er innebygd i Commodore 64 ble utviklet av Microsoft, og er for så vidt helt kurant. Men den gjør det ikke spesielt enkelt å utnytte seg av maskinens en gang så kraftige grafikkegenskaper.

Derfor dukket det opp en rekke utvidelser for BASIC, som la til ekstra kommandoer og funksjonalitet. En populær variant i Europa var Simon’s BASIC, laget av den britiske 16-åringen David Simons i 1983. Graphics BASIC kom ut i USA samme år, og fokuserer på grafikk og lyd. Systemet inkluderer over 100 nye kommandoer designet for å gjøre programmeringen enklere. Her er et lite eksempel fra manualen:

Koden i bildet over resulterer i dette skjermbildet:

Det som skjer i dette eksempelet er som følger: Linje 10 rensker skjermen, og går over i HIRES-grafikkmodus (i utgangspunktet er maskinen i tekstmodus). I HIRES-modus har skjermen en oppløsning på 320×200, og man kan detaljstyre de individuelle pikslene, noe man ikke kan i tekstmodus. Det er nettopp dette som skjer når en tilfeldig stjernebakgrunn tegnes opp i linjene 13 til 17. Hver stjerne lages i linje 15, som først sier at fargen skal være hvit, og så legger inn stjernen med DOT-kommandoen.

Samme kommandoer brukes for å tegne opp dette bildet.
Samme kommandoer brukes for å tegne opp dette bildet.

DOT-kommandoen bruker skjermens koordinatsystem slik at hvis man skriver DOT X,Y, så representerer X-verdien den horisontale posisjonen til prikken og Y-verdien den vertikale posisjonen. I eksempelkoden er opplegget litt mer komplisert – den går møysommelig gjennom hver vertikale linje på skjermen, og plasserer inn en hvit prikk en tilfeldig posisjon på den linja.

I linje 20 tegnes planeten, med senter i skjermposisjonen 160,100 (akkurat på midten av skjermen). CIRCLE-kommandoen bestemmer altså skjermposisjonen, mens XYSIZE-kommandoen bestemmer hvor langt ut fra denne posisjonen rundingen skal strekke seg (i bredde og høyde). Linje 30 fyller sirkelen – FILL-kommandoen fungerer i praksis som «malingsbøtta» i Paint. Man velger en koordinat, og så fyller den hele det innelukkede området denne koordinaten er i (så ja, hvis ikke sirkelen hadde vært tegnet allerede, så ville hele skjermen blitt fylt). I linje 40 tegnes ringen rundt planeten, og her avgjør tallene i XYSIZE at det skal være en flat ellipse.

Enkelt å bruke

Det virker kanskje komplisert når jeg går gjennom det slik, men om du har noen som helst erfaring med den innebygde BASIC-varianten i Commodore 64, vet du at det ville vært en langt, langt mer omfattende jobb å lage samme skjermbilde i den versjonen. Faktisk vet jeg ikke hvordan man skulle gått frem for å gjøre det, men man måtte nok brukt en god porsjon matte og POKE-kommandoer for å manuelt legge informasjon inn i skjermminnet.

Tegn dine egne sprites.
Tegn dine egne sprites.

Graphics BASIC har også et annet nyttig verktøy for alle som lager grafiske spill, nemlig et innebygd lite tegneprogram for «sprites». Hvis du har prøvd å designe og plotte inn slike manuelt på Commodore 64, så vet du at det er en rimelig smertefull prosess der du er avhengig av rutepapir og kalkulator for å sikre at alt blir riktig. Mens her er det bare å tegne dem inn, som i en superenkel variant av Paint. Dette verktøyet er alltid tilgjengelig, og startes ved å skrive «EDIT».

Ganske hendig, altså, og hvis man ønsket å lage enkle, grafiske spill uten å lære mer avanserte programmeringsspråk enn BASIC, så ville man faktisk kommet ganske langt med Graphics BASIC. Det er jo ikke til å komme unna at BASIC generelt ikke er språket du velger om du ønsker å lage grafikktunge spill – til det er systemet rett og slett for treigt – men hvis man bare har ambisjon om å lage noen kule, små greier for egen fornøyelse, så er dette et temmelig solid produkt.

En ulempe med både denne og andre slike BASIC-utvidelser er at siden de ikke inkluderte noen kompileringsmuligheter, kunne man ikke lage programmer som fungerte på vanlige maskiner – man var avhengig av å selv ha utvidelsen om man ønsket å kjøre spill og programmer laget med den. I tillegg ble Graphics BASIC lansert på diskett, og måtte dermed lastes inn i maskinens ordinære minne for å fungere. Resultatet er at du «bare» har cirka 20 000 kilobytes å leke med i dine egne prosjekter.

Ting blir enklere.
Ting blir enklere.

Disse to aspektene var nok med å redusere den reelle verdien til Graphics BASIC som et genrelt spillutviklingsverktøy – det var nok gøy å eksperimentere med, men om man ville nå ut til et bredt publikum med tingene man laget, var ikke Graphics BASIC veien å gå. Alle hadde jo tross alt den ordinære BASIC-varianten, mens kun et fåtall hadde kjøpt Graphics BASIC.

Men om du lurer på hva Graphics BASIC kan gjøre, så kan du ta en titt på denne videoen jeg har laget. Her kjører jeg en haug av eksempler som fulgte med programmet, som viser alt fra avanserte tegninger til glatt skrolling og «sprites».

Fra HESWare til LucasFilm Games

Glatte bevegelser.
Glatte bevegelser.

Graphics BASIC ble utgitt av San Francisco-baserte Human Engineered Software (HESWare), som ble så imponert at de ga Gilbert en fast jobb som spillutvikler. Dessverre gikk de konkurs før spillene han jobbet med ble ferdige, men selv om Ron Gilbert ikke fikk fullført noen av Commodore 64-prosjektene sine hos HESWare, var ikke arbeidet forgjeves. Han opparbeidet seg nemlig et rykte som en svært kapabel Commodore 64-programmerer, og det var tilfeldigvis akkurat det et annet spillselskap basert i San Francisco trengte.

Dette selskapet var selvsagt LucasFilm Games (senere LucasArts), som tok kontakt ut av det blå, og endte opp med å ansette ham. I starten jobbet han med Commodore 64-versjoner av tidlige klassikere som Koronis Rift, og noen år senere var han en av skaperne av SCUMM-systemet, som skulle drive selskapets eventyrspill i nesten ti år. Hans mest kjente spill, The Secret of Monkey Island, er bygd på nettopp dette systemet.

Graphics BASIC overlevde også HESWare-konkursen – systemet ble solgt til storutgiveren Epyx, som lanserte en videreutviklet versjon under tittelen Programmers BASIC Toolkit.

En kommentar om “Minitilbakeblikk: Graphics BASIC”

Legg igjen en kommentar

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.