"PONGL : ORIGIN OF POWER" (LIGHT) : UN PONG EN 3D EN OPENGL

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 19 mars 2004 à 20:56
CRAzy-flaSH Messages postés 14 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 11 septembre 2004 - 4 déc. 2006 à 19:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21340-pongl-origin-of-power-light-un-pong-en-3d-en-opengl

CRAzy-flaSH Messages postés 14 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 11 septembre 2004
4 déc. 2006 à 19:23
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
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
12 juin 2004 à 16:56
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
CRAzy-flaSH Messages postés 14 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 11 septembre 2004
18 avril 2004 à 16:43
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.
basted Messages postés 55 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 11 mai 2008
17 avril 2004 à 13:27
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)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
22 mars 2004 à 20:36
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
cs_PiX3L Messages postés 102 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 13 août 2005 1
22 mars 2004 à 18:50
Pour la triche, j'en convient que peu de gens vont aller tricher mais si tu mets un score, vaut mieux crypter les donnees car il n'a plus aucune valeur ton score si on peut le modifier comme on le souhaite tu ne trouves pas ?
En plus, ça pourra te servir pour d'autres projets le cryptage...
CRAzy-flaSH Messages postés 14 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 11 septembre 2004
22 mars 2004 à 18:05
Funto66 :
Un grand merci à toi, ca fait plaisir un commentaire aussi complet ! J'avais mis les questions un peu en désespoir de cause en espérant secrètement que quelqu'un y répondrait et tu as dépassé de loin tous mes espoirs.
-> Pour la séparation en fichiers, je vais retenter le coup, il y a des choses que j'avais essayées mais il devait me manquer quelques détails et il me semble que ton explication est plus complète que là où j'avais regardé. Si ca marche, d'ici peu je mettrai à jour l'archive.
Je vais aussi arranger l'erreur du tga.c... C'est sans doute impardonnable dans le milieu mais j'ai essayé et ça marchait alors j'ai gardé ;)
-> Pour la compilation sous Linux, tout ce qu'il me reste à faire c'est de réessayer en lisant des tutos... Mais ca ne sera peut être pas pour tout de suite, il me manque le temps.
-> Pour la licence GPL ça a l'air plus facile que je ne me l'imaginais alors... Je vais aussi me pencher plus sérieusement sur la question. Ca fait toujours plus propre avec une licence.
-> En ce qui concerne le bug que tu as trouvé, je vais regarder un peu le code pour voir ce qui a bien pu planter mais je n'ai jamais eu le problème. Normalement quand une partie se finit, escape est la seule touche disponible pour revenir au menu.

nolius :
Merci aussi pour ton commentaire. J'avais vu ton pong en cherchant des infos sur google un peu après avoir commencé le mien. J'avais bien aimé... C'est dingue les versions différentes d'un pong qu'on peut faire alors que le principe est incroyablement simple.

Kirua :
Ton commentaire me fait énormément plaisir... C'est ce que j'ai voulu faire avec mon pong, quelque chose qui changerait légèrement la façon habituelle qu'on a de voir ce jeu tout en gardant le même principe.

PiX3L :
J'ai acheté le com pour un peu plus qu'un pong ;) Mais c'est un projet à long terme, ca viendra... En fait l'hébergeur je l'avais déjà, ça ne m'a couté que le nom.
Contrairement à ce que tu dis, il y a bien des IAs... Même 5, de la plus facile à la plus difficile. Tu n'as pas dû les voir. Par contre il n'y a pas encore de mode réseau... Ca devrait venir quand j'aurais les bases. Pour ce qui est de crypter le .cfg c'est vrai que ca évitera les tricheurs mais d'un autre coté, qui ira s'amuser à tricher à un jeu comme ca ?
cs_PiX3L Messages postés 102 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 13 août 2005 1
22 mars 2004 à 17:33
Sinon crypte ton fichier .cfg qui contient les scores afin d'éviter les petits tricheurs :)
cs_PiX3L Messages postés 102 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 13 août 2005 1
22 mars 2004 à 17:30
Dis-donc tu fais pas les choses à moitié toi, tu as acheté un .com pour un pong. Enfin ça reste très bien même si il vrai qu'il aurait été mieux si tu avais séparé les fichiers. (bcp plus lisible, je t'assure fait le !)
Le jeu est très joli graphiquement, il est dommage qu'il n'y est pas d'IA.
Je n'ai pas testé la fonction "en réseau" mais si elle marche correctement et sans lag, je te dis chapeau.
franchement que dire de plus ?
ah oui, je te mets 10/10 ;)

P.S : êtes vous bien sûr de vouloir revenir à la vie réelle ? :D
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 mars 2004 à 17:13
j'y ai joué, et j'ai aimé, c'est du très bon :-) tu as su aller bcp plus loin que le pong habituel: la finition et l'innovation (par rapport à un thème mainte fois repris) sont les deux grandes forces de ton projet, c'est un 10 :-)
nolius Messages postés 61 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 27 août 2004
22 mars 2004 à 15:59
ouais c'est pas mal du tout...
ca me rapelle de souvenir, j'ai aussi programmer un pong en opengl, le mien s'appelle Pong3dGL
http://www.cppfrance.com/code.aspx?ID=19666

en tout cas continue c'est pas mal...
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
19 mars 2004 à 23:52
Yeah, excellent, 10/10 pour moi aussi ;)
En ce qui concerne tes 3 appels à l'aide :
1) pour le 1er, la division en plusieurs fichiers : déjà il faut créer plusieurs fichiers .c et .h; les fichiers .h sont de la forme :
#ifndef NOMDEMONFICHIER_H
#define NOMDEMONFICHIER_H
// ton code
#endif
ça permet d'éviter la multiple inclusion (en gros, les problèmes ;))
Chaque fichier .h correspondra à un fichier .c, et ton fichier .h contiendra les déclarations alors que le .c contiendra les implémentations, comme par exemple le prototype d'une fonction dans un .h et s déficition dans le .c.
Aussi, en général le fichier .c commence par un #include "lefichierh.h".
Ce #include est aussi fait dans le fichier .c principal (qui contient main()). En ce qui concerne les variables globales, c'est sûr que c'est à éviter, mais bon ... Si jamais tu veux mettre une variable globale dans un .c, par exemple int var=0;, ben dans le fichier .h correspondant tu mettras extern int var; (enfin, je suis pas sûr quand même...).
Un truc qui va pas : tu fais un #include "tga.c" alors qu'on n'inclut JAMAIS un .c ! En fait tu dois inclure tga.h et changer ta ligne de commande.
Là, pour l'instant, tu as :
gcc.exe -O1 PonGL.c -o PonGL.exe -Wall -l glu32 -l opengl32 -l glut32 -l fmod
Si tu veux compiler avec plusieurs fichiers .c, ben dans ce cas tu les rajoutes à la suite de PongGL.c. Exemple :
gcc -O1 PonGL.c tga.c un_autre_fichier.c -o PonGL.exe -Wall -l glu32 -l opengl32 -l glut32 -l fmod

Bon, je crois que ça y est pour le 1) ^^

2) Ben faudra que je prenne le temps de l'installer sous nux ;) Selon la distribution que tu utilises, je pourrai t'aider. Si c'est une Mandrake, Red Hat ou SuSE, faut un package RPM genre à http://rpm.pbone.net/index.php3/stat/4/idpl/1940/com/Mesa-glut-devel-3.1-1.i386.rpm.html
Enfin, perso je préfère le système de paquets de Debian :) Vu que GLUT est installé chez moi j'essaierai peut-être ;)

3) Ben au niveau de la GPL, il te suffit de la joindre à ton source pour le placer en GPL; c'est libre, donc tu demandes à personne :) Elle est là : http://www.gnu.org/licenses/gpl.txt
La GPL stipule que le code ne peut pas être réutilisé dans un code non-GPL, et que toute modification doit donc être open source. Elle n'interdit pas de commercialiser le produit mais par contre la source doit être disponible (payante ou pas). Pour la LGPL, la différence consiste en la possibilité de réutiliser le code dans des produits closed-source.

Juste pour finir, à un moment je suis resté coincé dans le jeu, c'était la fin d'une partie contre le PC et la touche Echap ne marchait plus :/
Aussi, le site est super ;)
Bon ben voilà, bonne prog ;)
CRAzy-flaSH Messages postés 14 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 11 septembre 2004
19 mars 2004 à 21:04
Pour le code dans un seul fichier, j'avais prévenu dans mon texte explicatif (bon d'accord, il est peut être un peu long :D ).
J'ai bien essayé de diviser le fichier mais je n'ai pas les bases nécessaires et en appliquant ce que j'ai lu dans des tutoriaux ca ne marchait pas...
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
19 mars 2004 à 20:56
excelente source, j'adore par contre le code dans un seul fichier, je trouve que ca fait un peu lourd et c'est dur de s'y retrouver !!!
mais le resultat nickel !!!
Rejoignez-nous