"pongl : origin of power" (light) : un pong en 3d en opengl

Soyez le premier à donner votre avis sur cette source.

Vue 7 818 fois - Téléchargée 732 fois

Description

"PonGL : Origin of Power" est un projet personnel réalisé juste après les habituels "Hello World" d'opengl qui consistent en des cubes qui tournent ;)

J'ai dû apprendre beaucoup de choses sur le tas ce qui signifie que je n'ai sûrement pas écrit le code de la manière la plus optimale possible. Mais quoi qu'il en soit, j'ai essayé de le commenter un maximum et il devrait convenir à celui qui veut apprendre à programmer en Opengl avec Glut.

J'aimerais préciser dés maintenant que la version de PonGL que j'ai mise ici est une version "Light" car j'ai dû réduire considérablement la résolution des images pour faire rentrer le tout dans 500ko ce qui donne un aspect assez moche des menus... Pour les sources complètes je conseille vivement le pack complet (comprenant : images de bonnes qualités, exécutable et sources) disponible sur le site du jeu :

http://pongl.opengl-fr.com

Bon, maintenant je vous explique brièvement en quoi consiste le jeu :
Je suppose que tout le monde connait le mythique Pong qui fut l'un des premiers jeux créés (le premier ?), PonGL reprend le même principe. C'est à dire deux palettes qui doivent bouger sur un axe pour empecher une balle de passer.
En plus de ça, dans PonGL la caméra bouge pour se positionner à d'autres points de vues ce qui augmente l'effet 3d.
Il y a des systèmes de points différents que l'on joue à deux ou tout seul (contre le mur). Si on joue à deux, chaque joueur possède une jauge qui se remplit ou se vide en fonction de si on gagne ou perd. Le joueur qui a sa jauge complètement pleine gagne et l'autre perd...
Dans le mode 1 joueur, les points se comptent en fonction des rebonds sur les murs et en fonction de la vitesse de la balle (qui augmente avec le temps).

Si vous voulez jouer contre le pc, il y a 5 intelligences artificielles disponibles : de la plus facile à la plus difficile.

Beaucoup d'options sont disponibles pour, par exemple : avoir le jeu en mode filiaire, désactiver l'accélération de la balle, désactiver l'inertie de la palette, etc...

Conclusion :


Les touches utilisées pour jouer sont :

en mode 1 joueur : haut, bas, droite et gauche pour la palette.
en mode 2 joueurs : z, q, s, d pour la palette de gauche et haut, bas, droite et gauche pour la palette de droite
barre d'espace pour lancer la balle si l'option est activée.

J'aimerais, plus tard, faire une version 2.0 qui se jouera en réseau quand j'aurais les bases nécessaires.

J'ai trois petits "appels à l'aide" à faire tant que j'y suis... Ils sont sur mon site dans la partie "téléchargement" mais je les résume ici en quelques mots :

1. La source est comprise entièrement dans un seul fichier .c et j'aimerais la diviser mais je n'ai pas réussi... Si quelqu'un savait m'expliquer ou bien carrément le faire si c'est pas trop difficile (j'apprendrais en regardant).

2. Normalement vu que j'utilise Glut et Fmod qui sont portables, je crois que la source devrait se compiler facilement sous linux... Malheureusement je n'ai pas réussi à installer la librairie Glut dans Gcc sous linux (je débute complètement sur linux). Si quelqu'un a déjà un linux bien propre et prêt à compiler du code, ça serait sympa de le compiler...

3. J'aimerais faire un "pack" propre avec une belle licence (GPL ? GNU ?) mais je n'y connais vraiment pas grand chose... Pareil que tout à l'heure, si quelqu'un sait m'expliquer la manière de procéder... J'ai lu quelques tutoriaux à droite et à gauche mais ce qui me perturbe c'est que j'utilise moi même des librairies sous ces licences (Glut, Fmod) et je ne sais pas comment l'indiquer clairement.

Si vous voulez plus d'infos sur PonGL ou prendre la version complète et non "Light", vous pouvez passer sur le site du jeu qui est vraiment complet :

http://pongl.opengl-fr.com

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
14
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

De nouvelles versions sont sorties, le jeu en est à la version 1.20.
N'hésitez pas à les télécharger sur http://pongl.opengl-fr.com ou encore http://jeuxlibres.net/showgame/pongl.html
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

alors là ............ je ne sais pas quoi dire ... je suis bluffé !
certes l'image du menu est peu tirée et ça fait une petite boullie (dommage pour le dessin) mais le jeu en lui même ...
Avec le côté "changement de plateau" pour mieux écraser son adversaire ... je t'avoues que j'aurais mis 20/10 mais on peut pas ^^
donc "seulement" 10/10
Messages postés
14
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

Merci basted, c'est sûr que ça m'a fait une fameuse introduction à l'OpenGL...

Pour tous les rajouts graphiques que je pourrais faire pour améliorer le jeu, je pense que je vais attendre un prochain projet... Tout simplement parce qu'ici, les déplacements se font en fonction des frames et non du temps... Et que si je complique trop les choses, le jeu ne tournera plus aussi facilement à 85 fps et ça risquera de créer des problèmes...

Pour texturer le tout, ça me fait un peu peur, j'aime encore bien l'effet de contaste noir/blanc car ça donne une atmosphère plus vieillote au jeu.

Et mon site sur l'OpenGL, ça sera avec plaisir qu'il accueillera tes projets, mais il est encore loin d'être fini, j'aimerais faire quelque chose de beau et de performant. Je suis assez optimiste ;)

Bon, je vais faire un peu le point sur l'évolution de PonGL... Tout d'abord, j'ai réussi à diviser ma source en plusieurs fichiers qui ont un rôle précis (grâce à l'aide de Funto66). C'est nettement plus lisible.
Ensuite, j'ai fait un petit menu d'introduction au jeu pour choisir entre deux résolutions en mode fenêtré et deux résolution en mode plein écran. Et j'ai également permis de passer d'un mode fenêtré à un mode plein écran (et vice versa) en utilisant le très pratique alt-enter.

Maintenant je suis en train d'essayer d'apprendre les sockets en C, ça m'a l'air d'être relativement facile à apprendre une fois qu'on a le principe en tête... Mais créer un serveur qui va pouvoir lancer plusieurs parties à la fois risque d'être plus délicat à faire... Je vais tenter le coup mais comme je suis assez occupé ces temps-ci, ça risque de prendre du temps.
Messages postés
55
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
11 mai 2008

Felicitation mr, ca te fait un sacré tutorial pour OpenGL, c'est la meilleur ecole je pense !

Question amelioration, tu pourais implementé l'antialiasing grace a l'extension OpenGL "multi-sample", on jeux y gagnerais beaucoup!

Tu pourais aussi t'interesser au "motion blur" pour donner un impression de vitesse et de fluidité.

Enfin tu pourais texturé le tout, c'est pas top compliqué a faire ca, et ca paye pas mal !

Pour le multi-sample tu peut trouver sur le site de néhé (je crois que je l'est atrape la moi aussi)

Sinon bonne continuation, et quand tu aura finis ton site openGL en francais ... disons que ca me generais pas si je pouvais y placer mes source a moi, je pensse a mes projet "3D Controls" et "MyGlSaver" (present sur ce site)
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Mouais, moi je suis contre ce cryptage : d'abord, comme tu disCRAzy-flaSH, qui ira tricher à un jeu comme ça...
Et ensuite, de toutes façons le jeu est open source non? donc y'aura toujours moyen de tricher ^^
Moi ce que j'attends avec impatience c'est le mode réseau, j'veux jouer contre Kirua :p
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.