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 :

Création d'un compilateur pour jeux


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Création d'un compilateur pour jeux
    Bonjour a tous depuis peu je me suis lancé dans la création d'un. Compilateur. Pour pouvoir créer. Mes jeux. Un peu comme. Gamemaker ou le compilateur d'unity mais j'ai beau chercher je ne trouve pas. Comment. Créer un compilateur personnaliser. Svp. Est ce que. Quelqu'un. Connaîtrait. Comment procéder. ? Merci d'avance 😋

  2. #2
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Bonjour Christian,

    De quel genre de compilateur parles-tu ? un compilateur de langage avancé qui génère un pseudo-code interprétable ?
    Peux-tu nous en dire plus.

  3. #3
    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
    Je ne connais pas gamemaker, mais Unity n'a pas de compilateur spécifique.
    Le langage est le C#, et Unity est juste un interpréteur C# qui propose des extensions au langage qui interfacent ce que le moteur fait en interne.
    Ensuite ils peuvent utiliser un simple compilateur C# si besoin.
    Tu peux intégrer le langage de ton choix. Lua est un classique. Python est intéressant mais pas forcément simple à interfacer.
    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.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par franckcl Voir le message
    Bonjour Christian,

    De quel genre de compilateur parles-tu ? un compilateur de langage avancé qui génère un pseudo-code interprétable ?
    Peux-tu nous en dire plus.
    Si vous connaissez game maker et son compilateur j'aimerais créer exactement quelque-chose de similaire je n'ai pas envie de créer un compilateur qui. Interprete mon language vers un autre language j'ai envie de créer un compilateur. Semblable a ceux qutilise
    Les moteur de jeux et yimplementer mon propre language de programmation en clair( . Comment créer un compilateur pour moteur de jeux)

  5. #5
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Sinon il y a les incontournables → Le Dragon Book

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 438
    Points : 43 081
    Points
    43 081
    Par défaut
    Je ne connais pas gamemaker
    C'est un truc qui fonctionne via le glisser déplacer, aucun code à écrire, derrière ça doit générer un script mais je ne sais pas si on y a accès.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    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 Christian 118 Voir le message
    Si vous connaissez game maker et son compilateur j'aimerais créer exactement quelque-chose de similaire je n'ai pas envie de créer un compilateur qui. Interprete mon language vers un autre language j'ai envie de créer un compilateur. Semblable a ceux qutilise
    Les moteur de jeux et yimplementer mon propre language de programmation en clair( . Comment créer un compilateur pour moteur de jeux)
    De toute évidence non c'est pas clair et la tâche te dépasse très nettement.
    Non les moteurs ne créent pas de compilateur, ils ont autre chose à faire.
    Ils ont juste une architecture bien pensée et savent écrire du code.
    Un objet que tu drag&drop sur gamemaker, sur l'éditeur de scène de Unity ou dans le Blueprint de UE ce n'est pas un script magique compilé par le moteur. C'est du code, C++ dans le cas de UE, qui rend ça possible avec des structures de données réfléchie en ce sens.
    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.

  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
    Si vous voulez faire des jeux, faites des jeux, ne refaites pas des outils très compliqués, qui prendrait tout votre temps et qui diminuerai votre motivation. N'hésitez pas à lire (ou relire) cette section de l'article Par où commencer un jeu vidéo.
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Mon but n'est pas de faire un jeu mais un outils qui convertit les jeux de consoles en exécutable
    C'est pour ça que j'avais besoin de créer un compilateur. De cette façon. L'application transformera la rom vers mon language et le compilateur transformera le nouveau fichier obtenu vers un exe

    Citation Envoyé par Bousk Voir le message
    De toute évidence non c'est pas clair et la tâche te dépasse très nettement.
    Non les moteurs ne créent pas de compilateur, ils ont autre chose à faire.
    Ils ont juste une architecture bien pensée et savent écrire du code.
    Un objet que tu drag&drop sur gamemaker, sur l'éditeur de scène de Unity ou dans le Blueprint de UE ce n'est pas un script magique compilé par le moteur. C'est du code, C++ dans le cas de UE, qui rend ça possible avec des structures de données réfléchie en ce sens.
    Pourtant j'ai lu un article qui dit que unity va virer vers le c# et crée un nouveau compilateur nommé burst alors explique moi que fera ce compilateur?

  10. #10
    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
    Vous cherchez une sorte d'émulateur. Vous cherchez à convertir des jeux consoles, pour qu'ils soient jouable sur PC ?
    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.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Vous cherchez une sorte d'émulateur. Vous cherchez à convertir des jeux consoles, pour qu'ils soient jouable sur PC ?
    Oui j'aimerais que. Mes jeu console soit sous le format exe
    Je ne cherche pas a créé un émulateur je sais déjà comment faire ce que je veux c'est créé un convertisseur

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 438
    Points : 43 081
    Points
    43 081
    Par défaut
    ce que je veux c'est créé un convertisseur
    ben c'est justement la définition d'un émulateur.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  13. #13
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 507
    Points : 1 832
    Points
    1 832
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    ben c'est justement la définition d'un émulateur.
    Pas pour moi. Un émulateur, ça émule un environnement souvent matériel, un convertisseur convertit une série d'instruction d'un système à un autre.

    Si je comprends bien ce que veux notre ami, c'est transformer une ROM de console en programme Windows. Ce qui a ma connaissance n'existe pas.
    Sauf erreur de ma part, une ROM n'est pas un code source, mais un binaire exécuté soit par la console, soit par l'émulateur.

    Il est possible d'avoir un compilateur qui transforme le code source d'un jeu prévu sur console vers Windows. Mais il faut avoir le code source, pas juste la ROM.
    Unity, UE, Godot et consort en sont capable. Du moins à partir d'un code source générique, ils sont capable de fournir les binaires pour un grand nombres de système, avec des limites. Tu ne peux pas exporter des capacités non existantes sur un plateforme matériel. Ce qui parfois nécessite, un reprise des animations pour le portage, notamment vers Android et IOS qui ont des capacités très limitées face aux consoles ou PC dernière génération
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  14. #14
    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
    Super ! Maintenant, on sait quel est le coeur du problème (ou de la question initiale).

    Je peux maintenant répondre clairement.
    Ce que vous voulez faire (transformer une ROM en exécutable Windows/Linux/mac) n'existe pas (ou pas vraiment (1)). Pourquoi ? Simplement car les fonctions internes à nos systèmes (disons Windows) et ceux internes aux consoles ne sont pas les mêmes. Il ne faut pas juste convertir les exécutables, mais aussi reproduire le comportement de la mémoire (notamment, les zones miroir, les accès hors limite qui ne font pas la même chose sur chaque machine...), le comportement du GPU (la GameCube est horriblement compliqué sur ce point là), le comportement des différents CPU (notamment la PS3), la synchronisation des cores et ... les spécificités du système d'exploitation.
    Donc, même si vous convertissez le ADD d'une console ARM, vers un ADD x86 compatible Windows, cela ne suffit pas. Car en plus du ADD, le binaire appelle d'autres binaires externes (qui ne sont pas dans la ROM), qui s'occupent de l'affichage, du son, de la gestion des threads et ainsi de suite.
    Pour faire simple, un binaire ne suffit pas. Un binaire/programme fait appelle à de très nombreux codes externes, auxquels vous n'avez pas accès (kernel de la console, pilote propriétaire des puces de la console et j'en passe).
    C'est pour cela que cette piste n'est presque jamais explorée et que les émulateurs (deux types existent) tentent de reproduire au mieux le comportement de la console (hardware) et de son système.
    Évidemment, c'est beaucoup plus simple avec les consoles 8 bits . Je vous invite maintenant à voir la note en bas de page.

    Dans le cas où vous avez le code source (ou l'intégralité du projet) comme l'ont les créateurs de jeux vidéo, alors c'est autre chose. Les moteurs de jeux vidéo prennent le projet, compilent le code écrit (qu'il soit en C, LUA, C#...) et cette opération de compilation le transforme en exécutable compatible avec la machine cible (console ou PC) et cet exécutable fait appel à la centaine de fonctions/possibilités exposées par le constructeur de la console (bibliothèque graphique, ...). En plus de la compilation, des opérations sont effectuées sur les ressources du jeu (graphismes, sons) et finalement intégrés dans un format conçus par le créateur de la console. Mais ça, c'est le processus standard et un membre extérieur du projet ne pourra pas le reproduire (car pas accès aux fichiers de base).


    (1) :
    Citation Envoyé par gabriel21
    Si je comprends bien ce que veux notre ami, c'est transformer une ROM de console en programme Windows. Ce qui a ma connaissance n'existe pas.
    Et bien, accrochez vous, mais cela a été expérimenté et détaillé ici : https://andrewkelley.me/post/jamulator.html (TL;DR :
    After completing this project, I believe that static recompilation does not have a practical application for video game emulation.
    )
    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.

  15. #15
    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 Christian 118 Voir le message
    Pourtant j'ai lu un article qui dit que unity va virer vers le c# et crée un nouveau compilateur nommé burst alors explique moi que fera ce compilateur?
    Oui Unity, après des années d'existence, se dit que la prochaine étape pour les performances est d'avoir leur propre compilateur. Compilateur qui modifiera le code source C# que les utilisateurs créent, vers un truc plus natif et performant.
    Unreal a ( ou veut avoir) une passe de compilation des blueprint pour en sortir un code plus performant et moins gourmand en runtime. Là aussi c'est une passe de modification du code source qui est leur moteur et les données blueprint qu'ils maîtrisent.
    Pour cela, tous ont des ingénieurs très compétents et expérimentés, et ça va prendre du temps. Ce n'est pas une lubie de Random Bob sortie de nulle part.

    Citation Envoyé par Christian 118 Voir le message
    je sais déjà comment faire ce que je veux
    Super, pas de problème alors !
    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.

Discussions similaires

  1. licence pour création d'un compilateur
    Par cdm1024 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 06/05/2009, 00h46
  2. [VB6] Création de trainers pour jeux
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/08/2008, 01h27
  3. Compilateur pour le monde des jeux vidéos
    Par luckyvae dans le forum Projets
    Réponses: 23
    Dernier message: 29/04/2008, 10h32

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