Suggerimento rapido introduzione alla programmazione orientata agli oggetti per lo sviluppo di giochi

Benvenuti in una nuova serie di suggerimenti rapidi sulla programmazione orientata agli oggetti! Discuteremo i principi di OOP e come possono essere utilizzati per creare codice organizzato. In questa prima parte, parleremo di cosa è OOP e perché è utile, con alcuni esempi di come potrebbe essere utilizzato nello sviluppo del gioco.


Cos'è una programmazione orientata agli oggetti?

La programmazione orientata agli oggetti (OOP), nel suo senso più fondamentale, è uno stile di programmazione utilizzato per organizzare il codice. I videogiochi possono essere eseguiti da poche migliaia di righe di codice (Cut the Rope ha 15.000) a milioni di righe di codice (Crysis ne ha oltre un milione). Puoi capire perché è così importante scrivere codice che può essere facilmente modificato e mantenuto.

Gli stili di programmazione, come OOP, aiutano a organizzare il codice in modo tale da renderlo più facile da mantenere e modificare. OOP aiuta a organizzare il codice organizzandolo in ciò che è noto come oggetto.

Gli oggetti contengono informazioni su stato e comportamento:

stati sono le caratteristiche dell'oggetto o le parole che useresti per descriverlo e di solito prendono la forma di è o ha descrittori. Un computer è sia acceso che spento, una sedia ha quattro gambe e tu avere un nome.

comportamenti sono le cose che l'oggetto può fare, o le azioni che l'oggetto può eseguire, e di solito sono i verbi che finiscono ing. Siete seduta, utilizzando un computer e lettura Questo articolo.


Perché è utile?

Come affermato in precedenza, OOP è utile perché aiuta a creare codice gestibile - codice comprensibile, adattabile ed estensibile.

Aiuta anche a creare codice riutilizzabile seguendo il metodo DRY (Do not Repeat Yourself): scrivi il codice una volta e poi riutilizzalo, invece di copiare e incollare.

Il modo di pensare OOP si presta bene anche alla traduzione diretta di oggetti e interazioni del mondo reale in codice.


Come applicarlo

Elencherò tre diversi esempi di come applicare OOP ai videogiochi. Negli articoli successivi, vedremo come codificare questi esempi, ma per ora ci limiteremo a imparare a identificare gli oggetti e i loro stati e comportamenti.

Asteroids

Innanzitutto, immaginiamo di voler realizzare il classico gioco Asteroids. Per identificare quali sono gli oggetti in Asteroids, prova a descriverlo.

Wikipedia descrive Asteroids come segue:

L'obiettivo di Asteroids è quello di segnare più punti possibile distruggendo asteroidi e dischi volanti. Il giocatore controlla una nave a forma triangolare che può ruotare a sinistra ea destra, spara in avanti e spingere in avanti. Mentre la nave si muove, la quantità di moto non viene conservata - la nave alla fine si ferma di nuovo quando non spinge.

Pensa a cosa in questa descrizione potrebbe stare da solo, o alle cose che sono descritte che potrebbero avere stato e comportamento. Questi diventano i nostri oggetti.

Gli oggetti per gli asteroidi sono: una nave, un asteroide, un disco volante e un proiettile (non si possono dimenticare quelli!). La cosa bella degli oggetti è che normalmente descriviamo le cose in termini di oggetti nella conversazione di tutti i giorni, quindi di solito si rivelano attraverso una descrizione.


Il classico gioco di asteroidi

Ora che abbiamo identificato i nostri oggetti, definiamo lo stato e il comportamento di uno di essi: la nave del giocatore. Pensa a quali attributi descrivono la nave; questi sono i suoi stati. Quindi pensa a ciò che la nave può fare; questi sono i suoi comportamenti.

Una nave ha stati di:

  • rotazione
  • impulso
  • spinta

e comportamenti di:

  • svolta
  • in movimento
  • sparo

Ti consentirò di determinare quali sono gli stati e i comportamenti degli oggetti rimanenti.

Tetris

Quindi, consideriamo un altro gioco classico, Tetris. Di nuovo, iniziamo descrivendo Tetris per trovare i suoi oggetti.

Una sequenza casuale di Tetrominos cade nel campo di gioco. L'obiettivo del gioco è manipolare questi Tetrominos, spostandoli di lato e ruotandoli di 90 gradi, con l'obiettivo di creare una linea orizzontale di dieci blocchi senza spazi vuoti.


Tetris

In Tetris, l'unico oggetto è un Tetromino. Ha stati di:

  • rotazione (in unità di 90 gradi)
  • forma
  • colore

e comportamenti di:

  • caduta
  • spostandosi (di lato)
  • rotante

Pac-Man

L'ultimo gioco che useremo come esempio è Pac-Man.

Il giocatore controlla Pac-Man attraverso un labirinto, mangiando pac-punti o pallini. Quattro nemici [fantasmi] vagano nel labirinto, cercando di catturare Pac-Man. Vicino agli angoli del labirinto ci sono quattro punti più grandi e lampeggianti noti come pallini di potere che forniscono a Pac-Man l'abilità temporanea di mangiare i nemici. I nemici diventano blu intenso, invertono la direzione e di solito si muovono più lentamente.


Il gioco arcade Pac-Man originale

Per Pac-Man ci sono tre oggetti: Pac-Man, un fantasma e un pac-dot. Un power pellet non è proprio un suo oggetto perché è un pac-punto speciale (parleremo di cosa fare in un articolo successivo). Descriveremo l'oggetto fantasma perché è più interessante.

Il fantasma ha gli stati di:

  • colore
  • nome (+1 se puoi nominare tutti i fantasmi dalla cima della tua testa)
  • stato (commestibile o non)
  • direzione
  • velocità

e comportamenti di:

  • in movimento
  • cambiare stato

Conclusione

La programmazione orientata agli oggetti è un modo per organizzare il codice in un videogioco. OOP si concentra su oggetti che sono definiti dal loro stato e dal loro comportamento.

Nel prossimo suggerimento, parleremo del principio di coesione e inizieremo a codificare la struttura di base di un oggetto. Seguici su Twitter, Facebook o Google+ per tenerti aggiornato con gli ultimi post.