Snabbtips Introduktion till objektorienterad programmering för spelutveckling

Välkommen till en ny serie snabba tips om objektorienterad programmering! Vi ska gå över principerna för OOP och hur de kan användas för att skapa en organiserad kod. I den här första delen talar vi om vad OOP är och varför det är användbart, med några exempel på hur det kan användas i spelutveckling.


Vad är objektorienterad programmering?

Objektorienterad programmering (OOP), i sin mest grundläggande betydelse, är en programmeringsstil som används för att organisera kod. Videospel kan springa var som helst från ett fåtal tusen linjer kod (Cut the Rope har 15.000) till miljontals linjer kod långa (Crysis har över en miljon). Du kan se varför det är så viktigt att skriva kod som enkelt kan ändras och underhållas.

Programmeringsstilar, till exempel OOP, hjälper till att organisera kod på ett sådant sätt att det blir lättare att underhålla och modifiera. OOP hjälper till att organisera kod genom att organisera den i vad som är känd som objekt.

Objekt håller information om stat och beteende:

stater är objektets egenskaper, eller de ord du skulle använda för att beskriva det, och brukar ta formen av är eller har deskriptorer. En dator är antingen på eller av, en stol har fyra ben, och du ha ett namn.

beteenden är de saker objektet kan do, eller de åtgärder som objektet kan utföra, och är vanligtvis verb som slutar i ing. Du är Sammanträde, använder sig av en dator och läsning Denna artikel.


Varför är det användbart?

Som tidigare sagt är OOP användbart eftersom det hjälper till att skapa underhållsbar kod - kod som är förståelig, anpassningsbar och utökningsbar.

Det hjälper också till att skapa återanvändbar kod genom att följa metoden DRY (Do not Repeat Yourself): skriv koden en gång och återanvänd den istället för att kopiera och klistra in.

OOP-tanken låter sig också bra för att direkt översätta verkliga objekt och interaktioner i kod.


Hur man applicerar det

Jag ska lista tre olika exempel på hur man ansöker OOP till videospel. I senare artiklar tittar vi på hur man kodar dessa exempel, men för närvarande håller vi bara fast vid att lära sig att identifiera objekt och deras tillstånd och beteenden.

asteroider

Först, låt oss föreställa oss att vi ville göra det klassiska spelet Asteroider. För att identifiera vad föremålen är i Asteroider, försök beskriva det.

Wikipedia beskriver Asteroider enligt följande:

Syftet med asteroider är att göra så många poäng som möjligt genom att förstöra asteroider och flygande tallrikar. Spelaren kontrollerar ett triangulärt format fartyg som kan rotera åt vänster och höger, skjut eld rakt framåt och tryck framåt. När fartyget rör sig, är fart inte bevarat - fartyget hamnar slutligen igen när det inte skjuter.

Tänk på vad i den här beskrivningen kan stå ensam, eller de saker som beskrivs som kan ha tillstånd och beteende. Dessa blir vår objekt.

Föremålen för Asteroider är: ett skepp, en asteroid, en flygande tallrik och en kula (kan inte glömma dem!). Den häftiga saken om objekt är att vi normalt beskriver saker när det gäller föremål i vardagspresent, så de brukar avslöja sig genom en beskrivning.


Det klassiska spelet Asteroider

Nu när vi har identifierat våra objekt, låt oss definiera tillstånd och beteende för en av dem: spelarens fartyg. Tänk på vilka attribut som beskriver skeppet. det här är dess stater. Tänk sedan på vad skeppet kan göra; det här är dess beteenden.

Ett fartyg har tillstånd av:

  • rotation
  • Momentum
  • sticka

och beteenden av:

  • vändning
  • rör på sig
  • bränning

Jag låter dig bestämma vad de återstående objektens tillstånd och beteenden är.

Tetris

Låt oss nu överväga ett annat klassiskt spel, Tetris. Återigen börjar vi med att beskriva Tetris för att hitta dess föremål.

En slumpmässig sekvens av Tetrominos faller ner i spelplanen. Målet med spelet är att manipulera dessa Tetrominos genom att flytta var och en åt sidan och rotera den med 90 graders enheter, i syfte att skapa en horisontell linje med tio block utan luckor.


Tetris

I Tetris är egentligen det enda objektet en Tetromino. Det har tillstånd av:

  • rotation (i 90 graders enheter)
  • form
  • Färg

och beteenden av:

  • faller
  • rör sig (sidled)
  • roterande

Pac Man

Det sista spelet vi ska använda som ett exempel är Pac-Man.

Spelaren kontrollerar Pac-Man genom en labyrint, äter pac-dots eller pellets. Fyra fiender sträcker sig i labyrinten och försöker fånga Pac-Man. I närheten av labyrintens hörn är fyra större blinkande prickar kända som kraftpellets som ger Pac-Man den tillfälliga förmågan att äta fienderna. Fienderna blir djupblå, motsatt riktning och brukar gå långsammare.


Det ursprungliga Pac-Man arkadspelet

För Pac-Man finns tre objekt: Pac-Man, ett spöke och en pac-punkt. En kraftpellett är inte egentligen ett eget objekt eftersom det är en speciell pac-punkt (vi talar om vad man ska göra om detta i en senare artikel). Vi ska beskriva spökeobjektet eftersom det är mer intressant.

Spöket har tillstånd av:

  • Färg
  • namn (+1 om du kan namnge alla spöken från toppen av ditt huvud)
  • stat (ätbar eller ej)
  • riktning
  • fart

och beteenden av:

  • rör på sig
  • växlande tillstånd

Slutsats

Objektorienterad programmering är ett sätt att organisera kod i ett videospel. OOP fokuserar på objekt som definieras av deras tillstånd och deras beteende.

I nästa Snabbtips ska vi prata om principen om sammanhållning och börja koda grundstrukturen för ett objekt. Följ oss på Twitter, Facebook eller Google+ för att hålla dig uppdaterad med de senaste inläggen.