Découvrez d'autres versions de ce jeu culte
-Histoire
|
|
L'HISTOIRE DE PONG OU LA NAISSANCE D'UN JEU VIDEO
introduction Un jeu vidéo est un jeu dans lequel les mouvements sur un écran de visualisation sont commandés de manière électronique. Un jeu vidéo est l'aboutissement d'un considérable travail, de la part d'une équipe de spécialistes chargés de tâches multiples et variées : production, création, réalisation, exploitation et distribution... La conception d'un jeu informatique est donc l'un des exemples des nombreux échanges et des relations entre le français et les mathématiques. En effet, tout jeu vidéo est basé sur un scénario que les informaticiens exploitent pour réaliser le jeu, par le biais de programmes mathématiques, tels que les programmes de graphisme de géométrie dans l'espace... Présents sur le marché depuis 40 ans, les jeux vidéo connaissent depuis quelques années un véritable essor. Comment ces jeux se sont-ils développés?
Les débuts du jeu vidéo
L'histoire débute en 1951 : un ingénieur américain de la société Loral Electronics, Ralph Baer, chargé de concevoir la meilleure télévision du monde propose en vain d'y intégrer un module de jeu. En 1958, un physicien américain, Willy Hoginbotham crée pour le plaisir le premier jeu video de l'histoire : il adapte sur un écran cathodique de 15 pouces un jeu de tennis qu'il avait auparavant programmé sur un écran d'oscilloscope.
Il faut attendre 1962 pour voir découvrir le premier jeu intéractif sur support informatique.Un étudiant du Massachussetts Institute of Technology, Steve Russel, développe en effet sur un ordinateur Programmed Data Processor-1 le jeu "Spacewar". Un étudiant de l'Université de l'Utah, Nolan Bushnell , fervent utilisateur de ce jeu, envisage en 1965 de l'adapter aux salles d'arcade, c'est-à-dire des salles de jeu publiques où l'on peut pratiquer diverses jeux vidéo. Mais ceci s'avère beaucoup trop coûteux et le projet ne voit donc pas le jour. En 1966, les projets de Ralph Baer se concrétisent : c'est alors qu'il développe un jeu de tennis qui se pratique sur une télévision. Son invention est déposée en 1968. A Baer, succède en 1970 Bushnell qui met également au point un système adaptable sur une télévision. En effet, il adapte le jeu spacewar dans un meuble pouvant être relié à un télévision. Il appelle le jeu Computer Space. La société Nutting, constructeur de jeux d'arcade est intéressée et engage Bushnell. En 1972, après avoir fondé la société Atari, Bushnell,assisté de Dabney et Al Alcorn, met au point un jeu de tennis, très basique, qui connaitre par la suite un succès mondial : PONG
La commercialisation de Pong
Bushnell a donc réussi à mettre au point le premier jeu vidéo accessible à tous. Mais il rencontre dès lors les premières difficultés de la commercialisation. Bushnell tente de trouver à Pong un distributeurs pour les salles d'arcades. Après plusieurs refus, il décide de commercialiser le jeu lui même. Pong est testé dans un bar local; en Californie.L'expérience se révéla concluante : en effet, douze heures après l'installation du jeu, le patron du bar téléphona à Nolan Bushnell pour lui dire que la machine était en panne. Il y avait trop de pièces de 25 cents accumulées dans le bac, ce qui provoquait un court-circuit. En 1974, suite au succès en salle d'arcade, Atari lance les systèmes Pong, des consoles permettant de jouer au jeu chez soi, sur sa télévision. De nombreuses versions, plus perfectionnées, suivront ce prototype. En fait, à partir de cette époque, Atari produit 10 000 unités de Pong en quelques mois. Bushnell est ainsi le premier à avoir transformé l'expérience vidéoludique en activité profitable
La programmation de Pong
Comme tous les logiciels, Pong pose d'une manière générale le problème de la communication entre l'homme et l'ordinateur que l'on peut étudier à travers des exemples. Ainsi pong est le premier jeu vidéo et il permit d'ouvrir la voie de la programmation permettant ainsi le développement de nombreux langages dont le langage C. Comment communiquer avec les ordinateurs?
A/ Le code binaire
Il convient de rappeler que toutes les informations traitées par un ordinateur sont codées sous forme de nombres. Ces derniers ne sont pas décimaux mais binaires. En effet, l'ordinateur fonctionne par séries d'impulsions électriques que certains composants, les transistors, laissent ou ne laissent pas passer. Une impulsion est codée par le chiffre 1 et une absence d'impulsion par le chiffre 0. Autrement dit, l'unité de base du code binaire est le bit (abréviation de binary digit), qui vaut 0 ou1. Tous les nombres sont donc exprimés par des séquences de chiffres 1 et 0. Par exemple, le tableau ci- dessous montre comment s'écrivent en binaire les quatre premiers nombres (figurant dans la colonne de gauche). Ainsi le nombre 3 équivaut à 011 c'est-à-dire 0x2^2 +1x2^1+ 1x2^0.
0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 L'arithmétique binaire respecte quatre règles fondamentales : 0+0=0 report 0 0+1=1 report 0 1+0=1 report 0 1+1=0 report 1 Par exemple : 10 + 10 = 100 Autrement dit, en base décimale, 2+2=4 !!!
L'unité centrale d'un ordinateur contient des circuits électroniques, appelés « portes logiques » qui sont capables de traiter les informations binaires. Les hautes tensions représentent le code 1 et les basses le code 0.Les portes logiques transforment les signaux d'entrée en signaux de sortie en respectant les quatre règles de l'addition binaire.
B/ Le langage de l'homme à l'ordinateur
Puisque l'ordinateur ne traite que des nombres binaires, il faut pour s'adresser à lui, traduire le langage humain en code binaire. Mais ces deux langages sont si éloignés l'un de l'autre que le processus de traduction s'effectue au moyen d'un langage intermédiaire appelé langage de programmation. Alors que le code binaire est un langage de "bas niveau" directement compris par la machine, le langage C est un langage "de haut niveau" plus facile à comprendre même s'il exige un autre apprentissage que celui de la langue courante. Cependant, pour être exécutées par l'ordinateur, les instructions en langage de haut niveau doivent être préalablement interprétées ou compilées par un compilateur. Avant traduction, le fichier texte proposé au compilateur est un « code source ». Après traduction le fichier au format binaire obtenu du compilateur est un « code programme ». Il est possible de présenter un exemple très simple de programmation en "langage C" (inventé en 1972 par l'américain Dennis Ritchie).
1 : /* 02L01.c : Mon premier
programme C */ 2 : # include < stdio.
h> 3 : 4 : main () 5 : { 6 : printf (« Bonjour !
» C.\n*) ; 7 : return 0 ; 8 : }
Tout fichier programme C se compose dun nom (02L01) suivi de l'extension «.c ». La première ligne commence et finit par une barre oblique et un astérisque marquant le début des commentaires utiles au programmateur mais dont le compilateur ne tient pas compte. A la deuxième ligne la directive # include ordonne au pré processeur de rechercher le fichier indiqué (stdio.h) dont le contenu va être inclus dans le programme C par le pré-processeur. A la quatrième ligne, la fonction « main » est la fonction principale. Tout programme C la contient et cesse de s'exécuter quand toutes les instructions qu'elle porte ont été traitées. A la sixième ligne la fonction « printf () » est appelée pour afficher le message « Bonjour ! ». Le caractère « \n » de saut de ligne ordonne a la fonction printf de passer à la ligne suivante après l'affichage du message. A la septième ligne, l'instruction « return 0 » signifie que la fonction « main» renvoie 0, le programme se terminant normalement. Si une autre valeur que 0 était renvoyée, ce serait un message d'erreur.A condition de disposer d'un compilateur,il est possible de transformer ce fichier texte en fichier binaire exécutable par l'ordinateur (02L01. exe). En exécution des instructions, l'ordinateur doit faire apparaître le message suivant:
C : \ app> 02L01 Bonjour ! C : app>
C/ Langage de l'ordinateur à l'homme
L'exemple précédent, tiré d'un programme C montre déjà comment l'ordinateur peut renvoyer à lutilisateur humain des informations après qu'elles aient été traitées par la machine.Dans tous les cas, il sera nécessaire de passer du langage binaire à des signes intelligibles par l'homme. La nature des signes (caractères, sons, images, etc...) commande la complexité du processus de traduction permettant à l'ordinateur de communiquer avec l'homme. Dans certains cas, cette traduction apparaît relativement simple : il en est notamment ainsi du procédé qui permet de faire correspondre un code numérique binaire avec le chiffre affiché grâce à des cristaux liquides comme l'indique le schéma ci- dessous :
Ainsi nous avons vu que toute programmation informatique nécessite des échanges entre les mathématiques et le français par l'intremédiaire du code binaire. Mais la programmation fait aussi intervenir des échanges d'autres types. Le langage C, langage informatique de haut niveau fait intervenir ce que l'on appelle des opérateurs arithmétiques :
Parmi les opérateurs arithmétiques, les opérateurs multiplication, division et reste ont une priorité supérieure aux opérateurs addition et soustraction (comme dans les règles de calculs mathématiques) Ainsi 2+3*10 donc 32 et non 50. En effet la multiplication ayant une priorité supérieure à l'addition, le programme calcul d'abors 3*10 puis ajoute 2 au résultat obtenu. Il est possible de modifier l'ordre des priorités en ajoutant des parenthèses. Dans l'expression ci après : (2+3)*10 le programme additionne d'abors 2+3 puis multiplie le résultat obtenu par 10. Mais le programme C utilise également des constantes et des variables. Comme son nom l'indique, une constante est une valeur non modifiable. A la différence d'une variable qui peut contenir des valeurs différentes. Une même inscription peut contenir constantes et variables. Exemple : i=1. Le symbole i reçoit le symbole constant 1. En d'autres termes, i contient la valeur de 1 après exécution de l'instruction. Par ailleurs, en langage C une instruction est une ligne exécutable, terminé par un point virgule. Ainsi ce langage intermédiaire unit et rapproche non seulement des chiffres (relevant du domaine des mathématiques) mais aussi des signes de ponctuaction (français). Un nouvel échange est établi au niveau de la typographie. Ainsi une programmation comme nous l'avons vu nécessite un langage intermédiaire entre le langage humain et le langage machine. Ces échanges se manifestent par le code binaire, par la présence de nombreux éléments du domaine mathématique allié à la typographie de la langue française. Mais il est également important de signaler que la programmation de Pong résulte de l'existence d'hypothèses, termes renvoyant aussi bien aux mathématiques qu'au français. Ainsi donnons un exemple typique d'hypothèses : Si ( ventes<5000) alors bonus=0 congés=0 Si bonus=25 congés=2 Considérons les deux sorties suivantes du programme. Il calcule une prime différente selon le chiffre des ventes de cahcun. Voici la première sortie : Quel est le nom du vendeur? M. Dupond Ventes du dernier mois? 3234.43 M. Dupond a gagné une prime de 0 euro et a le droit à 0 jours de congés. Considérons maintenant la sortie suivante Quel est le nom du vendeur? M. Dupont Ventes du mois dernier? 5642.43 M. Dupont a gagné une prime de 25 euros et a droit à 2 jours de congés. C'est sur ce principe d'hypothèses que fonctionne le jeu Pong : si la balle sort, nous perdons dans le cas contraire nous gagnons. La programmation de ce permier jeu vidéo résulte sur l'existence de ces deux hypothèses. Bien évidemment il s'agit d'un jeu très simple. Mais il aboutit à des programmations de haut niveau. Ceux-ci verront se développer le nombre d'hypothèses ainsi que le graphisme avec l'apparition de la 3D. De nos jours, les jeux vidéo nécessitent non seulement un véritable scénario mais aussi une programmation basée sur de nombreuses hypothèses et une conception graphique développée. |