Most recent comments
Liveblogg nyttårsaften 2017
Tor, 11 months, 2 weeks
Jogging og blogging
Are, 1 year, 11 months
Liveblogg nyttårsaften 2016
Are, 1 year, 11 months
Reading in dark times
Are, 2 years
Moldejazz 2016
Camilla, 2 years, 4 months
Dørskilt
Karoline, 2 years, 5 months
Halifax
Tor, 2 years, 5 months
Sony Smartwatch 3 review
Tor, 2 years, 6 months
Numerikk, takk
Tor, 2 years, 6 months
Topp tur
Camilla, 2 years, 8 months
50 book challenge
Camilla, 11 months, 2 weeks
Ten years ago
Kurs for brukere
Tor
Controls
Register

Spillutvikling

Jeg syslet litt med spillprogrammering i Pygame i julen, og som en overmodig ung mann gikk jeg naturligvis med en gang løs på å lage et 2D-RPG i samme stil som Secret of Mana. Jeg har ikke kommet så veldig langt, men jeg har greid å lage en animert figur som kan gå i fire retninger, og angripe mot venstre, og som kan skade og ta skade av fiender (foreløpig representert ved et bilde av en bil). Jeg har også implementert scrolling, slik at man kan bevege seg på et større område uten å loade på nytt hver gang man kommer til kanten av skjermen, men jeg mistenker at jeg har gjort det håpløst ineffektivt, og jeg tror spillet mitt kommer til å ha de latterligste systemkravene et 2D-spill noen sinne har hatt.

Pygame håndterer alt griseriet som er involvert i å faktisk dytte bilder til skjermen, så mye av det grunnleggende arbeidet du gjøre er å flytte rundt på bilder, bytte ut bilder i passe tempo hvis du vil ha animasjon, og sjekke om to bilder kolliderer med hverandre for å håndtere ting som fiender og utganger og slikt. Likevel er det fortsatt utrolig mange småting man må ta stilling til og håndtere.

HP øverst til venstre, bilene er fiender, den hvite dingsen er utgangen fra brettet

Ta noe så elementært som å slå etter en fiende med et sverd. Man trenger åpenbart noen bilder som kan settes sammen til en animasjon av dette, vanligvis tre eller fire sett (oppover og nedover er forskjellige, høyre og venstre er ofte speilbilder av hverandre, selv om det strengt tatt betyr at man bytter sverdhånd). Hva skal skje med ytterligere input i den tiden angrepet tar? Skal det ignoreres? Utsettes til etterpå? Avbryte angrepet? Hvordan avgjør du om fienden blir truffet av angrepet? Skal du sjekke, piksel for piksel, om fienden kommer i kontakt med sverdet, eller satser du bare på å sjekke en passe stor firkant omtrent foran personen? Skal fienden fly bakover av angrepet, og i såfall i hvilken retning? Bakover i forhold til slik fienden stod, bort fra spilleren, eller i den retningen som virker naturlig basert på retningen sverdet hadde når det traff? Hvordan hindrer du at samme fiende blir truffet to ganger av samme angrep? Og hva skjer om spilleren selv blir angrepet under angrepet? Hva skjer om man blir truffet av magi under angrepet?

Selv om det er litt frustrerende å måtte tenke på absolutt alt er det ganske lærererikt også. Hvis jeg faktisk greier å lage noe som kan kalles et spill, og som fortsatt har noenlunde lesbar kode og ikke hundrevis av flagg og variabler jeg tenkte opp på flekken for å håndtere alle mulige eventualiteter skal jeg være ganske fornøyd med meg selv.

Neste gang: Spritesheet-helvete.
Matteus, Karoline likes this

Comments

Karoline,  09.01.13 11:03

Gleder meg til å prøve dette spillet! Tipper det kan bli en vinner rundt mai, da er det jo tid for litt prokrastinering.

Tja

Tor,  09.01.13 15:27

Jeg vet ikke om jeg ser for meg at spillet blir ferdig til Mai. Men innen da er det kanskje mulig å angripe mot høyre også.