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

Projets Discussion :

Compilateur pour le monde des jeux vidéos


Sujet :

Projets

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut Compilateur pour le monde des jeux vidéos
    Bonjour...

    Dans mon cursus, on a un cours de compilateur, et on doit en réaliser un. Mais le prof nous laisse le choix pour ce qu'on veut faire. Et ça ne dois pas forcément compiler en langage machine. La seule instruction que l'on aie, c'est que l'on doit compiler un langage A en un langage B. Dans les années précédentes, des élèves ont fait par exemple transformation d'un midi en partition (format latex).
    N'ayant pas d'idée spéciale, je me suis dit, quittes à faire un compilateur, autant que ce soit utile! Et comme plus tard, j'aimerai travailler dans l'industrie du jeu vidéo, je me suis dit, que dans ce domaine qui est assez vaste, il doit bien y avoir un truc à faire...

    Donc, c'est ici que vous pouvez intervenir. Si vous avez rêvé d'avoir un petit outil qui vous changerai un code A en un code B, je veux bien le faire, pour autant que ce soit pas trop trop compliqué. Mais ce serait pas dispo avant mars, et je garantie pas que ce soit tout à fait parfait.

    Etant donné que c'est un travail qui est coté, je ne publierais les sources qu'une fois fini. Mais je veux bien expliquer dans ce post un peu ou j'en serai au fur et à mesure...


    Donc voilà, si vous avez des suggestions ou des questions, je suis prêt à répondre

  2. #2
    Membre habitué
    Lycéen
    Inscrit en
    Juillet 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Points : 145
    Points
    145
    Par défaut
    T'es noté comment? En fonction de la difficulté de la tâche à accomplir?

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par bogoss91
    En fonction de la difficulté de la tâche à accomplir?
    Non. Lorsque l'on a une idée de ce qu'on voudrait faire, on le communique au prof, et lui peut accepter ou refuser ( si ce qu'on propose c'est trop important ou pas assez ).

    On est coté en fonction du respect des consignes quant au fonctionnement interne du compilateur, et surtout sur son efficacité. Donc, si on compile un fichier de 100 lignes de codes et que ça prend deux minutes, j'aurai pas beaucoup de points..

  4. #4
    Membre habitué
    Lycéen
    Inscrit en
    Juillet 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Points : 145
    Points
    145
    Par défaut
    Ah ok.

    Ce qui pourrait être interessant à faire, c'est un compilateur C++ vers C objet ('fin bon, je sais pas si c'est considéré comme un lagage différent ou pas...).

    C'est pas en rapport avec les jeux vidéos, mais je vois vraiment pas qu'est ce que tu pourrai "compiler" dans ce domaine.

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    le C et le C++ sont bien des langages différents. Maintenant, ça va être un peu trop difficile à mon goût car il faudra trouver des astuces pour tous les mécanismes orientés objets: surcharge des opérateurs, héritage, ...

    Et que faire pour que ce soit plus orienté jeux-vidéo? transformer un format 3d en un autre, transformer une map d'un jeu en une map pour un autre jeu, transformer un langage de script en un autre langage (de script ou non), ...
    Par exemple, toutes les maps de jeu sont compilées pour les lumières statiques. Ainsi, pas besoin de gérer ça en temps réel.

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On peut fairte un projet s'inspirant de l'interface de saisie de scenarios de Warcraft.

    Il s'agit d'un système qui permet de rentrer de façon interactive une suite d'instructions à partir d'un IHM.
    Ainsi les instructions de bases sont du genre:
    • Affectation : Variable = variable| constante | expression | fonction prédéfinie avec expression = variable| constante | expression <Operateur> variable| constante | expression
    • if then : if (condition) then instruction
    • if then else : if (condition) then instruction
    • for
    • call
    • ...

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Et qui serait traduit en C par exemple? En effet, ça peut être possible. Mais est-ce que ce sera utile? Car j'aimerai que ce projet soit utile, et pas juste "un autre projet dans le cadre des cours qui restera dans le fin fond de mon disque dur et qui sera jamais ré-utilisé par après".

    Et au passage, tu as une adresse ou il y aurait une spécification de cette interface?

    En tout cas, l'idée de base me plais bien

  8. #8
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    C# vers C++ peut être très intéressant et très utile pour la communauté.
    Maintenant la tâche ne sera pas facile

  9. #9
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    un truc amusant peut être de parser un format 3d du genre ASE pour le transformer en fichier C compilable qui affiche le modele (le logiciel 3dExplore le permet)

    sinon, tu peut aussi le transformer dans un format XML, ca doit pas être trop dure, et ca permet d'avoir un format de fichier facile à parser dans tous les langages

    un autre truc possible est de prendre un format du style map de doom 3 et de le transformer dans un format plus classique du style ASE (ou l'inverse)

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 34
    Points
    34
    Par défaut
    Une autre idée serait un compilateur "paramétrable", qui prenne en entrée un format 3D géré par le plus possible de modeleurs (peut-être COLLADA), et qui transforme ça dans un format que chacun puisse adapter à ses besoins.

    Ça veut-dire que le format de sortie doit pouvoir se paramétrer le plus possible: quelles infos garder (par ex. stocker les normales ou pas, squelette, frame d'animation...), quelle structure leur donner (par ex. grouper les faces par matériaux), quelles transformations (par ex. triangulation).

    S'il est suffisament paramétrable, je pense que pas mal de gens serait intéressés... Par contre ça risque de demander pas mal de boulot pour déterminer les possibilités les plus utiles aux développeurs de jeux.

  11. #11
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    la, pour le coup, ca devient un boulot enorme. Tu as sans doute interet à te limiter à une sous partie des type de fichier possibles. Par exemple, ne faire que des modèles animées par keyframe, ou seulement animé par bones...
    ensuite, avec un systeme de plugin d'export, ca permetrait à tout le monde d'exporter le format d'entrée dans son propre format perso, ce qui, pour le coup, serait génial

  12. #12
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par MoDDiB
    C# vers C++ peut être très intéressant et très utile pour la communauté.
    Maintenant la tâche ne sera pas facile
    En effet, surtout que je ne connais pas du tout le C# et que je ne connais pas (encore) le C++
    Citation Envoyé par bafman
    un truc amusant peut être de parser un format 3d du genre ASE pour le transformer en fichier C compilable qui affiche le modele (le logiciel 3dExplore le permet)
    ça pourrait être chouette en effet
    Au passage, aurais-tu une adresse pour ce logiciel? J'ai pas trouvé...
    Citation Envoyé par lorannt
    compilateur "paramétrable [ ... ] Ça veut-dire que le format de sortie doit pouvoir se paramétrer le plus possible: quelles infos garder (par ex. stocker les normales ou pas, squelette, frame d'animation...), quelle structure leur donner (par ex. grouper les faces par matériaux), quelles transformations (par ex. triangulation).
    Ça pourrait être intéressant, mais ce serait un travail trop gros je crois. Et puis, dans mon rapport, je dois expliquer mes règles de traduction, donc, si le format n'est pas clairement défini, ça risque d'être difficile...
    Ou alors, il faut définir un nouveau format dans lequel les infos seraient redondantes, et du coup, lors de la compilation, on peut choisir de ne pas prendre telle ou telle information... Mais ça ferait pas mal de boulot aussi

    Citation Envoyé par bafman
    Tu as sans doute interet à te limiter à une sous partie des type de fichier possibles. Par exemple, ne faire que des modèles animées par keyframe, ou seulement animé par bones...
    ensuite, avec un systeme de plugin d'export, ca permetrait à tout le monde d'exporter le format d'entrée dans son propre format perso, ce qui, pour le coup, serait génial
    J'en doute pas que ce serait génial... Mais ça fait peut-être un peu gros encore de gérer des plugins, surtout que j'ai jamais fait d'application qui en utilise


    Difficile que de trouver un projet qui soit à la fois intéressant et pas trop gros
    Mais pour l'instant, je retient les idées de bafman et de laurannt, c'est à dire de mettre des options de compilations pour avoir les données de telle ou telle façon, ou d'exporter en c compilable pour être utilisé directement...

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par luckyvae Voir le message
    Difficile que de trouver un projet qui soit à la fois intéressant et pas trop gros
    Comme le dit Bafman, tu peux choisir un domaine aussi spécifique que tu veux pour limiter la complexité. De même, pour ton projet, tu peux limiter le nombre de paramètres à gérer, tout en prévoyant la possibilité d'en ajouter d'autres plus tard (une fois les sources publiés).

    En ce qui concerne les plugins, dans un premier temps tu peux te contenter d'avoir des modules clairement définis, n'ayant pas de dépendances avec le reste du code. Il sera facile de transformer ces modules en plugin plus tard.

    Pour ce qui est de l'absence de format bien défini, tu peux partir d'un format "canonique" relativement complet. Ensuite je pense que pas mal de paramètres du format de sortie peuvent se voir comme des passes d'optimisation pour un compilateur classique: cela vient changer l'ordre des "instructions" produites, éventuellement compacter ou au contraire dérouler certaines structures, mais cela peut se faire directement sur ton langage cible.

    Ceci dit, c'est vrai qu'il y a tout de même un gros travail à faire pour définir un format de sortie correct (= réellement utilisable), et peut-être que ce travail là n'entre pas vraiment dans le cadre de ton cours...

  14. #14
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par laurannt
    il y a tout de même un gros travail à faire pour définir un format de sortie correct (= réellement utilisable), et peut-être que ce travail là n'entre pas vraiment dans le cadre de ton cours...
    En effet. A ma connaissance, la seule personne qui ait défini son langage d'entrée ou de sortie, c'est quelqu'un qui utilisais son compilateur dans son travail de fin d'études. C'était pour stocker efficacement des descriptions de chromosomes....

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Points : 174
    Points
    174
    Par défaut
    J'ai utilisé il y a quelques années un logiciel qui s'appelait Form4, et qui avait son langage propre pour créer des formes 3D et les muter (répéter 5 fois une chaine d'objets, la courber, la tordre, etc)
    Il pourrait être intéressant d'utiliser ce langage comme langage A et de le transformer en un fichier B composé d'objets 3D primitifs (sphères, cylindres, ...) avec leurs positions (X,Y,Z, et les rotations sur les axes) et qui seraient visualisables par n'importe quel autre langage utilisant OpenGl ou DirectX.

  16. #16
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    une autre idée : faire un generateur d'arbre à partir de L-systems.

    en gros, tu lui donne une grammaire en entrée, un "programme", et ca te sort le mesh d'un arbre... on peut difficiliement faire plus orienté grammaire que les L-systems dans le jeu vidéo

  17. #17
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    J'ai trouvé sur sur ce site une bonne description d'un langage permettant d'utiliser des L-systems.
    Et ça me plais assez bien

    Mais je pense pas m'en servir comme d'une description pour des arbres, mais seulement pour des formes cubiques.

    Ça y est! J'ai mon langage A

    Maintenant, reste plus qu'à trouver un langage B, c'est à dire un format de fichier 3d. Et pour celà, je m'en remet à vous à nouveau. Est-ce que vous connaissez un format de fichier texte qui décrit de la 3d plus ou moins de la manière suivante: on déclare un cube que l'on étire/allonge puis on définit son orientation et sa position ?
    Et si en plus, il est exploitable par blender, alors là, ce serait le pied total

    Et lorsque j'aurais tout ça, je pourrais envoyer ma proposition à mon prof pour voir ce qu'il en dit...

  18. #18
    Membre habitué
    Lycéen
    Inscrit en
    Juillet 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Points : 145
    Points
    145
    Par défaut
    Il y a le Collada

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Points : 174
    Points
    174
    Par défaut
    Si ton besoin pour un langage B est:
    - de pouvoir déclarer un cube, une sphère, un cylindre, une boite, un cone, ...
    - de pouvoir les étirer et les contracter,
    - de les positionner en X,Y,Z
    - de leur faire subir des rotations sur les axes X,Y,Z
    - de les colorer,
    - de leur affecter une texture,
    alors, humblement, je pourrais te proposer mon langage.

    Par exemple: pour créer un cube (n° 1, de coté de taille 2):
    3d_cube 1,2
    pour positionner son centre en (2,3,4):
    3d_position 1,2,3,4
    pour dilater ce cube (n°1) de 2.5 sur l'axe Y:
    3d_y_scale 1,2.5
    pour lui faire prendre un angle de 30 degrés sur l'axe Z:
    3d_z_rotate 1,30
    pour le colorer en rouge (Red=255,Green=0,Blue=0)
    3d_color 1,255,0,0

    Je peux bien évidemment te donner toute l'aide nécessaire. Tu as un manuel de référence (en anglais et en français) sur www.panoramic-language.com
    Tu y trouvera le compilateur qui permettra de visualiser cet "univers" 3D.
    N'hésite surtout pas à me poser des questions !

  20. #20
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par PANORAMIC
    alors, humblement, je pourrais te proposer mon langage.
    ça m'aurait bien tenté (surtout le fait que le concepteur du langage veuille bien me filler un coup de main pour comprendre le langage ), le seul hic, c'est que tout se fait sous linux à l'unif' et que ton langage se compile qu'en application windows j'ai l'impression :s

Discussions similaires

  1. Microsoft lève le voile sur l'une des plus vieilles légendes du monde du jeux vidéo : E.T.
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 01/05/2014, 22h22
  2. Réponses: 0
    Dernier message: 28/03/2014, 14h01
  3. Simuler un clavier pour des jeux vidéo
    Par Grinvald dans le forum Windows
    Réponses: 6
    Dernier message: 20/05/2011, 14h04
  4. Réponses: 13
    Dernier message: 18/07/2007, 09h30
  5. [Logiciel] Outil pour développer des jeux vidéos
    Par Kiri dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 16/06/2004, 20h29

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