Page 2 sur 2

Re: Monde à la "Minecraft" v2

Publié : mar. 08/juil./2014 15:16
par kelebrindae
@G-Rom : Elle a l'air très bien, cette lib réseau! Je télécharge, pour plus tard.

J'ai mis à jour le ZIP avec une version un peu plus évoluée: les collisions sont gérées, on peut creuser, et choisir la "graine" de génération du monde. De plus, le monde est sauvegardé: si vous entrez la même graine la fois d'après, vous retrouvez le monde dans l'état où vous l'avez laissé. Je voulais ajouter la possibilité de construire, mais je n'ai pas encore eu le temps...

[EDIT]
J'oubliais: j'ai un petit souci avec la géométrie statique.
Quand on crée le groupe de géométrie statique, on doit indiquer sa taille. Mais curieusement, pour l'instant, je ne m'en étais pas préoccupé: j'avais mis 16x16x16 et ça marchait même si les coordonnées des vertex étaient en dehors de cette taille... :? Par exemple, pour le chunk de coordonnées [10,10,10], les vertex se situent entre [160,160,160] et [176,176,176] (les chunks font 16 de côté, par défaut); pourtant Ogre n'y voyait aucun inconvénient.
Mais quand on arrive à des chunks lointains, genre [2000,10,2000], Ogre plante en disant:

Code : Tout sélectionner

OGRE EXCEPTION(2:InvalidParametersException): Point out of bounds in StaticGeometry::getRegionIndexes at OgreStaticGeometry.cpp (line 215)
Bon, je peux comprendre: bien que l'entity mesure 16x16x16, elle est ajoutée dans le groupe aux coordonnées [2000x16,10x16,2000x16], donc, vu qu'on ne peut pas indiquer d'origine pour le groupe, entre le point [0,0,0] et le point le plus éloigné de l'entity, la taille du groupe de géométrie est bien plus grande que 16x16x16...
Ok, donc quand je crée le groupe de géométrie statique, j'indique comme taille les coordonnées "réelles" du vertex le plus éloigné.
Mais je rencontre alors un problème bizarre: quand je vais voir un chunk encore plus loin, genre [25000,10,25000], la géométrie statique se met à "tremblotter" comme si elle ne savait pas exactement où elle était :( (imprécision due à des valeurs élevées?).
Pour voir ça, à la ligne 1677, remplacez:

Code : Tout sélectionner

 player\xChunk = 2500: player\yChunk = 35: player\zChunk = 2500
par

Code : Tout sélectionner

 player\xChunk = 25000: player\yChunk = 35: player\zChunk = 25000
et entrez une "graine" encore inutilisée => en regardant autour de vous, vous devriez constater que les cubes ont la bougeotte...

Quelqu'un a une explication?

Re: Monde à la "Minecraft" v2

Publié : mer. 09/juil./2014 7:27
par comtois
Concernant la géométrie statique, je ne me suis pas trop plongé dedans, donc pour l'instant je ne peux pas te répondre.
J'ai vu qu'il existe des notions de 'régions', faudra que je regarde à l'occasion à quoi ça sert et comment les utiliser.

Re: Monde à la "Minecraft" v2

Publié : mer. 09/juil./2014 17:22
par kelebrindae
J'ai lu la doc d'Ogre dont tu as donné le lien. Pour "setOrigin", il est dit que il n'est généralement pas nécessaire de changer l'origine de la géométrie statique car le réglage par défaut permet de gérer un monde de 1024 x [taille de régions]. Or, la taille des régions (est-ce cela que l'on indique avec les paramètres de "BuildStaticGeometry"?) est fixée par défaut de 1000x1000x1000. Donc, on devrait pouvoir aller assez loin sans que ça plante, normalement, tant qu'on indique une taille de 1000x1000x1000 au moment du "Build"... (à vérifier)

Sinon, je crois que le "tremblement" constaté aux coordonnées élevées (ex: 25000) ne vient pas de la géométrie statique, finalement. En effet, j'ai remarqué que la "boîte de sélection" affichée pour savoir quel bloc on va miner tremblotait aussi lors des mouvements de caméra; Or, c'est une entity ordinaire (pas statique).
=> du coup, je soupçonne la caméra. Il faut que j'essaye avec un cas plus simple, en plaçant simplement des objets et la caméra à des coordonnées > 25000...

Enfin, une petite preview:
Image
La construction arrive... :wink:

Re: Monde à la "Minecraft" v2

Publié : mer. 09/juil./2014 17:46
par comtois
C'est beau :)

Pour info :
- l'origine est placée à la moitié des dimensions que tu indiques dans CreateStaticGeometry() , alors que par défaut c'est 0,0,0, faudrait peut-être laisser la valeur par défaut ? Et donner la possibilité de modifier l'origine si besoin ?
- la taille d'une région correspond effectivement aux paramètres largeur ,hauteur et profondeur de CreateStaticGeometry().

Re: Monde à la "Minecraft" v2

Publié : mer. 09/juil./2014 18:12
par kelebrindae
D'après la doc, Ogre conseille plutôt de ne pas y toucher (c'est-à-dire de la laisser à 0,0,0), mais là, je ne suis sûr de rien...

Sinon, j'ai mis en ligne le zip incluant la possibilité de construire (avec pas beaucoup de matériaux pour l'instant, mais c'est déjà ça):
http://keleb.free.fr/codecorner/downloa ... clone2.zip

Re: Monde à la "Minecraft" v2

Publié : jeu. 10/juil./2014 17:04
par kelebrindae
Allez, encore une petite mise à jour pour rajouter de l'herbe et des fleurs :mrgreen: (ce n'est pas encore très beau, mais le principe de base est là). Le zip a été mis à jour.
Par contre, j'ai été obligé de désactiver le mipmapping, car ça me causait des problème avec les textures transparentes: une bordure noire toute moche apparaissait et je ne suis pas arrivé à m'en défaire autrement...

[EDIT] J'ai pu remettre le filtering en "tweakant" un peu le shader; c'est quand même un peu plus joli comme ça.


Par contre, si vous aviez déjà commencé à modifier des mondes, ils ne seront plus compatibles avec cette version; Désolé... :(
(Supprimez les répertoires "SaveXXXXXX" pour vous en débarrasser).

Re: Monde à la "Minecraft" v2

Publié : ven. 11/juil./2014 8:15
par G-Rom
Ca commence a avoir de la gueule :D
Revois ton système de picking par contre, pas très efficace , et vire cette skybox ! :mrgreen:

Re: Monde à la "Minecraft" v2

Publié : ven. 11/juil./2014 9:07
par kelebrindae
G-Rom a écrit :Revois ton système de picking par contre, pas très efficace
Qu'est-ce que tu entends par "pas très efficace"? Peux-tu me décrire les problèmes que tu rencontres, stp?

Re: Monde à la "Minecraft" v2

Publié : ven. 11/juil./2014 11:51
par Fred
Toujours supers tes projets :)

Re: Monde à la "Minecraft" v2

Publié : ven. 11/juil./2014 14:23
par kelebrindae
Merci!

Encore une petite mise à jour: OpenGL est maintenant supporté, ce qui devrait permettre aux Linuxiens et aux Appleistes de faire tourner le programme. Comme je n'ai ni Mac, ni linuxBox, je serais d'ailleurs assez intéressé de savoir si ça marche... :P

Le shader OpenGL ne marche pas aussi bien que le DirectX (fait à l'arrache, j'arrangerai ça plus tard) et notamment je n'ai pas réussi à faire marcher le brouillard. Si quelqu'un l'a déjà fait, je suis preneur!

Re: Monde à la "Minecraft" v2

Publié : ven. 11/juil./2014 19:49
par G-Rom
kelebrindae a écrit :
G-Rom a écrit :Revois ton système de picking par contre, pas très efficace
Qu'est-ce que tu entends par "pas très efficace"? Peux-tu me décrire les problèmes que tu rencontres, stp?
Pour construire c'est la galère , au lieu d'afficher une boite affiche un plan semi transparent , c'est plus propre.
La distance de sélection est trop courte & il manque un curseur central ;)
Bon boulot tout de même , manque plus que la création du multi, bon courage :D