images bannieres

Mathgames

Cours de mathématiques pour la programmation de jeux vidéo

Accueil

Bienvenue sur mon modeste site web sans prétention où je vous présente plusieurs cours de mathématiques de base pour la programmation de jeux vidéo, j'ai choisi comme sujets la trigonométrie, les vecteurs et une partie infime de l'analyse. Ensuite sous la rubrique « programmation », nous étudierons des différents algorithmes d'un jeu vidéo avec avion mère qui vise sur plusieurs séries d'avions avec tir de munitions et animation de collision, on le programmera avec une couche du langage Java orienté objet dans un IDE (mot anglais, pour integrated development environment) qui veut dire environnement de développement intégré. On utilisera Processing* pour programmer votre jeu vidéo, cela ressemblera à la vidéo ci-dessous qui est le projet de jeu vidéo UNITÉ-1,* un jeu vidéo « rétrogaming » remake de 1942* que je viens tout juste de finir de programmer fin décembre 2016 en version web avec la participation de Carlos un ami d'enfance qui de par son expérience est un programmeur averti, nous avons commencé l'apprentissage des langages de programmation informatique en tant qu'autodidacte, en 1983, jusqu'à aujourd'hui où vous lisez ces lignes. Pour l'instant, le jeu vidéo se lance sur Linux, Mac OS X, PC Windows et sur plateforme Android (mobile et tablette).


Note : Processing* est un environnement de programmation qui a été conçu pour la création graphique interactive. C'est un logiciel open source qui repose sur une couche Java orienté objet. Son principe majeur est la simplicité, tant dans la syntaxe du langage que dans la mise en oeuvre des programmes. Il permet de générer des images 2d et 3d et il peut être étendu à l'animation, à la gestion de flux vidéos, à la génération et à la manipulation de sons, à l'interfaçage d'entrées-sorties, etc...


Note : 1942* est un jeu vidéo 2d de type shoot them up à défilement vertical sorti en 1984 sur système d'arcade Z80 Based de Capcom, puis porté par la suite sur de nombreuses autres machines. Il s'agit du premier jeu développé par Yoshiki Okamoto pour Capcom.

article wikipédia.


Note : UNITÉ-1* contient plus de 4 350 lignes de code*, un fichier source index HTML, 29 fichiers sources Javascript, un dossier data pour les ressources de toutes les images et un dossier sounds pour tous les bruitages sonores. Toutes les images et décors du jeu vidéo ont été développées par Claire Méjean, qui assure une remarquable aptitude dans son métier d'infographiste. Ce jeu vidéo contient cinq niveaux au total (Océan, Désert, Montagne, Forêt et agglomération) avant d'arriver à la finale où se trouvent les boss et leurs vassaux au-dessus de l'Océan.

Voici ces deux versions différentes de ces jeux vidéo, 1942 et UNITÉ-1 un jeu vidéo « rétrogaming » que j'ai programmé avec une couche du langage Java orienté objet dans l'environnement Processing qui a débuté, en 2013, pour arriver jusqu'au bout du programme, en 2015, puis une seconde version web finalisée cette fois-ci programmée avec le langage Javascript dans l'environnement P5.js, en 2016, pour pouvoir l'intégrer dans cette page web. Vous pouvez voir les démos ci-dessous.


Note : la ligne de code*, ou ligne de code source (SLOC en anglais) est une métrique logicielle servant à mesurer la taille d’un programme informatique en dénombrant le nombre de lignes de son code source. Les lignes de code sont habituellement employées pour quantifier l'effort qui sera exigé pour développer un programme informatique, ainsi que pour estimer la valeur d'un logiciel produit.

Difficulté de la mesure : La ligne de code est un indicateur. Il est imparfait, et comporte des défauts. Cependant, c'est un élément, parmi d'autres, qui permet d'évaluer le coût d'un programme.
Il y a plusieurs manières de mesurer la taille d'un programme:

  1. nombre de lignes contenues dans les fichiers source : lignes physiques terminées par un retour chariot.
  2. nombre de lignes de code contenues dans les fichiers source : lignes physiques - lignes vides - lignes contenant seulement des Commentaires (informatique).
  3. nombre de lignes de code avec des instructions contenues dans les fichiers source : lignes physiques - lignes vides - lignes contenant seulement des commentaires - lignes contenant seulement des accolades ou parenthèses.
  4. nombre d'instructions

article wikipédia.

Note : 4350 lignes de code, c'est infinitésimal par rapport à des programmes ou application qui font des dizaines de millions de lignes de code, mais aussi les développeurs sont des centaines à programmer sur de tel projet.

Exemple : 4350 << 15 753 931 lignes de code.


Note : en langage mathématique le symbole << veut dire « beaucoup plus petit que ».


Retrogaming

Nostalgie de la décennie des années 1980

UNITÉ-1

J'ai du respect pour Yoshiki Okamoto et si je pouvais le rencontrer s'il est toujours de ce monde, je lui dirais que son jeu vidéo original 1942 est tout simplement meilleur sur tous les points de vue que le jeu vidéo que j'ai développé UNITÉ-1 pour plusieurs raisons dont une, c'est que 1942 a été programmé sur la base d'un microprocesseur 8 bits, c'est-à-dire pour les connaisseurs que son jeu vidéo a un grain unique et inimitable que les PC 64 bits de maintenant ne peuvent pas et ne pourront jamais reproduire à l'original d'un microprocesseur 8 bits de l'époque de la décennie des années 1980.

1942 version original de Yoshiki Okamoto (1984)

UNITÉ-1 remake de 1942 par himalaya2004 (2016)


Vous pouvez cliquer sur l'image ci-dessous pour jouer en ligne.

new game

War in Space

Voici mon nouveau jeu vidéo, un994, en développement que je viens tout juste de finir en novembre 2017, ce jeu vidéo contient quatre niveaux avec bruitage sonore, la durée totale du jeu est d'environ 44 minutes en l'ayant programmé avec l'horloge interne du PC, c'est une suite de mon précédent jeu vidéo UNITÉ-1 qui se déroulait sur terre et au-dessus de l'océan, pour cette suite logique qui se passe en périphérie de la planète terre dans la zone de l'orbite terrestre basse allant jusqu'à 2 000 kilomètres d'altitude, située entre l'atmosphère et la ceinture de Van Allen, cette fois-ci, Il faudra anéantir cette horde de renégats et leur flotte de véhicule spatiaux et couper toutes les communications de leurs satellites transmettant des ondes radio vers la terre. War in Space est un jeu vidéo fictif.

Note : si vous jouer à ce jeu vidéo, en arrivant entre la fin du niveau deux et un petit peu après le niveau trois, vous vous apercevrez que la musique du jeu s'arrête toute seule, mais les bruitages sonores continue, j'ai décelé un bug* informatique que je n'arrive pas à corriger et je n'ai pas l'esprit à cela pour le moment pour rectifier ce bug de ma part dans le codage de ce programme qui contient 3 130 lignes de code, sinon le jeu est jouable sans problème, en fait, quand la musique du jeu s'arrête, il faut couper le son et le remettre de nouveau si vous le voulez, mais le problème persiste un peu plus loin dans le temps et ainsi de suite.

Note : En informatique, un bug* (mot anglais bug) ou bogue (au Nouveau-Brunswick, au Québec et en France) est un défaut de conception d'un programme informatique à l'origine d'un dysfonctionnement.

article wikipédia.

War in Space par himalaya2004 (2017)


Vous pouvez cliquer sur l'image ci-dessous pour jouer en ligne.

new game

Lunar Lander

Un peu de physique avec Newton et Lunar Lander, de nouveau, je vous présente mon avant dernier jeu vidéo avec simulation de la gravité et bruitage sonore que je viens tout juste de finir de programmer en décembre 2017, ce jeu contient 2 275 lignes de code et simule l'atterrissage ou l'alunissage d'un spacecraft sur la lune, ce jeu contient dix stages et ressemble beaucoup aux jeux vidéo sur console des années 80, je le voulais vintage, rétrogaming, simple graphiquement et avec des couleurs sobres. Je viens de m'apercevoir que j'aurais dù diviser par dix l'échelle de l'altitude du spacecraft, je le ferais plus tard dans une nouvelle mise à jour de ce jeu vidéo Lunar Lander si j'ai le temps. Une des consoles les plus vintage qui a exister sortie, fin 1982, était la console de jeux « vectrex » qui a cessé d'être produite en 1984 après le krach du jeu vidéo de 1983. Vous pourrez voir ses caractéristiques « ici ».

Lunar Lander par himalaya2004 (2017)


Vous pouvez cliquer sur l'image ci-dessous pour jouer en ligne.

new game

Lives on earth

De nouveau, je vous présente mon dernier jeu vidéo Lives on earth que je viens de finir de développer au mois d'août 2018, ce jeu contient plus de 4 350 lignes de code, je vous laisse juger par vous-mêmes, ce jeu se passe dans l'espace avec défilement de différentes planètes et fini au-dessus de la planète terre. Lives on earth est un jeu vidéo fictif.

Lives on earth par himalaya2004 (2018).


Vous pouvez cliquer sur l'image ci-dessous pour jouer en ligne.

new game

Space Invaders par Tristan Brismontier

Voici Space Invaders, un jeu vidéo programmé par Tristan Brismontier qui l'a mis sur Internet que j'ai ensuite récupéré en ligne pour lui faire de la rétro-ingénierie (anglais: reverse engineering*), son jeu vidéo était en noir et blanc avec les blocs de défense verte et avec la participation de Carlos, nous avons hacker les codes sources du programme en lui rajoutant 15 fonds d'écran tirés aléatoirement avec le nombre de blocs de défense qui varie suivant les différents niveaux sur le thème de l'espace et nous avons rajouté une icône (on/off) pour les bruitages sonores. Au passage, j'ai redessiné le graphique du canon dans la version hacker, les démos de ces deux jeux vidéo, sont ci-dessous.

Note : reverse engineering* veut dire activité qui consiste à étudier un objet pour en déterminer le fonctionnement interne ou sa méthode de fabrication.

article wikipédia.

SpaceInvader

Vous pouvez cliquez sur l'image ci-dessous pour jouer en ligne.

SpaceInvader

Space Invaders version hacker par Carlos et himalaya2004 (2013)

Télécharger la version hacker de Space Invaders « ici ».


Cette version hacker, est pour les systèmes Linux et Windows, pour la version Mac OS X, la version Linux devrait être compatible car ces deux derniers systèmes son programmé sur un même noyau système commun qui se nomme Unix.


Sous la rubrique « Programmes avec P5.js », vous trouverez quelques programmes que j'ai développés avec p5.js, c'est une nouvelle version pour le web sorti, en 2014, de Processing qui remplace l'ancienne version web de Processing.js. Vous pourrez visionner les vidéos de mes projets informatiques sur Youtube ou votre navigateur internet sur Google ou autre navigateur en tapant himalaya2004.


Applications de géométrie

Je vous présente une application de bureau cette fois-ci que j'ai programmée avec le langage Java orienté objets dans l'environnement Netbeans, en 2008 et remis au goût du jour, en 2014, dans l'environnement Eclipse qui se nomme MathGéo, ce programme calcule les aires, périmètres, volumes de plusieurs figures géométriques et fait quelque conversion d'unité de mesure. Je vous laisse voir aussi la même application de Mathgéo en version web que j'ai nommé cette fois-ci MathGéométrie que j'ai développé, en 2014, avec les langages HTML, CCS3 et Javascript avec la participation de Carlos qui sans lui n'aurait pas vu le jour dans cette version bien définie. Les illustrations des figures géométriques de la version bureau et web, sont de Claire Méjean encore une fois.

MathGéo (2008 - 2014)

Télécharger la version de MathGéo « ici ».

géométrie géométrie géométrie

MathGéométrie (2014)

Cliquer sur l'image ci-dessous pour essayer MathGéométrie en ligne.

géométrie

Note : il vous faudra la machine virtuelle Java d'installé pour que la version bureau de MathGéo puisse s'ouvrir sur votre PC, cette version est multiplate-forme, c'est-à-dire que cette application peut s'ouvrir sur les systèmes Linux, Mac OS X, et Windows.


Système de positionnement par satellites

La vidéo ci-dessous est une simulation sur le futur système de positionnement par satellite de Galileo européen, que j'ai entièrement programmé avec une couche du langage Java orienté objet dans l'environnement Processing, par contre pour la partie mathématique, j'ai été aidé par François Foucaut un professeur de mathématiques pour positionner aux coordonnées sphériques les 30 satellites répartis sur trois orbites différentes du système Galileo.

Note : ne fête par attention à la texture plaquée sur la terre en rotation dans la simulation ci-dessous, vous verrez que le continent de l'Amérique ne se trouve pas à sa place, c'est parce que, j'ai eu un problème avec les paramètres en retouchant le code source quelques mois après avoir développé ce programme qui date du mois de mai 2012 et que je n'ai pas pu remettre en place à cause de la texture du globe terrestre.

Programme version Processing de Galileo (2012)


Note : dans la rubrique « satellites artificiels » en haut à droite, vous verrez un lien « système de positionnement par satellites de Galileo » où en cliquant « ici » que j'ai cette fois-ci programmé, en 2015, avec les langages HTML, CSS3, et Javascript en utilisant une bibliothèque graphique qui se nomme three.js avec laquelle on peut programmer des applications 3d.

Programme version Javascript de Galileo avec la bibliothèque three.js (2015)

Définition des coordonnées sphériques

On appelle coordonnées sphériques divers systèmes de coordonnées de l'espace qui généralisent les coordonnées polaires du plan. Un point de l'espace y est repéré par la distance à un pôle et deux angles. Ce système est d'emploi courant pour le repérage géographique : l'altitude, la latitude, et la longitude sont une variante de ces coordonnées. Plusieurs systèmes de coordonnées sphériques sont également employés en astrométrie.

Il existe différentes conventions concernant la définition des angles. Ici nous utilisons la convention P(ρ,θ,φ), utilisée en mathématiques, où θ désigne la longitude et est compris entre 0 et 2π, et φ désigne la colatitude et est compris entre 0 et π.

article wikipédia.


Sciences mathématiques et physiques

Ce site web ci-dessous présente les sciences des mathématiques et de physiques dont l'algèbre, le calcul différentiel, le mouvement, etc..., le lien est sur l'image.


mathématiques et physiques

Ce site web ci-dessous par contre présente la science physique (mécanique de Newton) d'une manière ludique avec code source à l'appui pour les développeurs, le lien est sur l'image.

physiques jeux vidéo

Note : si vous trouvez des fautes ou des améliorations à faire sur ce site web Mathgames, veuillez bien me le faire savoir que je puisse corriger sur-le-champ en cliquant sur le lien contact. Merci d'avance et bonne lecture jusqu'a la fin, si vous suivez le fil.


Flèche pour remonter la page