IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API graphiques Discussion :

SFML versus SDL.


Sujet :

API graphiques

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut SFML versus SDL.
    Bonjours a toute la communauté du Développement 2D, 3D et Jeux.

    Comme le titre l'indique je cherche des informations sur la library a utiliser pour créer des jeux en 2D en C (pas C++).

    J'ai donc présélectionner ces 2 library: SFML et SDL.

    Je sais très bien que le choix m'appartient mais avant de faire un choix il faut connaître les paramètres du choix.

    C'est dans cet objectif que je vous demande de me donner vos avis, informations sur ces 2 library.
    Soit de défendre celle que vous utilisez, ou mieux si vous connaissez les 2, de donner les points positifs et négatifs de ces 2 library.

    J'ai un niveau, disons, intermédiaire en C et je connais assez bien le python et le module pygame qui est un module pour faire de la programmation 2D: des jeux, animations en python avec des fonctionnalités sonores, de contrôle des collision etc...

    Mais j'ai appris le C et j'aimerai m'en servir ne serai ce que par défi: car créer un jeu en python est sûrement beaucoup plus facile qu'en C.

    Puisque l'on parle du C et du python (langage orienter objet), je voudrai savoir si le passage du C (dont je connais les bases et la libc en grande partie) vers le C++ est facile ou est-ce un langage complètement différent car j'ai remarquer qu'il y avait beaucoup plus de ressources (livres) utilisant le C++ que le C pour les library externes, notamment les livres sur SFML et SDL que je vient de prévisualiser. Ce qui est un grand avantage du C++.

    Le C n'est pas facile a apprendre, (ayant appris le python en premier langage de programmation) et je ne souhaite pas tout recommencer avec le C++ dans un futur proche.
    Alors le C++ est-t-il juste une évolution moderne du bon vieux C, donc le passage serai facile, ou n'est ce pas la cas (qu'est ce qui est différents ?) ?

    Je pose toutes ces questions car quand je fait une chose, je la fait a fond, c.a.d que j'investis beaucoup de temps et d'énergie a la tache et donc je ne souhaite pas me tromper a la base ; comprenez vous ce que je veut dire ?
    Et donc vos conseils avisés et vos informations me seront très utile pour prendre ma décision.

    En attendant vos réponses éclairées, je vous souhaite beaucoup de plaisir dans le développement de jeu vidéo 2|3D et autres animations.

    PS: Je développe presque exclusivement sous Linux.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  2. #2
    Membre émérite Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Points : 2 612
    Points
    2 612
    Par défaut
    Bonjour Luke,

    - le C++ n'est pas un "C modernisé", c'est vraiment un autre langage. La différence principale: C est procédural, C++ est objet.
    Il est vrai qu'apprendre un langage de programmation est relativement long, mais quand on en connait un, on connait déjà pas mal de concepts qui sont communs à la plupart des langages (les variables, les boucles, les conditions, les algorithmes, les pointeurs, etc...), par contre, le passage du C au C++ t'obliges à te pencher sur la programmation objet,

    - SFML est en C++, SDL est en C. Je te conseille de commencer à programmer tes premiers jeux en C et SDL, puisque tu connais déjà ce langage.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    N'avez vous pas oublié Allegro ? Qui est une bibliothèque du même genre.
    Sinon, vu que vous connaissez pygame, il faut savoir que pygame repose sur la SDL. Donc, si vous prenez la SDL, vous allez retrouver des éléments connus.

    Après, je trouve personnellement, la SDL plus simple.
    Sinon, tachez de bien prendre la SDL 2 et non la SDL 1.2, car c'est la SDL 2 qui est équivalent à SFML 2. La SDL 1.2 est désuète maintenant.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    J'ai une préférence personnelle pour la SFML qui est bien plus simple d'utilisation de mon point de vue. Et comme je te l'ai dit, un binding C a été fait. Il est disponible ici.

  5. #5
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    La SDL 1.2 est désuète maintenant.
    Quand même pas , personnellement je l'utilise toujours la 1.2 et je compte pas changer

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Quand même pas , personnellement je l'utilise toujours la 1.2 et je compte pas changer
    Si t'aimes vivre dans le passé et ne pas bénéficier des avancées, libre à toi
    De mémoire, SDL1.2 repose sur DirectX5 sur Windows (et très certainement OpenGL1 sur les autres systèmes), je pense que ce sera un argument suffisant pour parler d'obsolescence.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Si t'aimes vivre dans le passé et ne pas bénéficier des avancées, libre à toi
    De mémoire, SDL1.2 repose sur DirectX5 sur Windows (et très certainement OpenGL1 sur les autres systèmes), je pense que ce sera un argument suffisant pour parler d'obsolescence.
    Tu connais très peu la SDL 1.2 elle ne se base nullement sur Directx 5 ou OpenGL 1 vu qu'elle est purement software , (a la limite peut être que son SDL_Flip utilise DirectX ou Opengl 1 pour envoyer le buffer même si cela m'étonnerais ,mais tu peux facilement le changer par un buffer OpenGL 1 ,2 ,3 ou plus ).
    Sinon pour utilisé l'accélération matériel je préfère utilisé directement OpenGL , mais certain effet 2D sont plus sympa a faire en software.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    C'est du DirectX 7, il semble. La SDL 1.2 utilise bien DirectX comme backend, mais je ne sais plus exactement pour quoi. Je crois que c'est lié aux SDL_HWSURFACE aussi.
    -> http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Merci pour vos nombreuses réactions,

    pour commencer, j'ai remarquer en me baladant sur un certain site de vente de livres sur lequel ont peut consulter les livres (du moins la présentation des chapitres), que le C++ n'est vraiment pas pareil au C sauf peut-être les types de données, au vue des titres des chapitres.

    Concernant le O.P.P (Object-oriented programming) je connais le python dont le type de base est l'objet.

    J'ai regarder un autre aspect du problème: Il existe aussi un module python pour
    SFML: python-sfml (disponible dans les dépôt d'Ubuntu.)
    et pour
    SDL: PySDL2 (disponible par PyPI ; non-contenus dans les dépôt d'Ubuntu.)

    ... 1 partout

    Je vais continuer a me renseigner, merci pour vos réponses.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  10. #10
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut Go !!!
    Je me suis finalement lancer avec la SDL2, j'ai eu un peu des difficultés avec le linking et notamment -lSDL2_image.

    Puis je me suis attaquer au polygones et j'ai été surpris que SDL2 ne fournissait que une fonction DrawLines permettant de driver un polygone non-plein: problème (tracer un polygone plein) résolus grâce a l'extension gfx.

    Et le plus étonnant pour une library graphique SDL1 ne proposait même pas une fonction pour afficher un pixel, j'ai vue ça dans les tutoriel de Anomaly qui fournis dans la partie 2 des algorithmes très intéressant.

    Question: peut-ont utiliser les même fichiers d'en tête avec le C et le C++ si le code source comprend:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifdef __cplusplus
    extern "C" {
    #endif
    Ou quelque chose comme ca ???
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Oui, on peut utiliser les entêtes que ce soit en C ou en C++.
    Sachant que la SDL 2 utilise des tampons GPU, le dessin d'une ligne, ou d'un simple pixel est devenu encore plus compliqué qu'avant. Le mieux est d'utiliser OpenGL, je pense (comme le fait la SFML, j'imagine).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SDL,SFML,QT: lequelle choisir dans mon cas
    Par membreComplexe12 dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 06/05/2011, 14h51
  2. Débat : SFML pas mieux que la SDL?
    Par Xanto dans le forum SFML
    Réponses: 17
    Dernier message: 27/01/2010, 15h59
  3. Questions generales SDL /OpenGL / SFML
    Par hpfx dans le forum SDL
    Réponses: 1
    Dernier message: 19/03/2009, 23h16
  4. SFML par rapport à SDL
    Par paps` dans le forum SFML
    Réponses: 7
    Dernier message: 11/09/2008, 16h04
  5. librairie pour jeu 2D, SDL ou SFML ?
    Par tuxrouge dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 30/04/2008, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo