Exploration Craft

a marqué ce sujet comme résolu.

Salut,

Bien que le développement du jeu soit terminé et travaillant déjà sur un autre projet, je continue de le maintenir avec des mises à jours mineures puisque de nombreuses personnes y jouent encore.

Cette mise à jour contient :

  • Ajout de nouveaux npc : mouton, vache, cochon, panda et cheval.
  • Possibilité de faire spawn des npc en créatif.
  • Monter à cheval.
  • Un nouveau mode de caméra : permettant de faire tourner la caméra autour du personnage.
  • Correction du bug des dommages infligés par la TNT.
  • Gros gain de performance : refonte du code sur le système de stockage des chunks maintenant référencés sur des std::unordered_map

Voila un gif pour illustrer certaines nouveautés :

Image utilisateur

Nouvelle mise à jour du jeu :

-De nouveau biomes/paysages

-ajout de coffre et système de stockage.

-Amélioration des performances : réduction du nombre de drawcall ( agrandissement de la taille des chunks )

-Possibilité de créer ses propre Skins :

Du coté technique de l'éditeur de personnage, l'enjeu était de récupérer les coordonnées UV suggéré par la position du curseur. J'ai donc essayé deux méthodes :

Pour la premiere méthode j'ai créé une deuxième texture de même résolution que la texture du personnage, sur laquelle j'assigne à chaque composantes Rouge et Vert de cette texture les coordonnées U et V de la texture en faisant à chaque points une interpolation entre les trois sommets du triangle. Ensuite en faisant un simple glReadPixels(souris.x, souris.y, …), j'obtient directement les coordonnées UV sur lequel pointe la souris.

Pour la deuxième méthode, je fais un lancé de rayon en parcourant l'ensemble des triangles à la recherche d'une éventuelle intersection. Je récupère le point d’intersection le plus proche de la caméra puis je calcule les coordonnées barycentrique de ce point d'intersection avec le triangle auquel il appartient. Et dernièrement je multiplie les coordonnées barycentrique avec les coordonnées UV des 3 sommets du triangle et j'obtient mon UV final.

Une fois les coordonnées UV obtenue, il ne me reste plus qu'à peindre la texture, la mettre à jour…

J'ai finalement choisi de garder la deuxième méthode, car elle est plus portable et plus harmonieuse à mon gout

Salut Manyrio, merci ! Ton projet est pas mal aussi :)

Le projet que je devais présenter (l'an dernier) portait juste sur l'étude du bruit, donc un peu moins de 500 ligne de code. C'est à partir de cette inspiration que m'est venue l'idée d'en faire un rendu 3D, puis essayer de faire un équivalent de minecraft afin de voir jusqu'où je pourrais aller. Aujourd'hui il y a plus de 80K ligne de code (toute plateforme confondue).

$ find ./jni/explorationcraft -name ".cpp" -o -name ".c" -o -name "*.h" -type f | xargs cat | wc -l

73551 lignes en C++

Portage du moteur vers Android : ouverture de contexte opengl + wrappers des inputs + certaines spécificités au système (SDK publicitaires, google analytic, in-app purchases, play game…)

$ find ./src/com/mine/explorationcraft -name "*.java" -type f | xargs cat | wc -l

7437 lignes en Java

Portage du moteur vers iOS : wrapper obj-c + autres SDK publicitaires, in-app…

$ find ./ios/Exploration-Craft -name ".h" -o -name ".m" -o -name "*.mm" -type f | xargs cat | wc -l

3880 lignes en Obj-C

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte