Minecraft!
-
@Artblink: ch’é pô! google?
Sinon moi je craft (tu crafts, il craft, nous craftons, vous craftez, ils craftent…)
http://yellowblue.free.fr/yiki/lib/exe/fetch.php/en:dev:craft:craft_wall.png
Le créateur de Minecraft à repris l’idée des Tags, comme dans l’AmigaOS:
http://web.archive.org/web/20110723210920/http://www.minecraft.net/docs/NBT.txt
Je viens de mettre le moteur de rendu dans son propre thread, ainsi les “ticks” jeu (donc le cycle “vie” des entitées, mouvement, etc…) ne tourne plus à la vitesse du rendu, si ce dernier prend trop de temps votre personnage ne va pas lui non plus “ralentir”.
Avec cette implémentation j’obtiens dans les 70fps sur ma carte de démo (celle visualisable sur mon wiki.)
je suis vraiment nul, je trouve pas le moyen de faire marcher ensemble et en 3d, le deplacement du personnage, les collisions et le fait de le faire monter! rien ne va…
[edit] d’ailleurs spécial dédicace à MrBio:
http://www.youtube.com/watch?v=-kmKf1tlVWs&feature=related
(enfants ne regardez pas !)
Voilà comment implémenter un fog ; le mieux c’est un fog linear qui commence juste avant la fin des cubes
switch (FogMode)
{
case LINEAR:
d = 1.0F / (FogZmax – FogZmin);
f= (FogZmax – z) * d;
break;
case EXP:
d = -FogDensity;
f= FEXP( d * z);
break;
case EXP2:
d = -(FogDensity*FogDensity);
f= FEXP( d * z*z );
break;
default:
f=0.0;
break;
}
f=CLAMP(f,0.0F,1.0F);
alphac=f;
alphaf=1.0-f; /* alpha for fog */
Color.r=FogColor.r*alphaf + Color.r*alphac;
Color.g=FogColor.g*alphaf + Color.g*alphac;
Color.b=FogColor.b*alphaf + Color.b*alphac;
Color.a=Color.a;
@artblink
>je fais tous avec des carré OU des triangles.
Le mieux c’est d’utiliser que des triangles ainsi si tu utilise (par la suite..) Warp3D tu pourra tracer tes objets en une seule passe avec W3D_DrawArrays() ou W3D_DrawElements()
>c’était quoi déjà le format d’objet 3d lisible facilement
Tu peut utiliser depuis Blender /exporter/wawefront format(.obj)
Tu décoche tout les parametres sauf
Selection Only + triangulate + keep vert order
–> Exporter
tu obtiens ça pour un cube
# Blender3D v249 OBJ File:
v -3.329788 3.479787 -1.000000
v -3.329788 1.479787 -1.000000
v -5.329788 1.479788 -1.000000
v -5.329787 3.479788 -1.000000
v -3.329787 3.479787 1.000000
v -3.329788 1.479787 1.000000
v -5.329788 1.479788 1.000000
v -5.329788 3.479787 1.000000
usemtl (null)
s off
f 5 1 4
f 5 4 8
f 3 7 8
f 3 8 4
f 2 6 3
f 6 7 3
f 1 5 2
f 5 6 2
f 5 8 6
f 8 7 6
f 1 2 3
f 1 3 4
===> v = vertices = points x y z
===> faces = triangles
Ainsi premier triangle est fait des points 1, 4 et 5
(attention premier point = 1 pas 0)
http://www.royriggs.com/obj.html
Alain Thellier
@thellier: t’aurais pas plutôt la routine de collision en 3d sous la main?
pour le fog c’set déjà en préparation, car je suis aussi sur la routine de propagation de la lumière à travers les cubes.
Enfin le truc (et là je pense que crisot est en train d’y refléchir aussi), c’est qu’autant la lumière ne change pas très souvent (on peux très bien la faire varier qu’une fois toutes les minutes) pour simuler les phases jours/nuits.
autant le fog change à tous déplacements du joueur…
recalculer pour chaque cube sa couleur, limite à chaque frame…. euh non pas possible!
faut trouver un truc.
plop,
petite question, pourquoi ne pas tenter de porter la version opensource de minecraft ? elle m’avait l’air pas mal complète non ?
gouky
Utilise la PrimaryColor et ajoute y juste le fog comme j’ai écris
Le fog est une fonction de Z ==> tu peut précalculer des valeurs de fogs selon Z dans un tableau genre fogs[1000]
fog=fogs[(int)(z*1000.0)]
Je comprends pas le problème d’éclairage c’est que des cubes, non ? alors ils sont tous éclairés pareil
ou alors c’est une lampe locale ?
Sur la collision je connais pas ton problème donc je peut rien faire…..
Alain
@Alain: Je t’aime
Je n’utiliserais pas warp3D, j’ai juste envie d’améliorer ma technique en 3D au cas ou, je sais affiché des objet 3D avec hollywood grâce déjà à toi, maintenant j’vais essayé de sortir un truc mieux chiader que mon moteur raycast (que jali avait déjà fais et qui explosé de plus mon moteur à 2 balles), mais j’étais content, j’arriver à avancer dans des couloirs . sa fais plaise de réussir à faire quelque chose.
Donc je retourne sur mon faux moteur pour essayer de faire un vrai monde en 3D avec mon ti hollywood.
J’voudrai bien essayé le C… mais codebench… putain, j’arrive pas a le configurer :'(
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Minecraft!