Spiludvikling med PICO-8

Velkommen

Hej, og tak fordi du har valgt at bruge tid på at læse den her bog. Jeg forestiller mig at du er et større barn -- måske endda mit barn? -- der synes computerspil er spændende, og gerne vil vide hvordan de hænger sammen. Hvis det er tilfældet, så har du forhåbentlig fundet det rigtige at læse!

Fra at starte med sådan cirka ingenting, skal vi lave flere spil af stigende kompleksitet. Det vil sige, hvor mange ting der foregår i dem, og derfor også hvor lang tid de tager at lave.

Men bare rolig, vi starter med noget helt simpelt. Så simpelt som et computerspil kan blive, i hvert fald.

Motivation

Da jeg i sin tid selv lærte at programmere, for efterhånden mange år siden, var det med en bog i hånden. Jeg havde valgfag i folkeskolen, og min lærer havde åbenbart opdaget, at det med computere interesserede mig. En dag dukkede han ihvertfald op med en hjemmelavet bog, udskrevet med indholdet fra en hjemmeside der handlede om at lære at lave hjemmesider.

Derhjemme tyrede jeg indholdet igennem, og forsøgte at lave mere og mere avancerede hjemmesider ved hjælp af det jeg havde lært. Den måde at lære på, ved at have en fysisk bog i hånden, som jeg kunne skrive af fra og så selv ekperimentere med efterfølgende fungerede rigtig godt.

Desværre fandt jeg aldrig noget på et lignende for spilprogrammering, og de bøger jeg endte med at anskaffe ramte aldrig helt rigtigt. Spil blev derfor desværre aldrig det jeg lavede mest af, og den dag i dag arbejder jeg til daglig også med "normal" programmering og ikke spil.

Man kan måske sige, at den her bog er skrevet til mig selv for 25 år siden. Og så er den også skrevet til mine egne børn, som nu også gerne vil lære at programmere. Ambitionen at ramme lige præcis det niveau, hvor man ender med at føle sig som en magiker, der får computeren til at gøre hvad man vil. Det var sådan jeg havde det, dengang jeg fik mit første program til at virke, så jeg håber det lykkes.

Hvad er et computerspil?

Den her bog handler om at lave computerspil. Men før vi kan gå i gang med det, bliver vi nødt til at tale om hvad en computer egentlig er, og ligeså hvad et spil er.

Computeren

En computer betyder bogstaveligt talt "en beregner". En computer er altså en maskine, der er virkelig hurtig og dygtig til at regne. Stik en computer et regnestykke og så får du nærmest med lysets hast et svar. En computer indeholder oftest også forskellige dele, som den kan bruge til at lave mellemregninger og til at gemme og huske ting.

Computeren kan tage mange former og udfylde mange roller. Som eksempel på computere eller ting der indeholder computere kan fx nævnes:

  • en tablet
  • en smartphone
  • en PlayStation eller Xbox
  • et fitness-armbånd
  • nyere biler
  • en stationær eller bærbar computer
  • ... og måske er der endda en i dit køleskab

Ved hjælp af elektronik og "snak" gennem strøm kan de her computere så omdanne tal1 til fx lyd ud af højttalerne eller billeder på skærmen.

Det er vigtigt at huske på, at nok er en computer meget hurtig til at regne, men derudover er den virkelig dum. En computer gør altså præcis hvad den er blevet bedt om og ikke noget som helst andet. Hvis der er noget der ikke virker, så er det desværre nok os mennesker der har gjort noget galt, og skal finde og rette det programmører kalder en fejl, eller en "bug".

Spillet

Et spil er straks sværere at beskrive præcist, men i mine øjne er der et par vigtige ting at få med:

Der skal være interaktion, dvs. at man skal kunne gøre noget. Fx at man kan slå med en terning og rykke en brik. Derudover skal der være et mål, altså ting man kan opnå. Til sidst er det oftest muligt at vinde og måske også tabe. Hvordan det hele er skruet sammen er det vi kalder regler.

Computerspillet

Hvis vi til slut sætter "computer" og "spil" sammen, hvad er så resultatet?

Det man kan gøre -- interaktionen -- ændres fra at være noget man gør med en fysisk ting, til at være noget der (oftest) sker på en skærm. Reglerne skal være endnu mere præcise, fordi der ikke er noget menneske til at fortolke hvad der er godt at gøre. Der er kun en meget dum talberegningsmaskine, som absolut kun gør hvad den har fået besked på. Men ellers er et computerspil nogenlunde det samme. Man gør noget i henhold til nogen regler. Så sker der noget så man arbejder hen mod nogle mål. Og til slut kan man vinde eller tabe.

Præmisserne for spillet er dog også anderledes. Du kan ikke forlade dig på et godt overblik, som der kan være på et stort spisebord. Og der er (nok2) ingen forældre eller søskende, der kan hjælpe dig.

Til gengæld, så er der langt mere fantastiske ting der kan lade sig gøre, fordi figurerne i et spil ikke behøver at leve efter de samme regler som vi gør i den fysiske verden.

Hvad er programmering?

Måske har du nu lyst til at spørge: Hvordan søren får jeg så lavet et computerspil? Det foregår ved det man kalder "programmering", som der det, du gerne skulle have lært lidt om, når du er gennem bogen.

Når man programmerer, så skriver man noget tekst, som man et menneske kan forstå. Ved at bruge nogle programmer, som kaldes "oversættere", så kan man lave det menneske-forståelige tekst om til et format, som computeren forstår. Man laver "programkode" om til "maskinkode". Til slut kan computeren udføre dit program og gøre hvad du har bedt den om.

Man kan sammenligne programmering lidt med at skrive en meget detaljeret pandekageopskrift. Opskriften skal skrives til en der både er meget glemsom og har ingen som helst erfaring. Til gengæld er de meget dygtige til at følge præcise ordrer!

Hvordan er den her bog opbygget?

I vores færd mod at lave computerspil, så starter vi så tæt på fra bunden som vi kan. På den måde kan vi komme igennem basale udgaver af alle de elementer, som et spil består af.

For at gøre det så simpelt som muligt, skal vi lave spil til en meget simpel computer. På den måde kan vi nemmere komme i gang, vi kan nemmere bevare overblikket og vi kan nemmere se resultater. Computeren vi skal programmere til er en såkaldt fantasicomputer, ved navn PICO-8. Det er altså ikke en rigtig, fysisk computer, men en computer der kører ved hjælp af din egen computer. På mange måder minder computeren om de, der fandtes for 20-30 år siden, hvor alle computere var lidt mere simple.

INDSÆT TEGNING AF COMPUTER I COMPUTER HER

Igennem bogens kapitler vil vi bygge flere og flere lag på vores spil. På den måde kommer vi igennem forskellige emner og dele af computerspil, ét af gangen. Efterhånden som bogen skrider frem, vil kompleksiteten, dvs. hvor indviklede tingene er, støt stige. Men hvis du bare tager det stille og roligt, så skal det nok gå. Men den absolut bedste måde at lære programmering på, er ved at lege: hvis der er noget du synes skal være anderledes, så prøv at lave det anderledes. Er der noget du tænker på, om det kan lade sig gøre, så giv det et forsøg. Det er dit eget spil du skal lave, ikke mit. Men husk - al den programkode vi skriver vil være at finde i bogen. På den måde er der altid noget at falde tilbage på, hvis du er kommet på usikker grund, og har brug for et fast fundament at falde tilbage på.