top of page

Chaque bloc est solide — sauf quand il ne l'est pas

Photo du rédacteur: Marcel Dütscher
Marcel Dütscher
22 juin
2 min de lecture

Notre mesher côté client a une règle d'acier : tout bloc qui n'est pas de l'air est affiché et possède une collision. Point final. Cette simplification rend le meshing rapide et le code simple — jusqu'au jour où arrive une fonctionnalité qui veut justement enfreindre cette règle.


Le portail énergétique. Pour nos barrières énergétiques, on voulait un portail : une membrane chatoyante que les joueurs et les PNJ amicaux peuvent simplement traverser, mais pas les animaux sauvages. Autrement dit, un bloc visible, mais qui ne fait pas office de mur pour tout le monde. Exactement ce que notre architecture ne prévoit pas.


La solution tient en deux moitiés. Côté client, le mesher a reçu sa première exception volontaire : le bloc du portail est affiché, mais exclu du mesh de collision — les joueurs passent simplement au travers. Côté serveur tourne la vraie logique : à chaque pas, les systèmes de déplacement des créatures vérifient si une barrière d'énergie se trouve sur le chemin. Les animaux sauvages et les ennemis font demi-tour, les compagnons et les joueurs passent. Cette vérification a dû être ajoutée aux trois systèmes de déplacement — animaux sauvages, compagnons, ennemis des planètes —, sinon un type de créature n'aurait pas « connu » le portail.


La note de bas de page honnête : les créatures volantes passent tranquillement au-dessus de la barrière. Ce n'est pas un bug, c'est une limite documentée — une barrière n'arrête tout simplement rien de ce qui vole. On préfère noter ce genre de lacunes volontaires plutôt que de les cacher.


Ce qu'on en retient : des règles d'architecture comme « tout ce qui n'est pas de l'air est solide » ont de la valeur parce qu'elles sont simples. Mais il faut savoir où vit l'unique exception — et pourquoi elle vit là.

Posts récents

Voir tout

Commentaires


Les commentaires sur ce post ne sont plus acceptés. Contactez le propriétaire pour plus d'informations.
bottom of page