[C++][SDL][GPL]PongClassic [0.1]

Démarré par Sam101, 14 Juin 2008 à 20:57

0 Membres et 1 Invité sur ce sujet

14 Juin 2008 à 20:57 Dernière édition: 15 Juin 2008 à 09:55 par Sam101
Salut ! Je viens vous proposer un "projet" (Surtout un test de POO :rolleyes:).

Fiche du jeu !

Titre : PongClassic
Plate-Forme: Windows/Linux(I386) en executable, a peut près nimporte quoi si vous recompilez (Le jeu est conçu pour fonctionner dans nimporte quelle resolution, a nimporte quel ratio)
Taille (Compréssé): Source:19.8ko, Linux:8.8ko, Windows:182.8ko (Avec SDL.dll),18.2 ko sinon.
Version:0.1
Concept

Le but etait de faire un pong en C++, en utilisant la SDL, et via des classes. Un autre objectif etait également de pouvoir faire fonctionner le jeu dans nimporte quelle resolution (essayez en 1680*100 pixels :mrgreen:). L'objectif est "rempli", et je vous présente cette 0.1, qui fonctionne :). A noter que le projet est sous licence GNU/GPL.

Ce qui reste a faire
->Des Bruitages Funky
->Une Musique Funky
->Un afficheur de score mieux codé (Allez pas voir la source de number.cpp, c'est horrible  :ninja:)
->Un menu
->Différants modes de jeu sympatiques (Morwenn m'a proposé une fusion avec un space invaders  :mrgreen:)
->Un mode deux joueurs
->Choix de la resolution =)
->Un menu "gagné/perdu"
->Une IA mieux  :lol:.
->Changer le SDL_Delay par quelque chose de mieux  :ninja:
Screenshots !
http://img391.imageshack.us/img391/9982/pongga4.jpg
Téléchargement
http://sam101.lyokoproject.com/pong -> Executables, Source..


Je suis a disposition pour d'eventuelles remarques, notament sur le code (J'ai aucune idée de si j'ai la bonne methode d'organisation ou non  :ninja:).

Je viens d'y jouer un peu, et bien oui, ça tourne bien.
Le pong classique quoi. Je trouve que l'adversaire bouge en saccades, c'est bizarre, c'est vrai qu'améliorer l'IA pourrait être une bonne chose. Inclure le 2 joueurs pourrait être sympa aussi. Enfin bref, tu as là une très bonne base, et il n'appartient qu'à toi d'apporter tes améliorations à ce pong. :)
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

J'aurais bien voulu te donner mon avis sur ton code mais tu n'as pas pensé à ceux qui étaient sous Windows :P Je n'arrive même à décompresser tes sources. S'pice de linuxien va ^^

Citation de: Valoo0278 le 14 Juin 2008 à 21:16
Je viens d'y jouer un peu, et bien oui, ça tourne bien.
Le pong classique quoi. Je trouve que l'adversaire bouge en saccades, c'est bizarre, c'est vrai qu'améliorer l'IA pourrait être une bonne chose. Inclure le 2 joueurs pourrait être sympa aussi. Enfin bref, tu as là une très bonne base, et il n'appartient qu'à toi d'apporter tes améliorations à ce pong. :)
Surtout, qu'en fait, j'ai quasi-tout codé en classes, pour pouvoir tout réutiliser (pour plusieurs modes de jeu, ça evite de reinventer a chaque fois la roue).

Pour l'IA, effectivement, mon code est mauvais (Il faut savoir que je l'ai paramétré en "Impossible" la, et que je la bat facilement...)

Sinon je travaille sur un splashscreen, un menu et l'IA ^^.
Geomaster -> Je te fais un .zip ^^. 

EDIT:.zip des sources en ligne.

Je suis pourtant sous windows, et j'ai téléchargé les zip, bien avant le post de Geomaster  :huh:
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

Citation de: Valoo0278 le 14 Juin 2008 à 21:26
Je suis pourtant sous windows, et j'ai téléchargé les zip, bien avant le post de Geomaster  :huh:
Les binaires Windows sont en .zip, mais la source n'etait disponible qu'en .tar.gz...

Autant pour moi, je m'en suis rendu compte, et je voulais éditer, mais trop tard ^^
Euh en revanche, AlZip doit pouvoir décompresser ça. Enfin je dis ça parce qu'à priori, il doit dézipper tout, ou presque ^^
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

Citation de: Valoo0278 le 14 Juin 2008 à 21:29
Autant pour moi, je m'en suis rendu compte, et je voulais éditer, mais trop tard ^^
Euh en revanche, AlZip doit pouvoir décompresser ça. Enfin je dis ça parce qu'à priori, il doit dézipper tout, ou presque ^^
7Zip marche parfaitement également, c'est ce que j'ai utilisé dans mon XP Virtualisé.

Sauf que moi je suis con et j'utilise WinRAR :D

J'ai essayer les toutes première version et il est beaucoup mieux comme sa :P.
Mais c'est vrai que l'ennemie bouge bizarrement et sa fait pas très jolie, mais bon un autre pong à la liste interminable   :)
Facebook ! <3

Citation de: Ant1 le 14 Juin 2008 à 21:36
J'ai essayer les toutes première version et il est beaucoup mieux comme sa :P.
Mais c'est vrai que l'ennemie bouge bizarrement et sa fait pas très jolie, mais bon un autre pong à la liste interminable   :)
Le but c'est d'avoir une base pour concevoir un pong psychédélique adaptable  :mrgreen:.

Sinon, un mode de jeu en "fusion" avec Spade invaders, ça serait bien ?  :ninja:.

Citation de: Sam101 le 14 Juin 2008 à 21:37
Sinon, un mode de jeu en "fusion" avec Spade invaders, ça serait bien ?  :ninja:.

Ca dépend ce que tu as derrière la tête ?

Citation de: Geomaster le 14 Juin 2008 à 21:39
Citation de: Sam101 le 14 Juin 2008 à 21:37
Sinon, un mode de jeu en "fusion" avec Spade invaders, ça serait bien ?  :ninja:.

Ca dépend ce que tu as derrière la tête ?
Citation
[06/14/08 11:39:55 ] !!! Morwenn : T'as déjà essayé de mêler un pong avec un space invaders ?:D
[06/14/08 11:40:32 ] !!! Morwenn : Chuis en train de me dire que, avec tous ces vieux jeux, y'a moyen de créer du funXDDD
Une sorte de pong, mélé a un space invaders, a deux joueurs, ou on remplace le laser des "gentils" (les joueurs) par la balle.

Sinon le code ?

Citation de: Geomaster le 14 Juin 2008 à 21:32
Sauf que moi je suis con et j'utilise WinRAR :D
[spoiler]Ouais, surtout qu'en plus, il est pas gratuit. Et je doute que tu aies payé la licence pour Winrar si ? :D
Allez, tiens.[/spoiler]

Pour le space invaders, j'imagine que tu veux mettre la raquette en bas, et renvoyer les projectiles sur des ptit aliens. En gros, comme un casse-briques, sauf que les briques bougent et attaquent non ?
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

Citation de: Valoo0278 le 14 Juin 2008 à 21:43
Citation de: Geomaster le 14 Juin 2008 à 21:32
Sauf que moi je suis con et j'utilise WinRAR :D
[spoiler]Ouais, surtout qu'en plus, il est pas gratuit. Et je doute que tu aies payé la licence pour Winrar si ? :D
Allez, tiens.[/spoiler]

Pour le space invaders, j'imagine que tu veux mettre la raquette en bas, et renvoyer les projectiles sur des ptit aliens. En gros, comme un casse-briques, sauf que les briques bougent et attaquent non ?
Non, non, la raquette toujours a gauche, mais en inclinant les "monstres".

Donc en gros, comme je viens de dire, sauf que l'écran tout entier est pivoté de 90° c'est ça ?
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

Citation de: Valoo0278 le 14 Juin 2008 à 21:46
Donc en gros, comme je viens de dire, sauf que l'écran tout entier est pivoté de 90° c'est ça ?
En effet, et on met une raquette de l'autre coté ^^.

Ahhh, donc les joueurs ont deux solutions :

- Passer le projectile au keupin
- Taper dans le méchant

Bonne idée en tout cas :)
Suivez mon défi fou : finir de nouveau chaque Zelda, à 100%, dans leur ordre chronologique afin de permettre une réécriture au fur et à mesure de la légende.

J'ai jeté qu'un coup d'oeil en diagonale au code, mais pourquoi ne pas charger les graphismes à partir de fichiers XML style svg ? Tu gardes la flexibilité de le faire tourner sur n'importe quel ratio, c'est plus flexible pour rajouter des trucs par la suite, et ça évite de pourrir ton code :p

Bon je voulais tester... Pas de windows a la maison je prend donc les sources. Jusque la ca va.

Et bah pas de makefile....  :o Tu donnes les sources sans le makefile et le configure.  :( T'es méchant comme garçon.

Donc je testerai ça plus tard quoi.

Euh au fait pourquoi t'as mis GNU sur dans le titre de ton topic ?
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table

15 Juin 2008 à 09:59 #20 Dernière édition: 15 Juin 2008 à 10:04 par Sam101
Citation de: mooglwy le 14 Juin 2008 à 22:09
Bon je voulais tester... Pas de windows a la maison je prend donc les sources. Jusque la ca va.

Et bah pas de makefile....  :o Tu donnes les sources sans le makefile et le configure.  :( T'es méchant comme garçon.

Donc je testerai ça plus tard quoi.

Euh au fait pourquoi t'as mis GNU sur dans le titre de ton topic ?
Enfin bon, t'aurais pu prendre l'executable  :rolleyes:. Pour le makefile, tu peux le refaire :mrgreen:.

Pour les graphs en XML, c'est pas une mauvaise idée =).

Sinon, pour l'IA, j'ai déja corrigé le problème (du a une vitesse maximale de la balle trop importante, je l'ai baissée dans config.h).

J'ai vu que des .exe et j'ai pas windows.  :rolleyes:

Pour le xml je suis curieux de voir comment t'implémentes ça. J'ai jamais testé. 
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table

Boah, la libxml est tout conne à utiliser. J'ai utilisée massivement une implémentation similaire avec libglade cette année, et ça a rien de bien sorcier.

15 Juin 2008 à 11:14 #23 Dernière édition: 15 Juin 2008 à 11:31 par mooglwy
Bah je vais jeter un oeil alors.  :)

Faire le makefile avec tous tes fichier... Et j'ai même pas d'autoconf...  :(
Nan mais ton ide il fait pas un makefile ?
Si y a une base c'est toujours modifiable. :)

Edit :  en effet c'est pas trop compliqué.  :P
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table

Citation de: mooglwy le 15 Juin 2008 à 11:14
Bah je vais jeter un oeil alors.  :)

Faire le makefile avec tous tes fichier... Et j'ai même pas d'autoconf...  :(
Nan mais ton ide il fait pas un makefile ?
Si y a une base c'est toujours modifiable. :)

Edit :  en effet c'est pas trop compliqué.  :P
J'utilise codeblocks, et apparament, il fait pas de makefile  :lol:.
Sinon Y'a les binaires aussi

Pour la libXML, je vais voir :).

Bon coté code j'ai pas regardé, on a jeté l'os a nox on verra bien. ^^

Il est sympa j'aime bien mais car il y a toujours un mais.

Pour le jeu y a pas mal de défaut, enfin de gros défaut juste un, l'adversaire se déplace aussi vite que la balle, donc il l'aura toujours donc on ne pourras jamais gagner.  Ça c'est pas top déjà.  :P

Après le reste c'est des détails, genre faire rebondir la balle sur les bords blanc plutôt ? Et eh le déplacement adverse est très saccadé. ;)
Pareil quand j'ai perdu ie l'adversaire arrive a dix ça coupe violament. Un petit message genre vous avez perdu would be nice.  :)

Je te ferai un binaire pour macOS X si j'ai le courage et un makefile aussi pour linux.  :P
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table

Bof je me sens pas d'humeur à commenter du code objet - je me sens pas encore assez compétent pour faire ça, on en reparlera d'ici 4-5 mois ^^

(par contre le code impératif/fonctionnel, allez y balancez  :ninja: )

Et sinon si tu fais un binaire OS X je prendrais, mais là la flemme de compiler toussa :p

Citation de: mooglwy le 15 Juin 2008 à 16:48
Bon coté code j'ai pas regardé, on a jeté l'os a nox on verra bien. ^^

Il est sympa j'aime bien mais car il y a toujours un mais.

Pour le jeu y a pas mal de défaut, enfin de gros défaut juste un, l'adversaire se déplace aussi vite que la balle, donc il l'aura toujours donc on ne pourras jamais gagner.  Ça c'est pas top déjà.  :P

Après le reste c'est des détails, genre faire rebondir la balle sur les bords blanc plutôt ? Et eh le déplacement adverse est très saccadé. ;)
Pareil quand j'ai perdu ie l'adversaire arrive a dix ça coupe violament. Un petit message genre vous avez perdu would be nice.  :)

Je te ferai un binaire pour macOS X si j'ai le courage et un makefile aussi pour linux.  :P

(Desolé pour la réponse longue, j'etais en vacances :mrgreen:)

Oui, la vitesse de la balle maximum etait calibrée sur une vitesse trop haute, ça faisait buguer l'IA :^^. C'est corrigé maintenant, il y'a des sources a jour dans "unstable" normalement...

Cool j'y jetterai un œil et je te dirais.  ;)
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table

24 Juin 2008 à 09:57 #29 Dernière édition: 24 Juin 2008 à 11:45 par Sam101
Citation de: mooglwy le 24 Juin 2008 à 09:48
Cool j'y jetterai un œil et je te dirais.  ;)
Ok, j'en profite pour voir si je peut pas améliorer ça (Et activer l'affichage des repertoires dans Apache  :ninja:).

D'ailleurs maintenant j'arrive plus a compiler (Merci CodeBlocks  :ninja:)

Linking executable: bin/Release/PongClassic
obj/Release/game.o: In function `Game::Victory_Test()':
game.cpp:(.text+0x0): multiple definition of `Game::Victory_Test()'
obj/Release/game.o:game.cpp:(.text+0x0): first defined here
obj/Release/game.o: In function `Game::Collision()':
game.cpp:(.text+0x50): multiple definition of `Game::Collision()'
obj/Release/game.o:game.cpp:(.text+0x50): first defined here
obj/Release/game.o: In function `Game::Play()':
game.cpp:(.text+0x1a0): multiple definition of `Game::Play()'
obj/Release/game.o:game.cpp:(.text+0x1a0): first defined here
obj/Release/game.o: In function `Game::Game()':
game.cpp:(.text+0x270): multiple definition of `Game::Game()'
obj/Release/game.o:game.cpp:(.text+0x270): first defined here
obj/Release/game.o: In function `Game::Game()':
game.cpp:(.text+0x3f0): multiple definition of `Game::Game()'
obj/Release/game.o:game.cpp:(.text+0x3f0): first defined here
collect2: ld a retourné 1 code d'état d'exécution


EDIT 2 : Corrigé ^.^

Sinon c'est un test du moteur hein, je compte rajouter un menu, des modes de jeu, un choix de la difficulté... :).