Hvornår skal man ikke lave det rigtigt?

Når man laver spil, vil man selvfølgelig gerne lave det, så godt man nu kan. Men nogle gange er det okay, at skære hjørner af, især hvis det ikke har en effekt på det endelige resultat.

Hvis man laver et komplekst spil som for eksempel en platformer, er man ofte nødt til at indtænke en masse ting i sin kode, såsom tyngdekraft, friktion og kollisioner. Og hvis man så også vil have bakker eller trapper, man kan gå op og ned af; envejs /spøgelsesplatforme; blokke, man kan skubbe rundt eller bevægelige platforme, bliver det kun mere avanceret.

Men nogle gange har man slet ikke brug for så meget. Nogle gange bliver tingene unødigt overkompliceret, og al den ekstra koden og tænken kommer bare i vejen for at lave et sjovt spil. I stedet kan det være en god idé, at planlægge nogenlunde, hvad ens spil skal kunne, og så lave det på så simpel vis som muligt. Det gælder især ved spilkonkurrencer/game jams eller når man bare smider et lille koncept sammen (den type spil, mange af mine egne spil er), men det kan faktisk også være en god idé, når man laver et større spil.

Lad os starte med et helt konkret eksempel: Google Chrome's "Intet internet"-spil med den lille t-rex.

Screenshot of the Chrome t-rex game

Spillet er langt hen af vejen meget lig en platformer: Du kan som spiller hoppe over udfordringer, og du skal lande på jorden under dig. Det kan være fristende at sætte et helt system op, med pixel-perfekte kollisioner og nøgterne udregninger. Men der er slet ikke brug for det, for jorden er altid på samme niveau. Der er ikke nogen højere placerede platforme, spilleren skal kunne hoppe op på, eller huller de kan falde ned i. Så hele kollisionssystemet kan faktisk koges ned til den simple sætning:

Hvis spillerens Y-værdi er større end Y-værdien tilsvarende jorden, sæt spillerens Y-værdi til denne.

Det ville i for eksempel GameMaker være et stykke kode ala if (y > ystart) { y = ystart; } (GameMaker har den indbyggede variabel ystart, som indeholder et objekts y-værdi fra da det først er indsat i et rum. Hvis objektet starter placeret "på jorden", vil denne værdi altså kunne anvendes på ovenstående måde).

Så simpelt kan det gøres. Én linje kode. Det er selvfølgelig ikke alting, der kan forsimples så meget, men det kan give rigtig god mening, og spare rigtig meget tid, at gøre forsøget. For hvis du får brug for noget mere komplekst, kan du jo altid bygge til og skrive om. Og det er på ingen måde ualmindeligt at skære hjørner af, og lave simple, nogle gange lidt sjove løsninger, når man laver spil. Her er en god artikel, hvis du er nysgerrig på, hvordan det bliver gjort ude i spilindustrien.

Så næste gang du arbejder på et spil, og skal tilføje noget ny funktionalitet, så prøv at overvej, hvordan du kan gøre det så simpelt som muligt. Om ikke andet er det en sjov udfordring.


Published