un jeu graphique en C++

un jeu graphique en C++ - C++ - Programmation

Marsh Posté le 27-10-2007 à 14:26:45    

SAlut à tous !
 
j'ai l'intention de faire projet pour débuter en C++. Je connais "assez bien" le C et j'ai lu des bouquins C++, bref je voudrais reproduire un petit bomberman, on trouve pleins de sprites gratos sur le net.
 
Cependant, je ne sais pas trop quel librairie privilégier ? Apparement la STL et openGL me paraissent bien, mais je ne sais pas si je dois utiliser les deux, une seule ....?
 
que me conseillerez vous pp à mon projet ?
 
merci!  :jap:

Reply

Marsh Posté le 27-10-2007 à 14:26:45   

Reply

Marsh Posté le 27-10-2007 à 14:32:01    

Salut,
 
Pour commencer doucemement par un jeu 2D, je te conseillerais plutôt d'attaquer avec la SDL. Sauf si tu as quelques bases en 3D, auquel cas, tu peux utiliser OpenGL bien sûr (que tu peux utiliser conjointement avec la SDL pour l'initialisation des fenêtres, la gestions des entrées...).
 
La STL n'a rien à voir avec le graphisme.

Reply

Marsh Posté le 27-10-2007 à 14:39:09    

IrmatDen a écrit :

Salut,

 

Pour commencer doucemement par un jeu 2D, je te conseillerais plutôt d'attaquer avec la SDL. Sauf si tu as quelques bases en 3D, auquel cas, tu peux utiliser OpenGL bien sûr (que tu peux utiliser conjointement avec la SDL pour l'initialisation des fenêtres, la gestions des entrées...).

 

La STL n'a rien à voir avec le graphisme.

 

Salut,
merci pour ta réponse, je connais un peu OpenGL/Glut, mais je ne sais pas si c'est adapté pour la 2D. Que permet la SDL ?

 

:)


Message édité par in_your_phion le 27-10-2007 à 14:41:09
Reply

Marsh Posté le 27-10-2007 à 14:53:31    

Oui on peut faire de la 2D avec OpenGL. C'est même assez pratique parfois, selon ce que tu veux faire. Avec SDL tu peux faire pas mal de choses (voir http://www.libsdl.org/). Ça gère le fenêtrage, le son, les événements... Et n'empêche pas d'utiliser OGL.
 
En passant ya aussi SFML ( http://sfml.sourceforge.net/ ), ça m'a l'air pas mal (si quelqu'un à un avis sur la question je suis preneur).

Message cité 1 fois
Message édité par dwogsi le 10-12-2007 à 18:10:03

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 27-10-2007 à 14:54:56    

Justement, la 2D (entre autre comme en a parlé dwogsi) ;)

 

C'est relativement bas niveau (en gros, ce n'est pas un moteur pour jeux 2D), mais il t'exclue de certains affres tels que la création des fenêtres, ou encore la gestion des messages propres à chaque système.
Tu y trouveras des éléments qui te permettront de faire ce que tu veux. Par exemple, il n'y a pas de structure décrivant un sprite, tu devrais la réaliser toi-même avec une SDL_Surface* que tu mettras dans ta propre classe. Fais-toi quelques tutos pour te faire une petite idée de comment ça fonctionne.


Message édité par IrmatDen le 27-10-2007 à 14:59:44
Reply

Marsh Posté le 27-10-2007 à 14:59:13    

dwogsi a écrit :

En passant ya aussi SFML ( http://sfml.sourceforge.net/ ), ça m'a l'air pas mal (si quelqu'un à un avis sur la question je suis preneur).


Ca a l'air pas mal du tout ça, merci pour le lien je vais tester ça pour un petit projet  [:romf]

Reply

Marsh Posté le 28-10-2007 à 19:14:47    

salut,
 
merci beaucoup pour vos réponses :) Ne croyez vous pas qu'il risque d'y avoir un peu de redondances si j'utilise la SDL avec OpenGL, j'ai l'impression que les deux ferons un peu la même chose et j'y du mal a voir la complémentarité des deux libs ??
 
merci encore

Reply

Marsh Posté le 29-10-2007 à 08:17:47    

Il ne me semble pas qu'OGL permette le fenêtrage et la gestion d'évennements... C'est là qu'intervient SDL qui le permet assez simplement. Et si tu souhaites faire de l'objet, SFML à l'air pas mal puisqu'elle est complétement réalisée en objet.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2007 à 12:03:26    

dwogsi a écrit :

Il ne me semble pas qu'OGL permette le fenêtrage et la gestion d'évennements...


 
openGL seule, non, mais GLUT oui même si cest assez basique. C'est pour ca que du coup, soit je ne vois pas l'intéret d'utiliser OGL (parce que la SDL gere tout y compris les dessins), soit je vois pas l'ntéret de prendre la SDL (car ogl/glut gere les fenetre est les evenements souris/claviers) .... Du coup je ne sais pas laquelle est la mieux

Reply

Marsh Posté le 29-10-2007 à 12:09:39    

Ben OpenGL c'est avant tout une lib graphique 3D hein. GLUT est juste une lib annexe qui permet de se simplifier l'initialisation du contexte de rendu et autres choses de ce genre de façon cross platform. Tu peux faire de la 2D avec OpenGL, mais à mon avis c'est un peu overkilll. Je n'ai jamais utilisé la SDL mais d'apres ce que j'en ai compris cest nettement mieux adapté a ce que tu veux faire.


Message édité par Jux_ le 29-10-2007 à 13:42:29
Reply

Marsh Posté le 29-10-2007 à 12:09:39   

Reply

Marsh Posté le 29-10-2007 à 12:24:29    

Ouai GLUT sais faire ce genre de choses, mais avec certaines limites à mon goût.
Sinon pour de l'OpenGL pour de la 2D, c'est pas forcément innutile. OGL fournit certaine fonctionnatilés qui seraient compliquées à réalisé avec SDL seul dans un contexte 2D.
C'est une question de besoin au final.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2007 à 14:40:08    

dwogsi a écrit :

OGL fournit certaine fonctionnatilés qui seraient compliquées à réalisé avec SDL seul dans un contexte 2D.


 
pourrais tu illustrer par un exemple si possible ?
merci

Reply

Marsh Posté le 29-10-2007 à 14:43:41    

Redimensionner une image par exemple. Pour l'afficher en plus grand qu'elle ne l'est.
Rien ne le permet de base dans SDL. Ya bien des lib qui font ça avec SDL mais au final plus lentement qu'en utilisant OpenGL.

 

Sinon, la répétition d'une image sur une surface (une texture en gros), avec OpenGL c'est simplissime!
Avec SDL, faut se la faire à la main la répétition...

 

Après je ne dis pas que c'est forcément la meilleur solution.
Sur certains points, je pense qu'on devra se poser la question de "faut-il gagner en temps ou en perf? et à quelle prix?"


Message édité par dwogsi le 29-10-2007 à 14:52:35

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2007 à 15:02:21    

ok, merci pour ta réponse :)
 
et dans l'autre sens, on ne pourra vraiment pas utiliser OGL seule pour faire un bomberman-like ? j'aimerai faire le plus simple possible tout en faisant un jeu qui accroche un peu (à mon  niveau certes ...)

Reply

Marsh Posté le 29-10-2007 à 15:13:30    

Ba... OGL c'est pas forcément le plus simple. Mais, comme je le disais, ça apporte son lot de bonnes choses. En ravanche, impossible de l'utiliser seul. Il faut au moins quelque chose pour fournir le fenêtrage. Et pour l'interactivité, quelque chose qui fournit la gestion des évennements.
 
Autrement, pour de la 2D, SDL peut être utilisée seule. Et on bomberman-like est tout afait réalisable avec cette lib.
 
Et très franchement, si tu veux rester simple : utilise la SFML dont je parlais plus haut ( http://sfml.sourceforge.net/ ). C'est simple, rapide, objet et t'affranchie de certaines parties parfois complexe dans la SDL.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2007 à 16:39:26    

ok! alors SFML et Opengl ca le fait ?  :wahoo:  
 

Reply

Marsh Posté le 29-10-2007 à 17:07:38    

SFML ou SDL, pour finir sur un contexte 3D/OpenGL c'est pareil.
Ensuite, s'il faut choisir entre SFML ou SDL pour de la 2D, je dirais SFML!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2007 à 18:20:21    

dwogsi a écrit :

SFML ou SDL, pour finir sur un contexte 3D/OpenGL c'est pareil.
Ensuite, s'il faut choisir entre SFML ou SDL pour de la 2D, je dirais SFML!


 
oki, j'en prend bonne note :)
 
merci encore !!!!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed