Making Of

Code Player

Création de jeux video

Un jeu video est un programme informatique un peu particulier

Tous les logiciels (tableur, traitement de texte, navigateur, jeux vidéo) sont élaborés via un langage de développement. Le code source est composé d'une suite d'instructions indiquant quoi faire à l'ordinateur.

 

Un jeu vidéo est un programme informatique qui gère les évènements. Tout doit être prévu...

 

Un programme de jeu vidéo est composé de deux parties.

 

Initialisation :

Cette première partie du programme initialise le jeu : c'est là que sont chargés dans la mémoire de l'ordinateur les graphismes, les musiques et les sons ainsi que des informations pour le jeu (Map, level, sauvegardes...).

 

Game Loop :

La seconde partie gère en temps-réel le jeu. C'est une boucle infinie synchronisée sur le raffraichissement de l'écran (entre 30 et 60 fois par seconde selon les cas). Ainsi, le programme répète inlassablement toutes les opérations nécessaires au bon déroulement du jeu :

  • Test des interfaces
  • Gestion des coordonnées
  • Test les collisions
  • Affichage

 

Il y a des ralentissements quand un programme n'a pas assez de temps pour tout faire pendant le temps imparti.

Game Loop

Des langages de programmation pour écrire les jeux video

Pour écrire les instructions, le programmeur utilise un langage de programmation. Le langage le plus primitif, le langage machine, est composé de 0 et de 1. Il est presque impossible pour un humain de construire un programme avec un tel langage. Ainsi, très vite sont apparus des langages de plus en plus simples à utiliser (Basic, Script, C, C++,C#...).

 

 

Il faut surtout retenir que tous les langages reposent sur l’utilisation d’éléments permettant de faire des calculs, des comparaisons, des boucles, des sauts….

 

Game Loop

Manipulation de variables

La dimension graphique est un élément clé dans la programmation d'un jeu vidéo. Au centre de tout, l'écran de jeu est composé d'une grille de points répartis en lignes et colonnes. Cette grille est un plan où s'affichent les décors et les autres éléments.

 

Un programme doit permettre de gérer toutes les actions d'un jeu.

 

En prenant l'exemple du jeu Pong (le plus simple à réaliser), voici ce que programmer un jeu signifie...avec pour exemple la gestion de la raquette droite. En informatique, tous les éléments caractérisant la raquette sont identifiés. Ainsi, les coordonnées X et Y, la hauteur, la largeur de la raquette sont renseignées dans des variables que nous créons en mémoire dans l'ordinateur. Par exemple, nous pouvons créer les variables suivantes :

 

  • PosX contiendra la valeur de la position en x
  • PosY contiendra la valeur de la position en y
  • Largeur contiendra la valeur de la largeur de la raquette
  • Hauteur contiendra la valeur de la hauteur de la raquette

 

Il est possible de modifier la valeur de cette variable par une simple opération : PosY+1 ajoutera 1 à la variable PosY et fera descendre de 1 pixel la raquette...

 

 

Game Loop

Le programme doit tout prévoir

L'image ci-contre représente toutes les séquences permettant le déroulement du jeu Mad Fire. Généralement, dans un jeu, le programmeur commence par calculer toutes les positions des objets, effectue les tests de collisions, corrige les positions puis affiche tous les objets. L'ensemble de ces opérations est répété inlassablement par le programme.

 

 

Plusieurs éléments sont visibles sur la capture d'écran du jeu MadFire.

  • Une image de Galaxie en fond d'écran
  • Un décor de pierre en arrière plan
  • Un décor de premier plan latéral
  • Un vaisseau en bas avec 2 clones de chaque côté
  • Un alien rouge avec des piquants
  • Des tirs de missile

 

Chacun de ces objets est identifié par le programme à l'aide de variables.

Chaque clone du vaisseau est identifié par plusieurs variables :

  • PositionX, Position Y
  • Image d'animation
  • Etat (actif ou inactif)

 

 

Le jeu MadFire est composé de nombreuses images.

 

L'image de fond permet d'effacer complètement l'écran de jeu avant de tout réafficher aux nouvelles positions...

 

Pour les objets animés, chaque animation est dessinée; le programme est écrit de manière à afficher les bonnes images au bon moment.

 

Par exemple, pour le vaisseau du joueur, lorsque celui-ci se déplace vers la gauche, le programme affiche les images du vaisseau qui s'inscline à gauche...

Exemple de code :

 

Le code ci-dessous est un petit extrait d'un algorithme permettant de calculer la direction que doit prendre un missile à tête chercheuse. Le programmeur utilise beaucoup d'opérations mathématiques plus ou moins complexes pour réaliser un jeu en intégrant des éléments de gravités, d'accélération, de balistique....

 

Pour info, le programmeur peut mettre des commentaires dans son code. Ces textes, précédés de signes distinctifs (ici // ) ne seront pas lus par l'ordinateur.

// Position du missile à tête chercheuse

x1=missilex

y1=missiley

 

// Position du méchant sur lequel le missile doit se diriger

x2=mechantx

y2=mechanty

 

A.f = x1-x2

b.f = y1-y2

c.f = -Sqr(A*A+b*b)

 

Angle.f = ACos(A/c)*180/#PI

If y1 < y2 : Angle=360-Angle : EndIf

AngDif = Abs(Angle - 360)

Game Loop