Most recent comments
2021 in Books -- a Miscellany
Are, 2 years, 10 months
Moldejazz 2018
Camilla, 5 years, 3 months
Romjulen 2018
Camilla, 5 years, 10 months
Liveblogg nyttårsaften 2017
Tor, 6 years, 10 months
Selvbygger
Camilla, 4 weeks, 1 day
Bekjempelse av skadedyr II
Camilla, 10 months
Kort hår
Tor, 3 years, 10 months
Ravelry
Camilla, 3 years, 5 months
Melody Gardot
Camilla, 5 years, 4 months
Den årlige påske-kommentaren
Tor, 5 years, 7 months
50 book challenge
Camilla, 10 months, 3 weeks
Controls
Register
Archive
+ 2004
+ 2005
+ 2006
+ 2007
+ 2008
+ 2009
+ 2010
+ 2011
+ 2012
+ 2013
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
+ 2019
+ 2020
+ 2021
+ 2022
+ 2023

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å.