Minecraft!
-
Ca commence à prendre joliment fort !
Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !
Chouette boulot
bravo
@artblink:
>pourquoi es-tu passé par des hexagone pour ta map, les carrés ou les triangles, c’est pas plus rapide ?
C’est pas moi qui ait choisi le jeu Tales of Tamar existait DEJA avec des hexagones (conçu ainsi par Martin Wolf) alors je me suis cassé la tête à gérer une carte d’hexagones.
Après pour l’affichage que ce soit des hexagones ou autre chose ça change pas grand chose
En fait je procédais ainsi :
Je travaille avec les centres des hexagones
Je prend un carré (de centres) d’hexagones autour de ma position (genre 1000 hexs)
Je transforme/projete ces centres (1000 points xyz) dans la vue écran
Je teste visible ou pas (cad dans écran)
A ces hex visibles je rajoute tout ceux qui sont « à coté » d’un visible (hex dont on voit qu’un coté car leur centre est hors écran)
Je trace les hexs visibles
Voilà
http://www.youtube.com/watch?v=eRg6Hrh1Z-Q
Alain Thellier
En gros tu fais une table pour une map (comme en 2d)?
sauf qu’au final c’est des tuiles en 3D?
Genre, je fais
Array1={0,0,0,0,0,0,0,0,0,0,0,0}
Array2={0,0,1,2,2,3,0,0,0,0,0,0}
Array3={0,0,0,0,0,0,0,0,1,2,2,1}
Array4={0,0,0,0,0,0,0,0,0,0,0,0}
Array5={0,0,0,0,0,0,0,0,0,0,0,0}
Array6={0,0,0,0,0,0,0,0,0,0,0,0}
Les 6 tableaux me donne la dimension de la map en partant du principe que le chiffre va de 0 à 10 (hauteur du terrain Axe Y)
Ensuite tu dis qu’un chiffres=32×32 pixel (par exemple) et tu joue sur les axes pour visualiser la map et tu scroll comme un scroll 2d en modifiant X et Z (pour un jeu genre zeewolf)
Par tableau (arrayNBRE) tu à 12 carré de 32 pixel
C’est comme sa qu’on fait une map 3D?
@Artblink:
Non pas tout a fait car la carte de Tamar était plate (comme un jeu d’échec) donc y avait pas besoin de Y (altitude).
donc en fait le joueur se déplacait en x (cad à droite/gauche) ou en z (cad avant/arriere)
donc en fait dans le tableau y avait pas le Y mais la « tuile »(numero d’hexagone) à afficher
cela faisais plutot un truc du genre
tableau[100][200]{3,2,4,6,8,….}
avec 100 et 200 = haut et large de la map
avec les valeurs du tableau comme 3,2,4 etc… etant des modeles d’hexagone à afficher
genre numerohex=map[x][z]
apres il faut une structure hexagone3D qui definisse tout l’objet à afficher (points,faces,texture à utiliser) autant que de modeles d’hexagones
genre structure hexagone3D hexmodels[256]
for(x=0;x<100;x++)
{
for(z=0;z<200;z++)
{
numerohex=map[x][z]
hexcourant=hexmodels[numerohex];
tracer_en_3D(hexcourant);
}
}
Je simplifie mais l’idée est là
Alain
Pour les puristes:
Il ya 54 modeles d’hexagones (en 4 saisons)
La carte du monde était en fait faite de 160*160 petites cartes (fichiers) de 80*80 hexagones
Une grille de 32*28 (=896) hexagones est lue dans ces cartes (ceux autour du joueur )
Cette grille contient aussi les coordonnées x y z où poser (afficher) les hexagones (y=0 pas d’altitude)
(equivalent du centre des cases d’un jeu d’échec là où on pose les pieces)
Ces coordonnées xyz ne sont pas régénérées à chaque fois mais prédéfinies (la grille change pas de forme) et juste décalées à la position x z du joueur
Ces 896 xyz de la grille sont transformés par la transformation mathematique courante (rotation,etc..) et la transformation perspective en coordonnées écrans
Puis ces xyz sont testés si visible comme écris précédemment
(genre si (0
@alain: lol on est complétement hors sujet
Remarque sa peut aider d’autres personnes, en tous cas, j’aime bien lire se genre de poste car j’apprend plein de truc.
Par contre, c’était quoi déjà le format d’objet 3d lisible facilement avec un éditeur , tu sais ton vaisseau et la vache, tu les avait fait sur quel logiciel 3D, sa m’intéresserai de savoir car je viens de tester un ti monde en 3D et sa rame pas trop (bon sa reste du hollywood quand même). Par contre, une question peut être un peux con, si je fais un terrain à base de carré, est-ce que je peut fair des objet à base de triangle? ou je dois respecter un format, en gros, je fais tous avec des carré OU des triangles.
Sinon, cool le moteur sur morphos, mais j’pige pas, tu programme avec python?!?
@Artblink: oui, le moteur de rendu est uniquement en C. et tout le « game play », l’interface systeme, l’intelligence, … en python avec pygame.
Bon sinon j’ai fini le mode « sandbox » (enfin presque):
– j’affiche la carte avec gestion des blocs transparents (genre les feuilles des arbres).
– on peut se balader dans le monde, en mode « marche », la gestion de la grimpe est faite (grimpe si 1 bloc de marche avec 2 case vides au dessus).
– on peut ajouter des blocs.
Il me reste donc:
– charger/sauver une map (format?)
– retirer des bloc (en cours de codage).
Et la phase 1 est finie.
Phase2:
– rajouter des éléments « non-statiques ».
– début d’une UI.
– leur coller une pseudo IA aux vivants.
– implémenter un système de création de nouveaux blocs.
Phase 3:
– Rajout du mode jour/nuit.
– gestion de blocs « liquides » (eau, lave).
– des monstres? donc faut des points de vie à mes entitées….
Phase 4:
– y a une phase 4? ah si… client/serveur?
Et évidement debug debug debug pendant toutes les phases
[edit] ah j’ai oublié un truc important: refaire tous les textures car pour l’instant je peux rien distribuer avec les originales.
Voilà deux nouveaux grab sur mon wiki (à la fin) pour montrer l’état actuel.
Cela s’annonce de mieux en mieux Yombgui, merci.
Le format de sauvegarde peut-il être compatible avec celui de Minecraft ? S’il y en a un (je n’ai vu que la version sur mon téléphone pour le moment)…
Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !
Bon à force de voir ce topic remonter, je vais devoir m’y coller… Par contre je vais pas prendre les choses dans le meme ordre que Yomgui. Je m’y collerais une fois que j’aurais trouvé le moyen d’avoir une distance de vision digne de Minecraft original sans que ça rame de partout…
Grosse méditation en cours
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Minecraft!