Les points de vie dans un jeu !

Aujourd’hui, beaucoup d’éléments de gameplay sont choses acquises. On n’imagine plus la réflexion, la programmation qui se cachent derrière. A vrai dire on peut s’en foutre … mais pas aujourd’hui! Prenons l’exemple des points de vie !

screenshot
En exclusivité les premières images de SpacePiouPiou !!

A programmer cela paraît assez simple : un nombre X HP que l’on décrémente de N dégâts (HP – N). Si les HP sont égale à zéro, la partie s’arrête : GameOver. Simple, basique ? Eh ben à conceptualiser c’est très poussif. Prenons l’exemple suivant:

Il reste 1 HP au joueur, l’énemi inflige 2 dégâts. Les HP sont à -1. Si je n’ai pas défini des règles strictes, le joueur ne pourra pas mourir car il passe directement de 1 à -1 : les HP ne sont pas égale à zéro, la condition de Game over n’est pas resepectée. Il faut donc définir une valeur minimale à HP impondérable (si HP < 0, alors HP = 0), ou définir une condition de perte moins stricte (game over si HP < ou = à 0). Mais cela peut soulever d’autres problèmes dans mon cas mais passon.

Console HP
Une petite partie simple du code … Et je regarde que je fais doublon : ici UpdateHealth() est ma méthode de mise à jour des PVs à l’écran. Elle apparaît 2 fois : si le joueur à GameOver elle n’est pas nécessaire car les HP restent à 0. Le plus juste est donc de dire : Si on a pas GameOver (if (gameController.gameOver == false)) => On met à jour les PVs. Elle est inutile avant 🙂

Comme vous le voyez c’est à la foi cruellement logique et très verbeux. C’est ça la programmation en C# , schématiquement. Et ma propre découverte de ce langage m’a donné des idées pour mon jeu.

Prenons le même raisonnement mais ajoutons des HP. Sans limite haute, un item qui redonne de la vie ( HP + N) pourra augmenter indéfiniment si le joueur ne se fait pas toucher ou très peu. Il faut donc définir une valeur HPmax qui permet de dire : si HP > HPmax, alors HP = HPmax. On peut très bien rajouter un système de points à cela : dans Mario Bros , si vous prenez un champi ou une fleurs alors que vous êtes grand ou Mario feu , vous gagnez 1000 points.

De tout ça germent les idées de mon gameplay. Plutôt que de faire un shooter simple, j’incorpore des composantes RPG: des items de régénération peuvent rendre de la vie, et des bonus peuvent augmenter la limite maximale de HP. C’est comme un personnage qui gagne un niveau et qui augmente ses HPs ! Mon Jeu devient donc un shooter spatial à composante RPG 🙂

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s