[Moteur3D c++] TroisD
| SEB |
Posté le 23 Août 2011 à 18:59
|
|
![]() Messages : 554 GCPoints : 103313 |
Hello Hello. Alors concernant NextGine il y a eu effectivement de l'évolution, étant donné que j'ai commencer à construire un éditeur de jeu basé sur Qt autour de mon moteur. Cela m'a permi d'apprendre des tas de choses et de me rendre compte de certains soucis présent dans le moteur pour un faire une utilisation concrète. NextGine se compose donc actuellement de plusieurs 'morceau', plus ou moins indépendants. Le moteur complet et quelques outils. Le moteur comporte les modules suivant : NextGine ==> Core ------ (Element de base, collections, logs, threads, filesystem, xml, zipper, criptor, system informations etc...) ==> AI ------ (système de scripting, machine a etat, mini CSP solver) ==> Graphic ------ (Moteur graphique, gestion de scène nodes et de chaine de rendu, optimisation de mesh etc.., rendu de police etc..) ==> GuiSystem ------ (Moteur de gui entièrement abstrait permettant de créer des implémentation aussi bien en Win32 qu'en X11 ou Cocoa ou bien meme encore dans le moteur NextGine) ==> ImageLoading ------ (Toute une liste de loaders d'image, BMP, ICO, DDS, JPG, PCX, PNG, PPM, TGA) ==> Math ------ (Librairie regrouppant tous les element mathématiques vecteur,matrice,quat ainsi que les optimisations SSE et une couche abstraite pour faire des calcul parallèle basé sur des kernel openCL ou software) ==> ModelLoading ------ (Toute une liste de loader de model 3D, 3DS, ASE, BSP, MD2, MD3, OBJ, OFF, STL) ==> Network ------ (Des element de reseau) ==> NextGine ------ (Une lib regrouppant tout cela et fournissant une interface scriptable) ==> Physic ------ (Un début de moteur physique) ==> Renderer ------ (3 renderer de rasterisation OpenGL, DirectX9 et 10 et un renderer en ray tracing experimental) ==> Scripting ------ (Plusieurs interface ver des langages de script : LUA, Javascript, Python, Lisp) ==> Sound ------ (Un module de son de base interfacé avec OpenAL et/ou DirectSound lisant des fichier WAV uniquement pour le moment) Tous ces modules sont dépendant du module Core et Math. Tout ceci est actuellement compilé en lib statique et il me serait difficile maintenant de fournir une lib dynamique sur chacun de ces modules, cependant ce que je peux faire c'est créer une version dll du module NextGine qui exporteraient les fonctions que je bind actuellement sur les système de script. Et Ainsi pouvoir utiliser le moteur de la meme facon que ce que je le fourni à mon système de script. Au niveau des outils il en existe 3 : Un packager/dépackager permettant de créer, ouvrir des archives nextgine Un environnement de création de jeu en Qt, permettant de gérer des projet, des scènes, des textures, des scripts et enfin de publier les jeux. Un serveur de travail collaboratif avec une mini interface en Qt auquel peut se connecter l'éditeur afin de pouvoir avoir un système de versionning adapté aux jeux et aux assets qu'on y trouve. (Serveur en cour d'expérimentation) Je vais essayer de vous mettre en ligne la dernière version de l'éditeur même si elle n'est pas parfaite. Et si tu es intéressé par le fait que je crée une dll comme je l'ai dit j'essayerais de te faire cela Mod.
NextGine : 3D games engine
Nombre de lignes actuel : 77683 |
|
| Mod |
Posté le 23 Août 2011 à 22:47
|
|
![]() Messages : 4954 GCPoints : 2100823 |
Ah, je suis effectivement bien curieux de voir l'éditeur de jeu, c'est un domaine qui m'intéresse. Sinon, fichier .lib, ça me convient parfaitement ^^. Jade utilise actuellement ce format de fichier, et non pas (plus depuis un moment) les DLL. |
|
| SEB |
Posté le 24 Août 2011 à 16:54
|
|
![]() Messages : 554 GCPoints : 103313 |
Ok je tenterais de te fournir une lib d'ici quelque temps. En attendant voila une nouvelle version de l'Editeur NextGine c'est une version un peu buggée et cela manque pas mal d’intuitivité mais j'ai essayé d'avancer au maximum dans l'optique d'etre capable de réaliser un premier jeu le plus vite possible. Je fourni un projet exemple avec qui crée une petite scène de bomberman toute basique avec des cubes. Il est également possible de publier le projet en executable final. voila je vous laisse vous amuser un peu le fichier est compressé en 7Z http://www.mediafire.com/?kzofa716joa8yyj J'attend toutes critique constructive !
NextGine : 3D games engine
Nombre de lignes actuel : 77683 |
|
| Mod |
Posté le 24 Août 2011 à 21:19
|
|
![]() Messages : 4954 GCPoints : 2100823 |
Alors malheureusement, n'ayant pas QT d'installé je ne peux pas lancer l'éditeur (erreur de dll qt4core manquante). Je suis en train de télécharger ça, mais l'information pourra servir pour plus tard. J'ai du coup exploré un peu les fichiers et lancé l'exe Bomb03, qui affiche la map bien typée Bomberman mais rien d'autre (normal ou non ?). La console boucle sur ceci : Code : Update the dynamic element by time Updating a dynamic element This element is visible Et parmi les logs générés (jolie mise en forme pour la version HTML d'ailleurs :p) se trouve ceci : Code : INFO - CreateScriptLibrary.cpp => nxtMessage : Init INFO - DefaultFramework.cpp => init : Parametre de rendu normaux INFO - DefaultFramework.cpp => loadingCallback : Ouverture du fichier de scene INFO - DefaultFramework.cpp => loadingCallback : Fichier xml bien lu INFO - CreateScriptLibrary.cpp => nxtMessage : Light ok WARN - TBNComputer.cpp => treat : Computing TBN for quads mesh WARN - CubeSceneNode.cpp => CubeSceneNode : Tangent binormal after treatment is ok INFO - CreateScriptLibrary.cpp => nxtMessage : Materiau n'existe pas deja INFO - CreateScriptLibrary.cpp => nxtMessage : Materiau n'existe pas deja INFO - CreateScriptLibrary.cpp => nxtMessage : Materiau n'existe pas deja INFO - CreateScriptLibrary.cpp => nxtMessage : Update Voilou, je dis quoi dès que j'aurais pu tester l'éditeur. |
|
| SEB |
Posté le 24 Août 2011 à 22:01
|
|
![]() Messages : 554 GCPoints : 103313 |
Oui en fait tout ce que tu me rapporte est un comportement normal. Le Bomb03 est un export du projet qui a été créé via l'éditeur. Donc oui son comportement est actuellement uniquement de créer et afficher la map. Oui j'aurais du mettre Qt avec désolé :/ Et le log warning défois je l'utilise mal... XD c'est pour mieux le repérer dans le tas des logs. Donc aparemment aucun probleme ^^ !
NextGine : 3D games engine
Nombre de lignes actuel : 77683 |
|
| SEB |
Posté le 09 Sep 2011 à 11:52
|
|
![]() Messages : 554 GCPoints : 103313 |
Hello hello, Je profite du fait qu'aujourd'hui je n'ai accès à aucun logiciel de dev ou autre pour vous annoncer que NextGine est (une nouvelle fois c'est peut-etre un peu mon défaut... nous verrons bien) en train de se payer une refonte. Ce qui concrètement donne lieu à ce qu'on pourrait appeler un début de NextGine 2 l'historique de la vie de ce moteur étant la suivante :
DONC : Spoiler - Cliquez pour afficher Septembre 2011 => NextGine 2 est en train de montrer le bout de son nez. Tout à été repris de quasi 0. Et notamment la gestion de la mémoire qui malgré quelques allocateurs et progrès dans NextGine possédait une syntaxe complètement folle, de même pour la gestion des chaines de caractère et des logs. Ainsi qu'une nouvelle conception toute neuve quand à la gestion des ressources graphiques et des types de nodes du graphe de scène. L'orientation multi-plateforme à également été reprise à 100% et elle vise cette fois à être à 100% portable (dans son développement actuel elle est validée sur Windows sup à XP, Linux (Ubuntu 10.xxx Fedora 15 (si je dis pas de bétises)), MacOsX (intel), Et incessament sous peu elle sera validée sous Android et iOs. Au niveau de l'organisation de base elle conserve quand même un découpage relativement similaire :
Des que le moteur graphique sera disponible j'essaierais de voir avec toi Mod comment te fournir une lib avec des fonctions graphiques de base pour Jade. Ca serait sympa que nous nous mettions d'accord sur les fonctions qui pourraient être nécessaire à une démo de base. Doit il y avoir une gestion 'un peu avancée' du genre Code : C NextGineOpen() NextGineCreateGraphics(1024,768,true) // true pour fullscreen NextGineCreateCamera(position, near, far, etc...) NextGineLoadModel("model.obj") NextGineClose() Ou doit on rester dans du simplissime à la DarkBasic (pas de gestion de la lib, la fenetre s'ouvre seule... et on a juste un truc genre) Code : C idModel = LoadModel("model.obj") et les configurations de caméra, fenêtres sont 'par default'
Dernière édition le 09 Sep 2011 à 20:01
NextGine : 3D games engine
Nombre de lignes actuel : 77683 |
|
| Mod |
Posté le 11 Sep 2011 à 11:20
|
|
![]() Messages : 4954 GCPoints : 2100823 |
Ah, des nouvelles :) De mon côté, il y a trois possibilités : - devoir écrire tout le code d'initialisation à la main, - écrire ce code dans le wrapper du .lib, code qui sera exécuté au chargement de l'appli, et donc invisible pour l'utilisateur - écrire dans les .lib un main, WinMain, etc, contenant le code d'initialisation, et appeler à l'intérieur une fonction avec un nom donné. Côté Jade, le compilateur peut remplacer l'entry point par ce nom. C'est ainsi que fonctionne le wrapper DarkGDK, d'ailleurs. Et du coup ça me faisait qu'il faudrait que je retente le téléchargement de QT, qui était down précédemment. |
|
| SEB |
Posté le 11 Sep 2011 à 14:33
|
|
![]() Messages : 554 GCPoints : 103313 |
Oui tout dépend ce ce qu'on souhaite faire. Pour le moment tu peux regarder l'éditeur mais il ne sera pas poursuivi 'tel que' je pense le revoir aussi un petit peu des que le moteur aura ré-atteind le même niveau que le précédent. Il y a les deux optiques effectivement soit jade est 'intégré au moteur comme une sorte de langage de script compilé' donc c'est le moteur qui se lance puis utilise Jade, soit Jade est le langage.. et on peut lui accrocher la lib NextGine. Pour moi les deux approches sont tentantes et tout autant faisables. Donc après ce qui est important c'est de savoir ce que tu souhaite pour Jade. Ensuite il faudra définir plus concrètement l'ensemble des fonctions nécessaires et jusqu'à quel niveau d'accès on ouvre les choses.
NextGine : 3D games engine
Nombre de lignes actuel : 77683 |
|
Page précédente

