Rask Tips Intro til Objektorientert Programmering for spillutvikling

Velkommen til en ny serie med hurtige tips om objektorientert programmering! Vi skal gå over prinsippene for OOP og hvordan de kan brukes til å lage organisert kode. I denne første delen snakker vi om hva OOP er, og hvorfor det er nyttig, med noen få eksempler på hvordan det kan brukes i spillutvikling.


Hva er objektorientert programmering?

Objektorientert programmering (OOP), i sin mest grunnleggende forstand, er en programmeringsstil som brukes til å organisere kode. Videospill kan kjøre hvor som helst fra noen få tusen linjer med kode (Cut the Rope har 15.000) til millioner av kodelinjer lang (Crysis har over en million). Du kan se hvorfor det er så viktig å skrive kode som lett kan endres og vedlikeholdes.

Programmeringsstiler, for eksempel OOP, hjelper å organisere kode på en slik måte at det blir lettere å vedlikeholde og modifisere. OOP hjelper til med å organisere kode ved å organisere den i det som er kjent som objekter.

Objekter inneholder informasjon om stat og oppførsel:

States er egenskapene til objektet, eller ordene du vil bruke til å beskrive det, og vanligvis ta form av er eller har beskrivelsene. En datamaskin er enten på eller av, en stol har fire ben, og deg ha et navn.

atferd er de tingene objektet kan gjøre, eller handlingene objektet kan utføre, og er vanligvis verb som slutter i ing. Du er sitter, ved hjelp av en datamaskin og lesning denne artikkelen.


Hvorfor er det nyttig?

Som nevnt tidligere er OOP nyttig fordi det bidrar til å skape vedlikeholdsbar kode - kode som er forståelig, tilpasningsbar og utvides.

Det hjelper også med å lage gjenbrukbar kode ved å følge metoden DRY (Gjenta ikke selv): skriv koden en gang og deretter gjenbruk den, i stedet for å kopiere og lime inn.

OOP-tankegangen gir seg også godt til å oversette virkelige objekter og samspill i koden direkte.


Slik bruker du det

Jeg vil liste tre forskjellige eksempler på hvordan du bruker OOP til videospill. I senere artikler ser vi på hvordan du kan kode disse eksemplene, men for nå holder vi bare ved å lære å identifisere objekter og deres tilstander og atferd.

Asteroids

Først, la oss forestille oss at vi ønsket å lage det klassiske spillet Asteroider. For å identifisere hva objektene er i Asteroider, prøv å beskrive det.

Wikipedia beskriver Asteroider som følger:

Målet med Asteroids er å score så mange poeng som mulig ved å ødelegge asteroider og flygende tallerkener. Spilleren kontrollerer et triangulært formet skip som kan rotere til venstre og høyre, brann skudd rett fremover og skyve fremover. Etter hvert som skipet beveger seg, blir momentumet ikke bevart - skipet kommer til slutt igjen når det ikke skyves.

Tenk på hva i denne beskrivelsen kan stå alene, eller de tingene som er beskrevet som kan ha tilstand og oppførsel. Disse blir vår objekter.

Objektene for asteroider er: et skip, en asteroide, en flygende tallerken og en kule (kan ikke glemme dem!). Den kule tingen om objekter er at vi vanligvis beskriver ting når det gjelder objekter i hverdagsdiskusjon, slik at de vanligvis avslører seg gjennom en beskrivelse.


Det klassiske spillet Asteroider

Nå som vi har identifisert våre objekter, la oss definere tilstanden og oppførselen til en av dem: spillerens skip. Tenk på hvilke egenskaper som beskriver skipet; disse er dens stater. Tenk så hva skipet kan gjøre; Dette er dets oppførsel.

Et skip har tilstander av:

  • rotasjon
  • momentum
  • fremstøt

og oppførsel av:

  • snu
  • flytting
  • avfyring

Jeg lar deg bestemme hva de gjenværende objekternes tilstander og oppførsel er.

Tetris

Deretter vurderer vi et annet klassisk spill, Tetris. Igjen, begynner vi med å beskrive Tetris for å finne sine objekter.

En tilfeldig rekkefølge av Tetrominos faller ned i spillfeltet. Målet med spillet er å manipulere disse Tetrominos ved å bevege hverandre sidelengs og rotere den med 90 graders enheter, med sikte på å skape en horisontal linje med ti blokker uten hull.


Tetris

I Tetris er egentlig det eneste objektet en Tetromino. Den har tilstander av:

  • rotasjon (i 90 graders enheter)
  • form
  • farge

og oppførsel av:

  • faller
  • beveger seg (sidelengs)
  • roterende

Pac Man

Det siste spillet vi skal bruke som et eksempel er Pac-Man.

Spilleren kontrollerer Pac-Man gjennom en labyrint, spiser pac-dots eller pellets. Fire fiender sprer labyrinten og prøver å fange Pac-Man. I nærheten av labyrinten er fire større, blinkende prikker kjent som kraftpellets som gir Pac-Man den midlertidige evnen til å spise fiender. Fiender blir dypblå, reversert og beveger seg langsommere.


Det opprinnelige Pac-Man arkadespillet

For Pac-Man er det tre objekter: Pac-Man, et spøkelse og en pac-punkt. En kraftpellet er egentlig ikke et eget objekt fordi det er en spesiell pac-punkt (vi snakker om hva du skal gjøre om dette i en senere artikkel). Vi vil beskrive spøkelsesobjektet fordi det er mer interessant.

Spøkelset har tilstander av:

  • farge
  • navn (+1 hvis du kan nevne alle spøkelsene fra toppen av hodet)
  • stat (spiselig eller ikke)
  • retning
  • hastighet

og oppførsel av:

  • flytting
  • endringstilstand

Konklusjon

Objektorientert programmering er en måte å organisere kode på i et videospill. OOP fokuserer på objekter som er definert av deres tilstand og deres oppførsel.

I neste Quick Tip, snakker vi om prinsippet om sammenhold og begynner å kode grunnleggende struktur for et objekt. Følg oss på Twitter, Facebook eller Google+ for å holde deg oppdatert med de siste innleggene.