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

C Discussion :

SDL suffit-il pour réaliser un jeu/appli ?


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 61
    Points : 33
    Points
    33
    Par défaut SDL suffit-il pour réaliser un jeu/appli ?
    Bonjour à tous,

    Depuis quelque temps j'aimerais approfondir ma connaissance du C en réalisant un petit jeu/programme pour notamment apprendre un moteur graphique.
    Pour cela je compte me lancer dans un petit projet de jeu "RTS" (je vous arrête tout de suite, non je ne veux pas réaliser Starcraft ^^) pour apprendre l'utilisation de ce moteur (DirectX, SDL, OpenGL ?).
    Bref j'ai surtout dans l'idée de réaliser un petit truc notamment au niveau de la caméra tout d'abord, comment gérer l'affichage de la caméra pour avoir une vue "plongée" et pouvoir bouger la caméra sur un map (il s'agit donc en réalité d'un petit soft pour afficher UNE map et ... c'est tout pour le moment, plus tard la gestion d'une unité pourquoi pas !).

    Après, je veux que ce projet soit en 2D, tout simplement car je ne fais pas de 3d et je n'aurai pas le temps de m'y mettre.
    Du coup peut-être que le système de vue "plongée" serait une erreur donc je me rabattrai sur un système de vue de "haut" mais toujours avec cette gestion de caméra qui bouge en fonction de la position sur la map.

    Bref je me demandais quel moteur utiliser pour ça, je sais utiliser SDL mais il semble que ce ne soit pas la plus adaptée pour ce projet. Certains m'ont parlé de DirectX, d'autres de OpenGL, d'autres encore d'Allegro ou Ilrich voir Ogre mais je crois que ce sont des moteurs 3D ...

    Voila, vous savez tout. J'attends vos réactions/expériences.

    Merci,
    Te8teur.

  2. #2
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    Je ne pense pas que l'on puisse considérer la SDL comme un moteur (trop bas niveau AMHA).

    Certaines des bibliothèques que tu as citées sont en effet quasiment réservées à la 3D (Irrlicht, Ogre...). Pour DirectX, il me semble qu'il existe une gestion 2D mais je n'y ai jamais touché.

    Après, tu peux bricoler avec la SDL pour une gestion avancée de la caméra (tu crées une caméra virtuelle, que tu adaptes à ton propre scrolling). Mais ce ne sera peut-être pas le plus facile.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Donc tu me conseil de tenter le scrolling en 2D via SDL si j'ai bien compris.

    Quand est-il du moteur comme Ogre ou Irrlicht, es-ce vraiment dur à maitrisez ?
    Car au pire si je ne fais pas de 3D je peux trouver des ressources sur le net.

  4. #4
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    Il faudrait préciser un tout petit peu ce que tu entends par « vue plongée ». Tout dépend du niveau des fonctionnalités que tu souhaites implémenter. Si c'est un simple « défilement d'écran » avec une caméra au-dessus de l'objectif, alors la SDL pourrait suffire. Après, si tu veux zoomer & Cie, ça peut s'avérer plus problématique...

    Ogre et Irrlicht, sont, je ne te le cache pas, pas très évidents à maîtriser (bon, ça dépend de ton niveau et du temps que tu as, mais bon). Il faudrait tout de même s'armer d'un peu de patience et de motivation.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Pour l'instant je vise juste le déplacement de la caméra, le zoom non pas vraiment intéressé.

    Je vous remercie, je vais donc partir sur la bonne vielle SDL et tenter de faire quelque chose de potable

    Je créerais un topic pour montrer mon évolution si vous voulez en savoir un peu plus.

    ++
    Te8teur.

  6. #6
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Salut.

    Tu n'as pas besoin de 3D pour réaliser une vue plongeante.


    Pour cette image j'ai utilisé la SDL.

    Selon ton niveau et l'ambition de ton projet je te déconseillerai d'utiliser des moteurs "tout fait". Ces moteurs sont souvent plus adaptés à des projets avec des objectifs à long terme.

    Si tu veux juste te faire une petite démo pour roder ta technique, pars sur la SDL...

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par valefor Voir le message
    http://paul.chavent.free.fr/libsyndi...001_screen.png

    Pour cette image j'ai utilisé la SDL.
    Ah quand même C'est bien puissant en fait ! En même temps que la page de réponse (celle où j'écris en ce moment) chargeait, je parcours un tuto sur SDL. Tu as utilisé des sprites, tu les as fait, tu as fait comment ?

  8. #8
    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
    Oui SDL est assez bas-niveau pour permettre tout ce dont notre imagination est capable, mais vraiment vieille et du coup lente (elle utilise directX 5 sur windows il me semble) :/
    Mais les possibilités sont sympas, à l'aide de sprites.
    On peut ne pas se limiter aux sprites cubiques, et en utilisant des sprites losanges on parvient à des résultats comme ci-dessus .
    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.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Tes sprites sont ici de type isométriques ?
    Comment peut-on faire en SDL la gestion d'affiche de "case" qui ne sont pas carré mais losange (ou alors c'est des carrés très bien fait ^^)

  10. #10
    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
    Ce n'est pas possible, SDL ne gère que des carrés par défaut.
    Tu peux toujours faire des fonctions qui blit des losanges ou tout autre forme, mais le plus simple et plus rapide sera d'avoir des tiles correctement découpés qui donnent l'illusion de losange, en gérant bien les transparences.

    Ce sont donc des "carrés très bien faits", ou plutôt des losanges correctement découpés et mis en carré.

    Quand j'utilisais la SDL, j'utilisais les ressources de RPG Maker, on en trouve à foison sur le net sur les différentes communautés d'utilisateurs et fan .
    Un exemple de tiles isométriques : http://rpg-maker-vx.bbactif.com/t775...s-isometriques
    correctement découpé et affiché, l'illusion est parfaite.
    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.

  11. #11
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Tu as utilisé des sprites, tu les as fait, tu as fait comment ?
    Ces sprites sont l’œuvre des créateurs du fabuleux jeux syndicate (début des années 90).

    J'avais fait un lib pour lire les fichiers de ressources. Vous avez quelques autres sprites sur la page consacrée à cette lib : http://paul.chavent.free.fr/libsyndicate.html (descendre vers "screenshot").

    J'ai écris une doc qui résume les travaux de reworking : http://paul.chavent.free.fr/libsyndi...syndicate.html


    Tes sprites sont ici de type isométriques ?
    Comment peut-on faire en SDL la gestion d'affiche de "case" qui ne sont pas carré mais losange (ou alors c'est des carrés très bien fait ^^)
    Tu as donc sur les screenshots un aperçut de comment dessiner tes sprites (comme le précise bousk, il faut jouer avec la transparence).

    Puis :


    tu les dessines depuis ceux qui sont le plus au fond vers ceux qui sont le plus en avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(k = 0; k ...)
      for(j = 0; j ...)
        for(i = 0; i ...)
        {
        }

    Voila.

    Et puis comme je suis un peu fier voici la même chose dessinée avec openGL :

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Ouah je suis bluffé ^^
    Merci pour le lien je vais me renseigner.

  13. #13
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Ne soit pas impressionné... Le plus dur là dedans, c'est de trouver de joli "tuiles" bien conçues...

    Quand tu as les données, le code se résume à une boucle for dans laquelle tu appelles une fonction qui copie colle chaque tuile à une place donnée...

    Ha si, maintenant que je dis ça je me rappelle qu'il y a quand même un truc "chaud", c'est pour convertir tes (i, j, k) en coordonnées écran.

Discussions similaires

  1. [HOOK] Problème(s) pour réaliser le tutoriel sur les HOOKS
    Par Rodrigue dans le forum C++Builder
    Réponses: 13
    Dernier message: 27/07/2016, 18h22
  2. Quels langages pour réaliser un jeu sur un petit serveur avec peu de ressources
    Par VincentCh dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 26/10/2011, 18h17
  3. [Débat] Quel avantage offre Java pour réaliser des applis web face au php ?
    Par whitespirit dans le forum Développement Web en Java
    Réponses: 10
    Dernier message: 12/06/2008, 07h38
  4. Aidez-mois pour réaliser cette requete..
    Par mobeida dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2005, 15h35
  5. Réponses: 7
    Dernier message: 18/06/2003, 15h20

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