#0 

05-06-2016 20:55:36

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 427

Bonjour, après avoir fait plein de test et essayé de faire un RPG avec Irrlicht, je me suis aperçu que coder à l'arrache n'était vraiment pas une solution...

J'ai donc fait appris à utiliser Qt en créant de petits logiciels pour mon usage personnel et j'ai des test d'intégration d'Irrlicht dans Qt. Et me voici donc parti pour réaliser un éditeur de RPG en 3D.

Afin de rester simple (dans mes capacités quoi...), j'ai décidé de partir sur le principe de RPG Maker XP (et VX) et de l'adapter à la 3D.

Voici le principe :
1/ On a une scene, divisée en Map de 32x32 tiles.
2/ Les tiles sont des éléments 3D formant le terrain (le mesh de la Map). Lorsque l'on écrit un tile, on créé une forme 3D et on intègre le tile (dessin 2D) dans la texture. On a donc un terrain modulaire dont le maillage est optimisé à chaque modification afin de limiter le nombre de triangles.
3/ Une Map peut contenir des éléments statiques. Chaque élément statique possède un shader qui est capable d'instancier le mesh. Il suffit alors de lui passer en argument des tableaux d'instances afin de multiplier grâce à la carte graphique les éléments.


Voici des photos du logiciel ainsi que du projet que je réalise avec:

Galerie de photos

Je ferai évoluer le post en fonction de mon avancement. Je ferai certainement une vidéo pour montrer l'utilisation du logiciel.

Prochains objectif:
- intégration de la passabilité des tiles avec génération automatique des triangles sélectors (semi-automatique avec optimisations);
- intégration des "sauts" lorsque l'on arrive sur les petits murets de terre (les joueur sur pokemon comprendront wink.

Dernière modification par johnplayer (05-06-2016 20:57:23)


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - SLI 2 x GTX780OC (2D surround en 5760 x 1080) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#1 

06-06-2016 11:33:46

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 898
Site web

pas mal du tout, ça semble bien avancer ton tool
je verais bien zelda ou ff tactics comme ça !

il y a le support des scripts ?
le chargement des interieur ?
animations des textures (eau) ?
frustumculling des tiles ?
voir chargement/dechargement + cache en dynamique ?

il manque peut-être un lightmapping tongue

Hors ligne


#2 

08-06-2016 21:48:50

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 427

Pour l'instant, il n'y a que les maps (avec un texturing sans gestion de lumière) ainsi que l'ajout d'éléments statiques (avec un texturing simple + instancing par geometry shader). Je ferai évolué les shaders plus tard, je galère trop là-dessus. Pour l'eau, j'y ai pensé mais je ne sais pas comment gérer l'animation avec les différents type de tiles sans faire une usine à gaz (reste aussi à voir l'impact sur les performances).

Je ne prévoie pas de frustum culling des tiles, j'ai opté pour une fusion des tiles de la map avec optimisation du maillage, du coup, ce sera un frustum culling de map (node) avec une distance limite de visibilité (réglable par le joueur).

J'ai passé énormément de temps à trouver une architecture dans mon code afin de ne pas "mélanger" Qt et Irrlicht. De plus, il fallait que l'ajout de fonctionnalité se fasse le plus simplement possible, du coup, j'ai structuré mon code en conséquence et pour un amateur comme moi, c'est pas chose aisée.

Pour en revenir au fonctionnalités, là faut que je mette en place un système de gestion de ressources dans l'éditeur. Je modifie le fichiers xml à la main pour la liste des objets statiques mais il va falloir que je structure ça pour limiter au maximum de mettre des infos "système" dans le fichier de projet.

Pour les scripts, ils seront accessibles pour personnaliser les events. Les events seront des box placées sur la map avec des déclencheurs divers et éxécutant une "action type" ou un script. Les PNJ seront aussi considérés comme des events.

Les intérieurs sont bien évidemment prévus mais pour l'instant je me concentre sur l'extérieur. J'ai des idées pour l'implémentation mais c'est pas assez mûr dans ma tête. De plus, il me faut implémenter d'autres fonctions avant pour avoir toutes les infos nécessaires à la réalisation d'un intérieur.

Le "chargement/dechargement + cache en dynamique" c'est pas d'actualité, ce sera dans le moteur de jeu et à l'heure actuelle, ce n'est pas dans mes cordes. Ceci dit, l'idée reste dans le topic et je me pencherai dessus le moment venu. Je suis toujours preneur d'idées wink.

Dans tout les cas, je noterai ma progression qui est plutot lente (je suis dessus de puis janvier) et entre le boulot, les soirées et le fait que je vais faire construire, je n'ai plus autant de temps à consacrer à la prog. Mais fonctionnalités après fonctionnalités, ça donnera quelque chose de sympa.


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - SLI 2 x GTX780OC (2D surround en 5760 x 1080) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
Analysé par
872 membres
1422 sujets
11100 messages
Dernier membre inscrit: Glider
2 invités en ligne
Aucun membre connecté
RSS Feed