Objectif
Mon projet serait de créer une API assé complète de développement de jeu simple et rapide. Même si Irrlicht est vraiment simple d'utilisation je pense qu'on peut faire beaucoup plus simple, avec par exemple des classes unitée, terrain...
La première étape serait de créer un moteur de jeux (Sirius Engine) basé en Irrlicht et c++, fournissant des fonctions de haut niveau permettant de créerles éléments d'un jeu sans être noyé dans un code trop volumineux. Il gérera la physique, l'IA, le son... tout se qui est nécessaire a un jeu.
exemple :
Ici on charge une unité a partir d'un fichier xml (.sir) et on l’ajoute sur la scène.
La deuxième étape serai de crée un éditeur de monde avec lequel on pourrais crée des scènes (terrain,unité, événement...) puis les sauvegarder pour enfin les utiliser avec Sirius Engine.
Sirius Engine
Pour vous donner une idée de l'organisation de Sirius Engine un petit schéma, un peu brouillon mais j'espère que vous comprenez le principe, il s'agit de tout centralisé dans une seule classe. Pour faire simple la classe application gère le menu et selon ce qu'il retourne lance une scène.
Pour être plus précis, la classe SiriusEngine inclura les autres classes du projet (SiriusScene,SiriusMenu...) et permettra de configurer tout ce qui est (driver,device). La classe SirusScene gérera tout ce qui est en rapport avec la scène (unité,environnement) en sachant que je considère qu'une scene a obligatoirement un seul terrain et un skydome. La classe SiriusMenu permettra de créer les menus du jeu. Et SiriusCore gérera tout ce qui la base de Sirius, comme les types, l'inclusion d'irrlicht et des principaux composants.
Lorsque quelqu'un voudra utiliser SiriusEngine il n'aura qu'a créer une classe Application qui héritera de SirusEngine. Toute les initialisations se feront dans la methode virtuelle « head » et le corp du programme dans la méthode virtuelle « body ». Il ne restera plus qu'à initialiser l'application avec la methode « start » et la lancer avec « run ».
La création d'une scene repose sur le même principe on crée une classe scene1 en incluant « SiriusEngine » et héritant de SirusScene, on initialise avec « head » et ensuite on utilise le « body ».
Extraits de code
SiriusEngine
SiriusScene
Main
Application
TestLevel
Expériences
Je n'es pas beaucoup, d'expérience pour des projet de groupe cependant, j'ai déja travailler avec une équipe de développement pour un projet de 6 mois dans le cadre de mon BTS IRIST.
J'ai ue plusieurs projet solo pour les étude, siteweb, jeu caml en licence.
J'ai également beaucoup programmer au tout début sur Dark Basic Pro, une expérience assé sympathique je connais la bête maintenant^^
Sinon j'ai installer après une grande bataille ogre... mais j'ai préférer Irrlicht, plus simple et je trouve qu'il se valle quoi qu'en on dise... les graphique sont similaire voir mieux je trouve.
J'ai inclus irrlicht dans Qt pour crée un éditeur (C'est d'ici que vien l'idée de se projet) bien évidemment, j'ai pas ue envie de continuer, car je voulais crée l'engine avant. http://irrlicht.sourceforge.net/forum/v … p;p=268640
J'ai crée pas mal de mini jeux sur dark basic pro qui n'on jamais abouti sauf 1 ou 2.
Et une petite vidéo en bonus (l'organisation du code a un peu changer)
http://www.youtube.com/watch?v=Y_S49474ntk
Conclusion
Je sais que ce projet peut paraître peu un fou, mais j'aime a pensé qu'il est réalisable, je ne suis pas un professionnel de ce genre de choses juste un étudiant en Licence qui se débrouille un peu en c++, Irrlicht et Qt (pour l'éditeur) et qui se dit... why not ?
Je ne sais pas combien de programmeur seront nécessaire, 4 ou 5 je pense. Je recherche plus tot des gens qui connaisse Irrlicht, c++ et vus que je ne m'y connais pas trop: les moteur physique, d'IA ... que l'on peu inclure a Irrlicht bien évidement.
Donc si vous êtes intéressé dite le moi:)
Dernière modification par bloupbloup (26-08-2012 00:35:08)
Hors ligne
Tout d'abord, bienvenu sur le forum.
Ayant moi-même un projet en cours, je ne viens pas pour postuler mais plutôt pour critiquer (de façon constructive bien entendu^^). Tu sais certainement ce que tu veux faire mais si tu veux trouver quelqu'un, il va falloir mettre plus d'explications.
Il faudrait expliquer ton diagramme et l'utilité globale de chacune d'elles. Si tu expliques bien, c'est que c'est clair dans ton esprit et si c'est clair dans ton esprit, ça donnera plus de poids à ton projet. Car il ne faut pas se leurrer, il y a plein qui ont voulu faire des projets mais qui ne savais pas réellement où ils allaient. Un truc intéressant à montrer aussi : ton expérience! Depuis combien de temps utilises-tu Irrlicht? Qu'as-tu fais comme projets avant? Même si tu n'es pas aller au bout et/ou qu'ils paraissent insignifiant, mets-les! Montres pourquoi tu penses pouvoir faire aboutir le projet et comment tu comptes t'y prendre.
Si je devais intégrer une équipe, c'est ces points là que je regarderai. L'impression que j'ai eu en lisant ta présentation, c'est : "Bien, le gars a une idée en tête, il a fait un petit quelque chose au vu de la vidéo MAIS il donne des explications succintes donc s'il ne sait pas expliquer globalement son idée, comment va-t-il faire lorsqu'il devra m'expliquer clairement ce que je dois coder?". C'est un peu violent mais je l'ai ressenti comme ça. Donc la vidéo donne une très bonne explication sur le principe de Sirius Engine mais maintenant explique clairement son fonctionnement (le fameux diagramme) pour montrer que tu sais où tu vas. Et bien sûr, comme je l'ai dit avant, montres que tu as l'expérience nécessaires.
Ah! Combien de gars? Certainement que des programmeurs, donc comment vas-tu gérer et dispatcher le code à implémenter?
Sur ce, bonne chance pour ton projet.
Edit : Il y a un autres trucs qui me chagrine. Tu appelles Sirius Engine un moteur de jeu, mais dans ce cas, qu'en est-il du son, de la physique voir du réseaux. Pour tes entités (soldats et autres), est-ce qu'il y aura une IA (même basique)?
Dernière modification par johnplayer (25-08-2012 22:35:06)
Hors ligne
Merci pour ton accueil
Alors j'ai écouter tes conseil, et j'ai essayer d'étoffé un peu tu me dira se que tu en pense
Dernière modification par bloupbloup (26-08-2012 00:42:02)
Hors ligne
C'est mieux, j'ai réussi à cerner le fonctionnement global de ton Engine.
D'après ce que j'ai compris, tes scènes seront codées en c++, ne serait-il pas mieux de mettre les données de ta scène dans un xml? Tu auras ainsi type de fichier "Scène" pour un futur éditeur. Pareil pour les menus. Tu codes un loader et un exporter pour tes scenes et tes menus. C'est plus modulaire donc plus pratique.
Hors ligne
Salut,
L'idée par d'une bonne intention, sauf que je trouve déjà dur d'aboutir un projet de jeu sur Irrlicht au vu de ses nombreuses limites qui retardent sans cesse son développement, alors coder une surcouche générique qui soit assez optimisée pour en faire un pseudo moteur easy to use me parait être de la pure folie....
Après si des mecs sont prêts à te rejoindre et sont vraiment motivés, c'est toujours réalisable, mais préparez-vous à de très long mois de programmation .
Quand au loader/exporter, je rejoins l'idée de JohnPlayer, le xml est plus modulaire et te permettra de faire évoluer ton éditeur avec une rétro compatibilité.
Bon courage tout de même.
Hors ligne
je rejoins parfaitement Coplan sur les commentaires,
Copland :
mais préparez-vous à de très long mois de programmation
et qui plus est par des mecs bien velus en maitrise des API et prog 3D engine (et ils courent pas les rues...)
mais le projet est louable, donc bon courage.
(je travaille, en tant que client par contre, avec un outil qui y ressemble assez finalement, code accessible et simple, éditeur, framework cool -> ça s’appelle Unity3D)
Hors ligne
Déja je vous remercis d'avoir pris le temps de lire et de commenter
Vous avez peu être raison ce projet est sans doute audacieux mais, je ne pense pas qu'il soit irréalisable! De toute façon je travaille de mon coté dessus même si ca avancera lentement La raison pour laquelle je cherche des gens c'est pour pouvoir partager des connaissances, en effet plus on est nombreux plus chacun peu apporté quelque chose ce qui évite les recherche qui n'en finisse pas sur google^^
Par exemple, je suis en train de réfléchir a un problème qui pourrait sans doute être réglé par une personne en quelque seconde: Je me demande qu'elle format de model 3d serai le mieux pour les personnages, je pense que md2 est de trop basse qualité mais, à ce qui parait c'est galère d'utiliser les animations de fichier x (il me semble avoir lu que le squelette était inversé), et pour le 3ds c'est impossible... ce qui me dérange c'est que j'aurais voulu utiliser des 3ds car ils sont facilement trouvables sur le net^^
Donc même si il y a des gens qui sont intéressé pour codé une petite partie du moteur de temps en temps sa pourrait aidé... Ou sinon des gens qui n'on pas envie de codé mais avec lesquels je pourrais demandé conseil rapidement pour ne pas butter 3000 ans sur le même problème.
Et oui pour le XML j'ai prévus d’intégrer une fonction pour charger une scène entière, mais je voulais pouvoir faire les deux(coder en dur aussi)
Ps: vous connaissez un site qui fournisse des md2 animée?
Dernière modification par bloupbloup (27-08-2012 15:08:36)
Hors ligne
bloupbloup :
Par exemple, je suis en train de réfléchir a un problème qui pourrait sans doute être réglé par une personne en quelque seconde: Je me demande qu'elle format de model 3d serai le mieux pour les personnages, je pense que md2 est de trop basse qualité mais, à ce qui parait c'est galère d'utiliser les animations de fichier x (il me semble avoir lu que le squelette était inversé), et pour le 3ds c'est impossible... ce qui me dérange c'est que j'aurais voulu utiliser des 3ds car ils sont facilement trouvables sur le net^^
oubli le MD2, facile à implémenter, il est obselète depuis trèéésss longtemps.
Un format qui aujourd'hui fédère la plupart des moteurs (Unity, UDK, GStart, etc...) est le format FBX. Regarde de ce coté... Mon conceil est que si tu dois te faire suer à implémenté un formet, c'est vers celui là qu'il faut lorgner...
bloupbloup :
Donc même si il y a des gens qui sont intéressé pour codé une petite partie du moteur de temps en temps sa pourrait aidé... Ou sinon des gens qui n'on pas envie de codé mais avec lesquels je pourrais demandé conseil rapidement pour ne pas butter 3000 ans sur le même problème.
Tu peux toujours venir ici, même si tu n'aura pas forcement une réponse rapide.
J'ai codé plusieurs engine3D, donc je peux toujours essayer de t'apporter quelques réponse générales ou éclairage, même si je n'ai pas le temps de rentrer dans les détails....
Hors ligne
je suis entrin de chercher le format fbx, il propose quoi de plus ?
Hors ligne
C'est un format complet et moderne, static et animation. (c'est Autodesk)
Il est supporté par la plupart des logiciel (3DSMax, Maya, Blender, etc...) et en import il se généralise sur tous les outils.
Il tend à remplacer le format 3DS (qui commence sérieusement à dater).
Hors ligne
Hors ligne
Sans ça, il reste le modèle B3D format natif de Blitz3D que je trouve particulièrement bien et simple.
On trouve de bon convertisseur du fbx vers B3D donc à voir non ?
Il en jete se modèle, vous savez d'ou il l'a piqué le mec ?
Hors ligne
Copland :
Sans ça, il reste le modèle B3D format natif de Blitz3D que je trouve particulièrement bien et simple.
Le format B3D est certainement le meilleurs format actuellement supporté par Irrlicht.
Par contre sont seul défaut est qu'il n'évolue plus vraiment, et qu'il sera donc lui aussi de moins en moins présent dans les tools et donc sa pérennité est très compromise.
Même si il est quasi absent du monde des graphistes et modelers, il reste encore assez présent dans le milieu de la création amateur de game3D.
Copland :
On trouve de bon convertisseur du fbx vers B3D donc à voir non ?
oui, mais quand on bosse sur un projet qui comporte pas mal d'asset, faire des conversions permanentes de format de modeles, c'est un peu lourd, surtout quand les transformation sont parfois aléatoire.
Copland :
Il en jete se modèle, vous savez d'ou il l'a piqué le mec ?
non, le mec l'a fait lui même
Mais il est bien chouette
Hors ligne
J'ai repensé à ce projet en fait, je pense qu'il serait plus judicieux de faire une classe pour scripter Irrlicht. Tu peux après créer un éditeur de script. Pour le rendre "plus simple" comme c'était ton but tu peux créer des fonctions préprogrammées pour réalisées une série d'action genre :
Et dans le fichier script tu mets cette ligne:
addObjetStatique("pathmesh", "pathtexture", vector3df(0.0f)...)
Au final, ton code ton jeu dans un script et comme dans l'exemple cité au-dessus tu écris une ligne au lieu de plusieurs donc tu gagnes en temps et en facilité de codage. Ensuite tu créés des loaders xml et tu peux encore simplifié la chose. Il faut juste mettre à jour la classe de script à chaque nouvelle version d'Irrlicht.
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 17 invités en ligne Aucun membre connecté RSS Feed |