Snelle tip intro voor object-georiënteerde programmering voor spelontwikkeling

Welkom bij een nieuwe reeks snelle tips voor objectgeoriënteerd programmeren! We gaan over de principes van OOP en hoe deze kunnen worden gebruikt om georganiseerde code te maken. In dit eerste deel zullen we praten over wat OOP is en waarom het nuttig is, met een paar voorbeelden van hoe het kan worden gebruikt in de ontwikkeling van games..


Wat is objectgericht programmeren?

Object-oriented programming (OOP), in de meest elementaire zin, is een programmeerstijl die wordt gebruikt om code te organiseren. Videogames kunnen overal van een paar duizend regels code (Cut the Rope heeft 15.000) miljoenen regels code lang zijn (Crysis heeft meer dan een miljoen). U kunt zien waarom het zo belangrijk is om code te schrijven die eenvoudig kan worden gewijzigd en onderhouden.

Programmeerstijlen, zoals OOP, helpen om code zo in te delen dat het gemakkelijker te onderhouden en te wijzigen is. OOP helpt code te organiseren door het te organiseren in zogenaamde objecten.

Objecten bevatten informatie over staat en gedrag:

Staten zijn de kenmerken van het object, of de woorden die je zou gebruiken om het te beschrijven, en hebben meestal de vorm van is of heeft descriptors. Een computer is aan of uit, een stoel heeft vier benen en jij hebben een naam.

gedragingen zijn de dingen die het object kan do, of de acties die het object kan uitvoeren uitvoeren, en zijn meestal werkwoorden die eindigen in ing. je bent zittend, gebruik makend van een computer, en lezing Dit artikel.


Waarom is het nuttig??

Zoals eerder vermeld, is OOP nuttig omdat het helpt een onderhoudbare code te creëren die begrijpelijk, aanpasbaar en uitbreidbaar is.

Het helpt ook bij het maken van herbruikbare code door de methode DRY (Do not Repeat Yourself) te volgen: schrijf de code één keer en gebruik deze dan opnieuw, in plaats van kopiëren en plakken.

De OOP-manier van denken leent zich ook goed voor het direct vertalen van real-world objecten en interacties naar code.


Hoe het toe te passen

Ik zal drie verschillende voorbeelden noemen van het toepassen van OOP op videogames. In latere artikelen zullen we bekijken hoe deze voorbeelden kunnen worden gecodeerd, maar voorlopig houden we vast aan het leren identificeren van objecten en hun toestanden en gedragingen.

Asteroids

Laten we ons eerst voorstellen dat we het klassieke spel Asteroids wilden maken. Om te identificeren wat de objecten in Asteroids zijn, probeer het te beschrijven.

Wikipedia beschrijft Asteroids als volgt:

Het doel van Asteroids is om zoveel mogelijk punten te scoren door asteroïden en vliegende schotels te vernietigen. De speler bestuurt een driehoekig gevormd schip dat links en rechts kan draaien, schiet schoten recht naar voren en stuw naar voren. Terwijl het schip beweegt, wordt het momentum niet behouden - het schip komt uiteindelijk weer tot stilstand als het niet stoot.

Bedenk wat in deze beschrijving op zichzelf staat, of de dingen die worden beschreven die toestand en gedrag zouden kunnen hebben. Deze worden onze voorwerpen.

De objecten voor asteroïden zijn: een schip, een asteroïde, een vliegende schotel en een kogel (kan die niet vergeten!). Het leuke aan objecten is dat we dingen gewoonlijk beschrijven in termen van objecten in alledaagse gesprekken, dus onthullen ze zichzelf meestal via een beschrijving.


Het klassieke spel van Asteroids

Nu we onze objecten hebben geïdentificeerd, bepalen we de staat en het gedrag van een van hen: het schip van de speler. Bedenk welke attributen het schip beschrijven; dit zijn de staten. Denk vervolgens na over wat het schip kan doen; dit zijn de gedragingen.

Een schip heeft staten van:

  • omwenteling
  • stuwkracht
  • stoot

en gedrag van:

  • draaien
  • in beweging
  • vuren

Ik zal je laten bepalen wat de toestanden en gedragingen van de overblijvende objecten zijn.

Tetris

Laten we vervolgens een ander klassiek spel bekijken, Tetris. Nogmaals, we beginnen met het beschrijven van Tetris om zijn objecten te vinden.

Een willekeurige reeks Tetrominos valt in het speelveld. Het doel van het spel is om deze Tetrominos te manipuleren, door ze elk opzij te verplaatsen en te draaien met 90 graden eenheden, met als doel om een ​​horizontale lijn van tien blokken te creëren zonder gaten.


Tetris

In Tetris is eigenlijk het enige object een Tetromino. Het heeft staten van:

  • rotatie (in eenheden van 90 graden)
  • vorm
  • kleur

en gedrag van:

  • vallend
  • verplaatsen (zijwaarts)
  • draaiende

Pac-Man

De laatste game die we als voorbeeld gebruiken, is Pac-Man.

De speler bestuurt Pac-Man door een doolhof, eet pac-dots of pellets. Vier vijanden [geesten] zwerven door het doolhof en proberen Pac-Man te vangen. In de buurt van de hoeken van het doolhof zijn vier grotere, knipperende stippen bekend als power pellets die Pac-Man voorzien van het tijdelijke vermogen om de vijanden op te eten. De vijanden worden diepblauw, omgekeerd en bewegen meestal langzamer.


Het originele Pac-Man arcadespel

Voor Pac-Man zijn er drie objecten: Pac-Man, een geest en een pac-dot. Een power-pellet is niet echt zijn eigen object omdat het een speciale pac-dot is (we zullen in een later artikel bespreken wat we hieraan kunnen doen). We zullen het spookobject beschrijven omdat het interessanter is.

De geest heeft staten van:

  • kleur
  • naam (+1 als je alle geesten vanaf de top van je hoofd kunt noemen)
  • staat (eetbaar of niet)
  • richting
  • snelheid

en gedrag van:

  • in beweging
  • veranderende staat

Conclusie

Objectgeoriënteerd programmeren is een manier om code te organiseren in een videogame. OOP richt zich op objecten die worden gedefinieerd door hun staat en hun gedrag.

In de volgende Quick Tip zullen we het hebben over het principe van cohesie en beginnen met het coderen van de basisstructuur van een object. Volg ons op Twitter, Facebook of Google+ om op de hoogte te blijven van de laatste berichten.