Il y a quelques problèmes que j'ai rencontrés dans mon jeu basé sur le bruit Perlin. Jetez un œil à la capture d'écran ci-dessous.
Les zones blanches que vous voyez sont des murs et les zones noires sont accessibles à pied. Le triangle au milieu est le joueur.
J'ai implémenté la physique dans ce jeu en la dessinant sur une texture (pixels blancs ou noirs), puis en obtenant cela du CPU.
Cependant, je suis maintenant face à un problème différent. Je veux que des unités (ou rampantes, peu importe comment vous les appelez) apparaissent constamment, au bord de l'écran. Le point ici est que dans le jeu final, il y aura un "brouillard de guerre" qui ne permettra pas au joueur de voir aussi loin de toute façon.
J'ai pensé que je pouvais simplement scanner les pixels au bord de l'écran et voir si leur texture physique est noire, puis faire apparaître des trucs au hasard là-bas. Cependant, si vous jetez un deuxième coup d'œil à la capture d'écran, il y a (dans le coin supérieur gauche) un exemple où je ne voudrais pas que les creeps apparaissent (car ils ne pourraient pas atteindre le joueur à partir de là) .
Est-il possible que le GPU détermine ces points d'apparition pour moi, ou d'une manière différente? J'ai pensé à faire des vecteurs entre le point proposé au bord de l'écran et le lecteur, puis à le suivre tous les 10 voxels, et à voir si un mur entre en collision, avant de faire naître une unité là-bas.
Cependant, la solution proposée ci-dessus peut être trop gourmande en ressources processeur.
Des suggestions à ce sujet?
Remarque 1 Pour les unités générées, je ne veux utiliser aucune forme de recherche de chemin pour éviter les collisions avec les murs lorsque ces unités se dirigent vers le joueur. Par conséquent, les unités doivent apparaître au bord de l'écran, à un endroit où marcher en ligne droite vers le joueur ne heurterait aucun mur.