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

Développement 2D, 3D et Jeux Discussion :

Le langage C pour un petit jeu vidéo ?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Le langage C pour un petit jeu vidéo ?
    Bonjour!
    Je commence a métriser le language c:utilisation des pointeurs et des traitements de fichier...
    Je souhaite develloper des petits jeux videos en 2d: dessin de sprites, rotation,translation de ces derniers, maitrise de la couleur, utilisation de formules mathematique pour décrire la physique(ex: paraboles pour la balistique).
    Cela implique l'utilisation de fonctions mathématiques(sin, puissance, exp...ect).

    Mes questions sont donc:

    >Le language C est il assez facilement accessible pour appliquer tout cela?

    >Existe t'il un language + adapté?
    (ne me parlez pas de c++ou visualbasic,j'aimerais que ce language reste assez bas niveau..pour l'apprentissage )?

    >Utilisant dev c++,je ne suis pas arrivé à utiliser les bibliothèques graphiques, malgrès le fait d'avoir suivi scrupuleusement toutes les instructions.Existe t'il un logiciel facile d'acces à ce niveau?

    Voila...Ca fait beaucoup d'un coup mais je vou serrez tres reconnaissant!!!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Le langage doit être choisi en fonction de ton style.

    -> Un mec qui aime rouler en 4X4 n'achètera pas de Berline, et inversément.


    Le langage C est tout à fait approprié, et nombreux sont les jeux développé dans ce langage. Le C++ reste malgré tout assez rapide, par rapport à énormément de langage, je dirais même que c'est peut-être LE langage phare de la programmation jeux vidéo.

    Pour ce qui est des librairies graphiques, il y en a beaucoup écrites en C. Je pense à la SDL ou GTK par exemple.
    Si tu n'arrives pas à les installer, c'est que tu as du faire une erreur quelque part.
    Quant à Devc++, il faut savoir qu'il n'est plus mis à jour, je te conseille de t'orienter vers visual c++ ou vers code::blocks.

  3. #3
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    bonjour,

    Oui le C te permet de faire tout ce que tu enuméres et de façon assez simple si tu utilise une librairie graphique tel que SDL.
    Si tu souhaites debuter en SDL, tu peux aller là :
    http://jeux.developpez.com/tutoriels/#a_sdl

    Pour debuter (installation, bases), je te conseille mon tuto (cf ma signature ), ensuite les tutos d'anomaly et de fearyourself sont très bien aussi.
    Celui d'anomaly te permettra aussi de voir les bases et de voir les figures geometriques tandis que ceux de fearyourself te permettrons de voir la creation de petits jeux (pong, morpion) avec SDL à partir de zero.

    Bon courage

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 529
    Points : 5 203
    Points
    5 203
    Par défaut
    Citation Envoyé par Darkthief
    (ne me parlez pas de c++ou visualbasic,j'aimerais que ce language reste assez bas niveau..pour l'apprentissage )?
    le langage C n'est pas vraiment un langage de bas niveau, l'assembleur est un langage de bas niveau
    le C++ peut-etre considéré de plus haut niveau que le C, tout comme visual basic je pense

    si tu maitrises correctement le C, vas y, il est tout à fait adapté à créer de petits jeux (j'aime bien rappeler que Quake3 est en C )

    même si je plussoie Edarian, le C++ étant le langage le plus approprié aujourd'hui pour la création de jeux, de toute façon faire un petit jeu en C ou en C++ pose les même problèmes de base : bien s'organiser, structurer ta programmation, bien définir tes besoins...

    bon courage

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Oui le C est tres bien comme beaucoup de langage pour faire ce que tu souhaites : JAVA, C++, C, C#, Ruby, Python, Lua, ...

    Le resultat seras le même, seul tes connaissances feront la différence.
    Il y a tout de même quelques différences entre ces langages deja de type de programmation :
    tous ces langages sont Objet sauf le C, si tu ne sais pas ce que c'est regarde les quelques tutos ou faq (personnellement j'adore )
    L'autre différence est que certain langage sont interpréter (Python, lua et ruby) ce qui facilite l'apprentissage. En fait la phase de comilation execution que tu réalise a chaque modificaion d'un fichier *.c n'a plus lieu avec ces langages, facilitant ainsi enormément l'apprentissage.
    Le probleme est helas paradoxale, puisque ces langages ferait d'excellent support pédagogique pour les JV mais c'est le C ou le C++ qui reviens dans 90% des cours et tutos sur le sujet.

    Donc je dirais que le choix du langage se fera plus par ton affinité avec tel ou tel philosophie, et sur ca on peut pas choisir pour toi, l'ideal est de sacrifier 15 jours si il le faut mais regarde ce qui existe, le nombre de lignes pour un meme resultats ou encore la documentation existante pour te faire ta propre idée.

    Pour t'aiguiller regarde du coté de NEHE comme site, il donne pour ses tutos le code sources dans plusieurs langages, ainsi tu peut te faire une idée du travail que cela represente (meme si tu comprends pas tout entre un code source de 50 lignes et un de 15 lignes pour un résultat comparable le choix peut etre vite fait si tu n'as pas de préférences)

    Derniere infos a prendre a la légère pour le moment, j'ai vu un livre de chez micro app "C++" qui t'apprends ce langage avec visual C++ express sous forme du développement de jeu video. Cela peut-etre un point de depart et un investissement pour 8€.
    Je me suis pas trop penché dessus pour le moment mais ca peut valoir le coup.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Ouf j'ai bien cru que j'allai devoir programmer doom 5 avec basic! ...
    merci a tous

  7. #7
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Il y a aussi Allegro qui est une petite lib graphique très sympathique pour commencer à programmer des sprites etc.

    Sinon, oui, le C et le C++ sont les languages de référence pour ce qui est programmation de JV, et il vaut mieux maîtriser les deux pour tout comprendre.
    (J'ai vu des exemples de GX (la lib graphique de la GameCube/Wii) entièrement écrits en C. C'est l'horreur, certes, mais ca se comprend si on comprend le C).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,
    pour ma part, je pense que le C est très bien pour programmer des petits jeux, j'en ai déjà réalisé quelques uns en amateur, car j'adore programmer pour mon plaisir.
    je ne connait pas trop le sdl car je ne l'ai jamais étudié bizarrement on en parlait pas dans les cours que j'ai lu il y a quelques années, après avoir été un peu voir les forums qui en parle, je n'en reste pas vraiment convaincu, car je trouve qu'il est fort primaire pourquois pas l'api gdi de windows alors, au moins les fonctions de ligne etc... y sont inclues, bref je parle là un peu sans connaissances puisque je ne l'ai pas étudié, par contre je connais assez bien le directx pour dire que là il y a de la ressource et pleins de possibilités.
    vous pouvez aller voir mes petites créations ainsi que leurs codes source sur: http://www.montagepc.be

  9. #9
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 529
    Points : 5 203
    Points
    5 203
    Par défaut
    graphiquement, l'intérêt de la sdl réside dans l'utilisation des sprites, tracer de simples lignes c'est juste bon pour les enfants
    autant utiliser sdl+opengl si c'est pour faire du vectoriel

    le gdi c'est.. comment dire sans être méchant...
    pas portable

    si tu t'étais renseigné un peu sur la sdl, tu saurais que son intérêt principal c'est d'être portable
    la combiner avec opengl fait d'elle une bibliothèque des plus reconnues
    sans compter tout ce qu'il y a autour, elle se rapproche de directx avec la gestion du son, chargement des images, les thread, le réseau, ect

    ps : le portage Linux de Unreal Tournament utilise la SDL

  10. #10
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Et surtout, sur windwos, elle utilise DirectX...

    Roxell, tu as posté 5 messages, et dans les 5 tu donnes ton site web en exemple... Ca serait plus simple de mettre cette pub directement dans ta signature

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 856
    Points
    1 856
    Par défaut
    Je viens juste de commencer un casse - brique, pour lequel j'utilise C++, la SDL, et Code::Blocks.

    Les développements ont cessé pour Dev C++. Code Blocks est libre également, et toujours en cours de développement. (Remarque : télécharger un nightly build et non la dernière version "stable", qui ne l'est pas!).
    Il y a aussi la possibilité d'utiliser Eclipse avec le plugin C++. Avantages : les fonctionnalités d'Eclipse. Inconvénients : la lourdeur d'Eclipse, et puis ça me rappelle le boulot.

    C ou C++ : votre objectif est avant tout d'apprendre le C. Donc allez-y pour le C, mais je voudrais juste préciser que "Le C est plus rapide que le C++" tient de la légende urbaine. Voir à ce sujet le débat sur le forum C++.

    La SDL : complète, simple d'emploi, orientée jeux, portable.
    Jugement global positif, sauf pour le rendu graphique, primitif et lent. Il faut utiliser OpenGl, plus complexe, dès que l'on devient ambitieux. Heureusement, la SDL possède des fonctions pour intégrer OpenGL. Je n'en ai pas eu besoin pour mon casse brique. (Et pas d'UTF8 mais je suis le seul que ça intéresse.)

  12. #12
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 529
    Points : 5 203
    Points
    5 203
    Par défaut
    Citation Envoyé par BugFactory
    La SDL : complète, simple d'emploi, orientée jeux, portable.
    Jugement global positif, sauf pour le rendu graphique, primitif et lent.
    la SDL (sans parler d'opengl) peut utiliser l'accélération hardware
    l'affichage n'est pas si lent, il y a des jeux 2D 100% SDL qui sont très loin d'être lents
    regardes un peu dans la rubrique games du site officiel

  13. #13
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Et la SDL n'est pas orienté jeux. il une GUI, NET, son, ...
    la SDL fait comme directX sans la 3D, mais ceci se compense par SDL+OpenGL qui se marient parfaitement.

    la comparaison avec le GDI n'a pas lieu, d'etre le GDI est lent (tres lent (trop lent) ), pas de 3D, pas portable, lourd a coder (ca reste subjectif je vous l'accorde).

    SDL est parfait pour se lancer dans le monde du graphique, on peut faire un n'importe quel logiciel. Pour la "2D" fenetrage et autre, c'est DX5 il me semble qui est utilisé, mais pas la peine de hurler au scandale car pour la 3D c'est OpenGL qui prend le relais et la les performances sont les même qu'avec n'importe quel API de fenetrage. Mais comme dit plus haut SDL ce n'est pas que l'affichage mais tout un tas d'acces basé sur une même philosophie de conception simplifiant l'integration de nouveaux modules.

    Par contre SDL a un coté négatif (a mes yeux) il n'est pas pensé objet. Il en possede d'autre biensur mais celui ci est limitateur pour la conception d'application.

    Ensuite on peut lui reprocher son maque de classe haut niveau comme une classe Sprite, ou TextureManager, mais la on dedierais la SDL a une communaute de joueurs or ce n'est pas le cas.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Merci Mindiell pour ton conseil que j'ai suivit, tu sais nouveau site = pub
    Merci aussi à Shenron666 pour le lien, il y a tellement sur ce site que c'est pas toujours évident de trouver directement la bonne info, et les bons exemples.
    j'y ai été faire un tit tour et m'y attarderai un peu plus quand j'aurai un peu plus de temps, d'un premier coup d'oeil c'est vrai que ça à l'air sympa, mais je pense que de travailler avec opengl ou directx reste juste un choix et que l'un ou l'autre reste sympa pour toutes animations 2D et 3D pour les sprites c'est simple aussi en directx avec un 2ème fichier image en masque, ou travailler avec une clé couleur.
    pour le gdi, je pense comme vous, mais ce sont les bases et on peut y accéder via directx beaucoup plus rapidement.
    pour la 3D ça reste costaux, et là dessus j'utilise depuis peu "darkbasic sdk" que vous connaissez peut être j'en parle un peu sur mon site mais je vais m'abstenir de remettre l'adresse une 6ème fois
    grâce à ça la programmation 3D devient presque un jeu d'enfant et on peut inclure du code DarkBasic dans un environnement C de VisualStudio
    voici le lien en info: http://darkgamesdk.thegamecreators.com/

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 856
    Points
    1 856
    Par défaut
    J'ai constaté une forte baisse du framerate quand j'affichais deux fois l'image de fond (un test). Un simple blit, même de la taille de l'écran, n'aurait pas du avoir une telle influence.
    Enfin, de l'aveu même de la documentation de la SDL, les opérations de transparence sont lentes. (Non testé personnellement.)
    J'ai testé l'accélération matérielle / software sur mon portable : pas de différence. Le résultat serait peut être différent sur un poste avec une véritable carte graphique. Je pense que je vais procéder à de nouveaux tests sur un poste fixe. Mais je doute que le résultat sera très diférent : ce portable opeut faire tourner des jeux 3d sans problème, quoique pas les plus récents.
    Il est vrai en revanche qu'il faut être particulièrement gourmand pour mettre la SDL à genoux, et que sa lenteur n'est que relative quand on la compare à des monstres comme Direct X / OpenGL. J'ai affiché 1000 balles simultanément avec une chute de FPS de seulement 5.

    Je pense donc toujours que pour des graphismes performants mieux vaut se tourner vers OpenGL, que SDL intègre très bien, mais que pour de la 2D simple les fonctions natives de SDL sont suffisantes. Une autre alternative est d'utiliser SDL + Ogre 3D (Ogre permet d'utiliser OpenGL ou Direct X de façon transparente, et est orienté objet.) SDL reste très bon pour gérer le reste de façon transparente et simple.

    Par ailleurs, la SDL est bel et bien orientée jeux, même si elle est assez complète pour faire d'autres applications. Par exemple, les sprites sont gérés par la SDL seule et les polices TTF par une extension. WxWidgets par exemple est bien plus orientée vers les interfaces fenêtrées.

    Dire que la SDL n'est pas objet est exact mais un peu exagéré. Toutes les structures sont manipulées par des fonctions dédiées. Même si la SDL est rédigée en C, qui n'est pas un langage objet, on voit que ce paradigme a fortement influencé sa conception.

  16. #16
    Membre actif Avatar de Sixissor
    Étudiant
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 242
    Points
    242
    Par défaut
    Oui, le langage C est un tres bon langage pour commencer un jeu et la programmation en general. Donc vas-y fonce

    Perso je n'aime pas du tout SDL et je prefere utiliser de loin OpenGL +API Win32, mais c'est plus long et difficile pour un debutant.

    PS: je fais parti de ceux qui se fichent de l'argument "portabilite" et "logiciel libre", etc. Je code sous Windows et ca me suffit.
    PS2: une chute du framerate de 500 a 300 fps est equivalent a une chute de 50 a 40 fps... Donc chiffres a prendre avec moderation.

Discussions similaires

  1. Réponses: 11
    Dernier message: 07/10/2009, 20h57
  2. Réponses: 0
    Dernier message: 06/10/2009, 20h15
  3. Gestion de la memoire pour un petit jeu
    Par franck06 dans le forum Langage
    Réponses: 15
    Dernier message: 11/07/2008, 11h25
  4. Réponses: 4
    Dernier message: 21/05/2007, 23h58
  5. Besoin conseil pour un petit jeu
    Par Cosmosis dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2006, 14h44

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