13 | 08 | 2020

Spil udviking

 

Mens jeg bl.a. gik på Handelsskole udviklede og programmerede jeg computerspil (i Assembler/MachineCode), som blev solgt af engelske firmaer. Primært udviklede jeg til BBC og Electron computerne (der mest var kendt i England).

 

Det første spil jeg fik udgivet var Crypt Capers.
Det var et arcade spil, der for hvert gennemført level gradvist blev mere kompliceret og strategisk.

 

 

Spillet Citadel blev et af de mest succesfulde til platformene og var på top 10 i et år. Spillet var temmelig innovativ og brød de tekniske grænser for, hvad der hidtil havde været muligt.

Citadel havde over 100 forskellige skærme og en lang række genstande, der kunne samles op og benyttes (nøgler, spand, iskrystal, jern, knogle, and, statuer, krystaller o.s.v.). Genstandene kunne kombineres og benyttes de rette steder. F.eks. kunne en kanon kugle og krudt benyttes ved en kanon, så kanonen blev affyret og lavede et hul i en mur som spilleren så kunne komme igennem.

Det jeg prioriterede højt var godt gameplay, fejlfri kode og mulighed for at spille og gennemføre spillet på mange måder.

Wikipedia artikel om Citadel

Den findes en bunke Citadel videoer på YouTube som folk har uploaded, bl.a. disse:

Her er en komplet guide til gennemførsel af Citadel.

Kort over en del af Citadel:

Ud over selv 100% at have at have programmeret og udviklet spillene (design, grafik, animation, gameplay, brugerflade o.s.v.) deltog jeg selv aktivt i markedsføringen i England - bl.a. via artikler og svar på læserbreve om spillene. Det gav en del ekstra reklame og salg, da de fleste andre spil udviklere overlod hele markedsføringen til software husene.

Den største udfordring ved at lave spil dengang, var den meget lille RAM hukommelse (og ingen harddisk e.l.).

BBC computeren havde 32Kbyte (32.000 bytes).
18Kb RAM gik til skærmhukmmelse, så der var ca. 14.000 bytes tilbage til program, grafik, animationer, tekst, layout for over 140 skærme, lydefekter, introskærme m.m.

Et foto fra et digital kamera fylder typisk 200 gange mere og en moderne PC eller mobil telefon har til sammenligning mindst 2GB RAM (2.000.000.000 bytes).

Herudover var det en udfordring, at 8 bit processoren kørte med 2MHz.

Nye computere og mobiltelefoner er 1.000 gange hurtigere og arbejder med 32/64 bit.

Spillene skulle dengang programmeres i Assembly for at det gik hurtigt nok.

Her programmerer man selv hver eneste CPU opreration på bit niveau. F.eks. kræver det temmelig mange linjer kode bare at gange to 8 bits tal. 
Fordelen var, at man havde styr på hver eneste bit og hardware komponent i computeren - modsat moderne programmer i Java eller C#, hvor meget udføres via kald til biblioteker og operativsystem funktioner, som leveret et resultat uden at man helt ved hvordan.

Når noget skulle vises på skærmen, så skete det ved, at man selv styrede hver eneste pixel ved at programmere direkte til skærmhukommelsen (modsat f.eks. Commodore 64 så havde BBC ingen hardware Sprites e.l.). Der var heller ingen skærm buffer, så når en figur flyttede sig, skulle man selv sørge for at genetablere baggrunden (XOR var praktisk).