Je sais que c'est lié à la conception de jeu, mais j'ai lu la FAQ de StackOverflow et il énonce des questions d'algorithme de logiciel peuvent être posées ici. Si cela est mieux dans la conception du jeu alors j'espère que quelqu'un peut m'aider à le déplacer, merci!Quels sont les problèmes potentiels avec cet algorithme de génération procédurale multithread?
Je suis en train de concevoir un générateur de donjon procédural multi-thread. Cependant, je me demande quels types de problèmes je vais probablement rencontrer ... Je n'ai pas été en mesure de trouver de nombreux algorithmes qui montraient clairement des multi-threads.
J'ai trois objets distincts qui doivent être créés. Un «Monde» qui abrite plusieurs «Chambres» et chaque pièce abritera des «Objets» potentiels.
L'algorithme actuel fonctionne comme ceci:
Step 1: Generate World
Step 2: Generate Rooms and Objects concurrently
Les maisons du monde une liste de chambre, et une « liste des objets disponibles. » La méthode de création de pièce génère des pièces et les ajoute à la liste des pièces du monde .-- La procédure de création d'objet ne communique en aucune façon avec la procédure de pièce. Au lieu de cela, la procédure de création d'objets sélectionne des pièces aléatoires dans la liste des pièces du monde et génère des objets aléatoires dans la pièce.
Le seul problème que je vois avec ceci est si la procédure de création d'objet finit prématurément. En d'autres termes, seules certaines des pièces de la liste de pièces contiennent des objets créés car la procédure de création de pièce s'est terminée plus tard que la procédure de création d'objet.
Y a-t-il plus de problèmes, et quelqu'un a-t-il des conseils ou de l'expérience avec le développement de tels algorithmes?
C'est aussi une approche intéressante (bien que plus compliquée que mon approche initiale). J'espérais éviter une grande partie de cette complexité en générant des pièces une à la fois et en faisant les objets simultanément le long des pièces. Cependant, comme vous l'avez dit, mon approche peut ne pas fournir beaucoup en gardant les pièces et les objets ensemble. Je suppose que la création de l'objet est légère par rapport aux pièces elles-mêmes. –
Vous pouvez également faire en sorte que la procédure de génération de pièce appelle la procédure de génération d'objet pour cette pièce uniquement. –
J'aime l'idée de faire les pièces simultanément et d'appeler la procédure de création d'objet une fois par pièce. Je pense que le gain sera élevé et la complexité est plus facile à gérer que de faire des chambres et des objets simultanément. –