Comment JEV choisit Legal Actions dans Game AI

Apprenez à concevoir un espace d'action sécurisé pour JEV : générez Legal Actions dans le code du jeu, laissez JEV les choisir ou Score, puis revalidez avant exécution.

Seele Editorial TeamUpdated 21 septembre 2026
Game AI agent evaluating legal action cards through a validation gate.

Dans une intégration fiable de l'IA de jeu, JEV ne devrait pas inventer de commandes arbitraires. Le jeu génère d'abord Legal Actions : Choice possibles selon les règles, la perception, les ressources et les contraintes d'autorité actuelles. JEV peut choisir ou Score ces candidats ; l'exécuteur testamentaire les revérifie avant de changer le monde.

Qu'est-ce qu'une action en justice ?

Une action en justice est une commande significative que l'agent actuel est autorisé à tenter. Il a un nom stable, des paramètres explicites, des conditions préalables et un propriétaire d'exécution. Les exemples incluent attack(targetId), takeCover(coverId), heal(allyId), et retreat(routeId).

Pourquoi pas des actions de forme libre ?

La génération de forme libre rend la validation, les tests et l'équilibrage plus difficiles. Un modèle peut renvoyer une cible qui n'existe plus, un itinéraire inaccessible ou un verbe non implémenté. Un ensemble d'actions fermé transforme l'invention en sélection : les concepteurs inspectent les candidats, le contrôle qualité les rejoue et l'exécuteur rejette tout ce qui est en dehors du contrat.

Générer des candidats dans le code du jeu

if (canSeeTarget && ammo > 0) add({ name: 'attack', targetId }); if (safeCover) add({ name: 'takeCover', coverId }); if (allyNeedsHelp) add({ name: 'assist', allyId }); if (empty) add({ name: 'holdPosition' });

Le constructeur utilise l'état d'autorité et la perception de l'agent. La liste des candidats reste un instantané et ne remplace pas la validation finale.

Choice, Score et portes

Utilisez Choice lorsqu'un candidat doit être sélectionné, Score lorsque des cibles ou des itinéraires doivent être classés, et un jugement limité par oui ou par non comme porte, par exemple s'il faut abandonner un objectif. Pour les grands espaces, limitez d'abord les candidats et choisissez ensuite.

Revalider avant exécution

Lorsque la réponse arrive, reconstruisez ou revérifiez l'ensemble d'actions actuel. Vérifiez le nom, les paramètres, la version de l'état, l'existence de la cible, les ressources et l'autorité. Si un candidat a disparu, supprimez la réponse et utilisez un fallback. Ne forcez jamais une ancienne décision à devenir un nouvel état mondial.

const current = buildLegalActions(world, npc); const selected = current.find(action => sameAction(action, decision)); if (!selected) return fallback(); return execute(selected);

Quelle doit être la taille de l'espace d'action ?

Commencez avec quelques options qui représentent de véritables compromis. Exposer chaque option de mouvement oblige la couche de décision à résoudre ensemble la navigation et les tactiques. Pour une escouade NPC, défendre, se mettre à couvert, assister, attaquer et battre en retraite peut suffire ; la navigation et les capacités gèrent les détails de bas niveau.

Actions obsolètes et fallback

Les cibles meurent, les temps de recharge commencent, les routes sont bloquées et la perception change. Considérez l'obsolescence comme normale dans un jeu en temps réel. Jetez le résultat, reconstruisez l’état et poursuivez une politique déterministe. Pour l’implémentation de API, lisez JEV API utilisation. Pour l'architecture NPC, voir JEV NPC.

Un schéma d'action utile

Représentez chaque action sous forme de données avec un identifiant, une intention, des paramètres, des conditions préalables, une durée estimée, un coût en ressources et un exécuteur. L'ID doit être stable pour l'instantané actuel, tandis que les références de cible et d'emplacement doivent être explicites. Cela donne aux concepteurs et au contrôle qualité un vocabulaire commun pour discuter du comportement.

{ id: 'cover-wall-a', intent: 'takeCover', target: { coverId: 'wall-a' }, cost: { timeMs: 900 }, preconditions: ['reachable', 'notOccupied'] }

Taillez avant de classer

Les contraintes strictes appartiennent avant l'évaluation du modèle. Supprimez les actions qui enfreignent les règles de portée, de temps de recharge, de propriété, de visibilité, de navigation ou multijoueur. Ce n'est qu'alors que JEV comparera des compromis plus doux tels que la sécurité, la pression objective, la conservation des ressources et la coordination des équipes. Cela réduit le bruit et rend le résultat plus facile à expliquer.

Lorsque l'espace d'action est grand

Utilisez une conception en deux étapes : d'abord Score ou filtrez les candidats selon une petite frontière, puis choisissez une action. Par exemple, le code du jeu peut générer vingt points de couverture visibles, JEV peut Score leur valeur tactique, et une politique déterministe peut conserver les trois meilleurs avant un Choice final. La navigation possède toujours la validité du chemin.

La conception de l'espace d'action est l'équilibre du jeu

L'ajout d'une action modifie l'espace stratégique du NPC. L'ajout d'une retraite peut permettre à un garde de survivre plus longtemps ; l'ajout d'une assistance peut améliorer la cohésion de l'équipe mais retarder l'objectif. Modifiez le vocabulaire de l'action, rejouez les rencontres représentatives et demandez aux concepteurs de vérifier non seulement si une action est légale, mais également si elle crée le compromis souhaité.

Tests contractuels

  • Chaque candidat a un gestionnaire.
  • Chaque gestionnaire vérifie les conditions préalables actuelles encore une fois.
  • Les ID d'action inconnus échouent.
  • Les types de paramètres et la propriété de la cible sont validé.
  • Les candidats périmés sont rejetés lors des tests en rediffusion et en direct.
  • Le fallback reste légal lorsque la liste des candidats est vide.