Astuce introduction à la programmation orientée objet pour le développement de jeux

Bienvenue dans une nouvelle série de conseils pratiques sur la programmation orientée objet! Nous allons passer en revue les principes de la programmation orientée objet et leur utilisation pour créer du code organisé. Dans cette première partie, nous discuterons de ce qu'est la POO et de son utilité, en vous donnant quelques exemples de son utilisation dans le développement de jeux..


Qu'est-ce que la programmation orientée objet??

La programmation orientée objet (OOP), dans son sens le plus fondamental, est un style de programmation utilisé pour organiser le code. Les jeux vidéo peuvent fonctionner de quelques milliers de lignes de code (Cut the Rope en a 15 000) à des millions de lignes de code (Crysis en a plus d'un million). Vous pouvez voir pourquoi il est si important d'écrire du code pouvant être facilement modifié et maintenu.

Les styles de programmation, tels que OOP, aident à organiser le code de manière à ce qu'il soit plus facile à gérer et à modifier. La POO aide à organiser le code en l'organisant dans ce que l'on appelle des objets.

Les objets contiennent des informations sur Etat et comportement:

États sont les caractéristiques de l'objet, ou les mots que vous utiliseriez pour le décrire, et prennent généralement la forme de est ou a descripteurs. Un ordinateur est soit allumé ou éteint, une chaise a quatre jambes et toi avoir un nom.

Comportements sont les choses que l'objet peut faire, ou les actions que l'objet peut effectuer, et sont généralement des verbes qui se terminent par ing. Vous êtes séance, en utilisant un ordinateur, et en train de lire Cet article.


Pourquoi est-ce utile?

Comme indiqué précédemment, la programmation orientée objet est utile car elle permet de créer un code maintenable - un code compréhensible, adaptable et extensible..

Il aide également à créer du code réutilisable en suivant la méthode DRY (ne vous répétez pas): écrivez le code une fois, puis réutilisez-le, plutôt que de le copier-coller..

Le mode de pensée OOP se prête également bien à la traduction directe en code d’objets et d’interactions du monde réel..


Comment l'appliquer

Je vais énumérer trois exemples différents d’application de la programmation orientée objet aux jeux vidéo. Dans des articles ultérieurs, nous verrons comment coder ces exemples, mais pour l'instant, nous nous contenterons d'apprendre à identifier les objets, leurs états et leurs comportements..

Astéroïdes

Tout d'abord, imaginons que nous voulions créer le jeu classique Asteroids. Pour identifier ce que sont les objets dans les astéroïdes, essayez de le décrire..

Wikipedia décrit les astéroïdes comme suit:

L'objectif de Astéroïdes est de marquer autant de points que possible en détruisant les astéroïdes et les soucoupes volantes. Le joueur contrôle un navire de forme triangulaire qui peut pivoter à gauche et à droite, déclenche des tirs droit vers l’avant et avance en avant. Au fur et à mesure que le navire se déplace, l’élan n’est pas conservé - le navire s’arrête à nouveau s’il n’est pas poussé.

Pensez à ce qui, dans cette description, pourrait être autonome, ou aux éléments décrits qui pourraient avoir un état et un comportement. Ceux-ci deviennent notre objets.

Les objets pour les astéroïdes sont: un navire, un astéroïde, une soucoupe volante et une balle (je ne peux pas les oublier!). La chose intéressante à propos des objets est que nous décrivons normalement les choses en termes d'objets dans les conversations de tous les jours, de sorte qu'elles se révèlent généralement à travers une description..


Le jeu classique des astéroïdes

Maintenant que nous avons identifié nos objets, définissons l’état et le comportement de l’un d’eux: le vaisseau du joueur. Pensez à quels attributs décrivent le navire; ce sont ses états. Pensez ensuite à ce que le navire peut faire. ce sont ses comportements.

Un navire a des états de:

  • rotation
  • élan
  • poussée

et comportements de:

  • tournant
  • en mouvement
  • cuisson

Je vous laisse déterminer quels sont les états et les comportements des objets restants.

Tetris

Ensuite, considérons un autre jeu classique, Tetris. Encore une fois, nous commençons par décrire Tetris pour trouver ses objets.

Une séquence aléatoire de Tetrominos tombe sur le terrain. L’objectif du jeu est de manipuler ces Tetrominos, en les déplaçant latéralement et en les faisant pivoter de 90 degrés, dans le but de créer une ligne horizontale de dix blocs sans lacunes..


Tetris

Dans Tetris, le seul objet est vraiment un Tetromino. Il a des états de:

  • rotation (en unités de 90 degrés)
  • forme
  • Couleur

et comportements de:

  • chute
  • se déplacer (latéralement)
  • tournant

Pac-Man

Le dernier jeu que nous allons utiliser comme exemple est Pac-Man.

Le joueur contrôle Pac-Man à travers un labyrinthe en mangeant des pois ou des pellets. Quatre ennemis [fantômes] parcourent le labyrinthe, essayant d'attraper Pac-Man. Près des coins du labyrinthe se trouvent quatre plus gros points clignotants connus sous le nom de Pellets puissants qui fournissent à Pac-Man la capacité temporaire de manger les ennemis. Les ennemis virent au bleu profond, inversent la direction et bougent généralement plus lentement.


Le jeu d'arcade original Pac-Man

Pour Pac-Man, il existe trois objets: Pac-Man, un fantôme et un pac-point. Une pastille de puissance n'est pas vraiment son propre objet parce que c'est un pac-dot spécial (nous verrons quoi faire à ce sujet dans un article ultérieur). Nous allons décrire l'objet fantôme parce que c'est plus intéressant.

Le fantôme a des états de:

  • Couleur
  • name (+1 si vous pouvez nommer tous les fantômes du haut de votre tête)
  • état (mangeable ou non)
  • direction
  • la vitesse

et comportements de:

  • en mouvement
  • changement d'état

Conclusion

La programmation orientée objet est un moyen d'organiser le code dans un jeu vidéo. La POO se concentre sur les objets définis par leur état et leur comportement.

Dans le prochain conseil, nous parlerons du principe de cohésion et commencerons à coder la structure de base d'un objet. Suivez-nous sur Twitter, Facebook ou Google+ pour vous tenir au courant des derniers messages..