Demandez HN Où commencer à créer l'IA pour les jeux, Hacker Nouvelles
Création "AI # x2F; bots" pour les jeux est disponible en trois parties # x2F; arômes # x2F; divisions:
Tout d'abord, et les plus critiques pour la plupart des jeux, est l'IA comportementale de base. Cela inclut des choses comme pathfinding, la localisation des cibles, en attaquant, et par ailleurs faire une entité dans le jeu d'interagir avec l'environnement dans le jeu.
En troisième lieu, la création de bot (pour la version habituelle « hacker » # x2F, sens du terme, comme dans par exemple les robots utilisés par les joueurs AFK à la ferme) est significativement différent que de faire une IA « officielle » en tant que développeur ou d'écrire un remplaçant AI à l'aide les scripts disponibles dans certains jeux. Pour la plupart des jeux, les robots collecteurs impliquent diverses techniques de piratage pour récupérer des informations sur le monde du jeu (occasionall impliquant littéralement la reconnaissance de motif visuel, ce qui est un tout autre boule de fil (et type distinct de « AI ») vous ne # x27; t veulent mess avec tout de suite). Bots généralement aussi impliquer un contrôle indirect du caractère de jeu en utilisant un certain programme tiers aux touches « envoyer » au jeu en utilisant la fonctionnalité du système d'exploitation. Ceci est probablement pas ce que vous # x27; re intéresse, et vous # x27; d besoin d'apprendre au moins quelques notions de base des deux premiers à être en mesure de réaliser quoi que ce soit ici.
Une chose qui était assez populaire un certain temps est de plonger juste il y a dans un jeu comme Robocode [1] et de travailler votre chemin jusqu'à ce que vous pouvez coder un robot qui sur son propre rythme différents robots de qualité de la concurrence, sans intervention de l'utilisateur pour régler la adversaire # x27; les stratégies.
Construire hors de votre n ° 3) Un exemple de ce serait les programmes de bots faits pour Runescape. Les développeurs ont écrit une application qui siègerait au-dessus du client de jeu et ensuite utiliser la réflexion en Java pour voir ce que # x27, qui se passe dans le jeu: Divers objets créés qui sont maintenant à l'écran, la direction des joueurs, la grille de la carte, etc. .
Les développeurs de ce programme de bots seraient alors exposer leur propre API et un langage de script qui permettrait à d'autres développeurs d'interagir avec le jeu grâce à leur programme. Le pourrait alors écrire des scripts tels que: Allez à cet endroit via les coordonnées de carte, ramasser un objet, résoudre un casse-tête, lutter contre certains boss, manger quand dessous d'une certaine santé, etc.
Note: Je dirigeais une entreprise de VPS qui répondent spécifiquement à ceux qui étaient botting dans Runescape; ce qui leur a permis d'exécuter leurs robots collecteurs 24 # x2F; 7 sans utiliser leur propre matériel.
Droite. J'ai écrit un des premiers RuneScape 2 bots il y a environ 8 ans (exemple de script https: # x2F; # x2F; clbin.com # x2F; 71NIX).
Il # x27, vaut la peine de noter que ceux-ci étaient très faciles identifiables comme les robots collecteurs de comportement. Faire AI pour un jeu (qui semble en réalité humaine et est amusant d'interagir avec, passé juste cibler la sélection et pathfinding) est un autre (beaucoup plus difficile) ensemble de problèmes tout à fait.
merde Holey il # x27; de Regex :). Old ARGA dev ici :).
Apprendre l'algorithme A * pathfinding est un bon point de départ que ce qui est commun dans les jeux simples de tuiles. Ces deux liens devraient vous aider à démarrer:
I # x27; ll seconde cela. En outre, pour les jeux de société comme les échecs ou othello, vous devriez jeter un oeil à l'algorithme mini-max:
# X2F caveat; avertissement: Bien souvent, apprendre à traduire vos données de jeu dans un graphique A * -traversable est plus difficile que la mise en œuvre l'algorithme A * lui-même.
1. Prenez Unreal Engine [1]. Il # x27; s 20 $ par mois, mais vous pouvez annuler après le 1er mois si vous ne # x27; t veulent recevoir des mises à jour.
2. Télécharger le projet Unreal Tournament [2]
3. Examinez le code de bot et commencer à peaufiner
Unreal est un moteur de jeu de qualité industrielle qui est également tout à fait accessible. AI peut être scripté dans le Plan stratégique (un langage de script de flux de données visuelle) ou C ++.
Eh bien, j'aime l'idée, mais pourquoi faire toutes leurs pages de documentation créer un lien vers un Github 404: https: # x2F; # x2F; github.com # x2F; # x2F Epic Games, UnrealTournament.
Je prévois de commencer à chercher dans le moteur Unreal peu après je reçois l'expérience avec un moteur plus basique. Avez-vous trouvé un grand nombre de ressources disponibles sont en mesure de vous aider à démarrer bien? Ou est-il une grande courbe d'apprentissage? Mon expérience principale est par écrit des applications Rails, pierres précieuses Ruby, un couple de base et les applications Android, Devops de tout.
Il # x27; est assez lisse. Epic ont vraiment poli UX pour faire un logiciel complexe compréhensible et ramollir la barrière à l'entrée autant que possible. Il y a toutes sortes de tutoriels.
I # x27, d le dire # x27, plus facile à apprendre que l'unité à ce stade, mais plus difficile que les moteurs 2D comme GameMaker. Je pense une certaine expérience de base de faire des jeux 2D simples vous aideront beaucoup avant la transition vers la 3D.
AI programmeur ici. généralement « bots » ne sont que l'IA qui est destiné à prendre la place d'un joueur (généralement dans un contre écriture et non un cadre coopératif).
Si les robots collecteurs de quoi que ce soit sont plus difficiles à faire alors « normal » AI puisque leur valeur est mesurée par leur performance contre les humains. De plus, le moins vous trichez (parfaite connaissance des autres joueurs, but parfait, etc.) plus votre bot. Avoir un bot non-triche a battu un être humain est une réalisation majeure.
Les bots pour un jeu de stratégie comme StarCraft est fondamentalement différent du bot pour un FPS. Ils utilisent des techniques complètement différentes et # x27, est beaucoup plus difficile de tricher dans le jeu de stratégie (mais en ignorant le brouillard de guerre est le plus flagrants). Jeu de stratégie AI est plus proche d'échecs AI - beaucoup de recherche (Minimax et d'autres choses). Il # x27; s un champ entier sur lui-même et vous ne pouvez apprendre en étudiant l'IA pour ce type de jeu particulier.
bots FPS (comme counter strike) sont beaucoup plus près de jeu traditionnels (AI tireurs et autres). Livres sur « Game AI » sont un bon endroit pour commencer. Fondamentalement, les deux problèmes majeurs est l'endroit où dois-je aller (évaluer la couverture, l'analyse ligne de mire, l'estimation où les ennemis sont et essayer de choisir un bon endroit pour se tenir) et comment je y arriver (pathfinding et pathfollowing). Ce que vous faites quand vous y arrivez est généralement assez simple (tirer sur le gars approprié). Si vous avez un système de couverture vous devez être en mesure de leur dire comment utiliser la couverture et cela implique beaucoup d'animation (synchronisation mes animations et de la position jusqu'à la couverture dans le monde). Mais dans un FPS ce qui est généralement juste une question de accroupi ou non.
La grande différence pour les robots FPS (contre l'ennemi seul joueur AI) est que les robots doivent choisir entre des objectifs contradictoires (dois-je aller chercher des munitions, devrais-je aller chercher la santé, devrais-je attaquer l'ennemi). Si vous avez une hiérarchie stricte des comportements BOTS # x27 a gagné; t être compétitif (entrer dans les systèmes de logique floue, théorie de l'utilité et similaires - arbres comportement normal gagné # x27; t le couper).
> Avoir un bot non-triche a battu un être humain est une réalisation majeure.
(Pour certaines catégories de jeux!)
Je # x27; m presque tatillonne, mais il # x27; s important de comprendre la distinction où en essayant de construire AI « humaine comme » que les joueurs se sentent sont comme la vraie chose, vous voulez aussi d'imiter les lacunes humaines. Parfois, il pourrait ne pas tricher par les règles, mais toujours être évidemment en dehors du domaine des capacités humaines actuelles.
Le meilleur départ que j'ai jamais eu à l'intelligence artificielle était par UC Berkeley # x27, de parcours de CS188 [1]. Ce cours vous emmène à travers les fondements mêmes de l'intelligence artificielle, de la recherche à l'intention de la théorie des probabilités de base. Il # x27; s été imitée dans les universités à travers le monde avec ses conférences ouvertes, des diapositives, des devoirs et le code du projet.
Les projets sont la meilleure partie de ce cours. Vous commencez avec un agent PacMan d'ardoise vierge en essayant de ramasser des points à quelque chose capable de suivre - esquiver les fantômes sans même les voir (!). Il # x27, ce qui m'a incité à poursuivre la recherche AI 7 ans sur la route!
Salut, merci pour le grand lien!
En ce qui concerne l'IA (en général, non seulement pour les jeux) - AFAIK travail de nos jours le plus sérieux est fait dans la non-symbolique, les # x2F; direction stochastique (y compris tous les trucs Big Data et ML). Alors, que pensez-vous de l'IA pur symbolique? Y at-il des recherches # x2F, les progrès fait dans cette partie? Je sais que je # x27; m il trop simplifier, mais je pense que vous avez obtenu le point. )
Pour créer un bon (à savoir réellement utile) bot vous voulez commencer par passer beaucoup de temps dans tout ce jeu vous # x27; re de ciblage.
La plupart des bots ou des macros comme aides triviales, sont écrits par les joueurs qui ont passé beaucoup de temps dans un jeu et identifié les éléments les plus dignes d'automatisation. Le joueur # x27, de manque de connaissances techniques approfondies conduit alors à la masse des bots pourris là-bas.
Edit: il # x27; s également intéressant de noter que IA du jeu et les bots sont des problèmes très différents.
Google Fourmis [0] est un défi AI qui est fini, malheureusement, mais vous pouvez toujours courir à travers elle.
« L'AI défi consiste à créer l'intelligence artificielle, si vous êtes un programmeur débutant ou un expert. L'utilisation d'un des kits de démarrage facile à utiliser, vous allez créer un programme informatique (dans toutes les langues) qui contrôle une colonie de fourmis qui lutte contre d'autres colonies de domination « .
Voici quelques ressources sur la programmation AI
Je recommande vivement ce livre
Cela ne ressemble plaisir. Il y a beaucoup de concours de programmation en ligne qui fonctionnent de façon similaire à cela, et je recommanderaient à commencer par l'un d'entre eux.
I # x27, d aussi ajouter que, même si tout le monde en suggérant des ressources AI est utile, la meilleure chose à faire est de sauter juste et commencer à coder. L'un des problèmes avec notre système d'éducation formelle est qu'il finit souvent essayer de présenter des solutions aux problèmes avant que les étudiants comprennent vraiment les problèmes, ce qui chez les élèves qui apprennent une compréhension assez superficielle de la solution que le cerveau se termine naturellement de collecte des ordures. code juste des choses pendant quelques semaines. Vous devriez vous remarquez # x27; re sorte de frapper un mur autour de ce moment-là. Vous devriez remarquer que vous voyez des comportements à vos adversaires que vous ne savez pas comment mettre en œuvre. C'est le moment de commencer la fissuration dans les textes AI et l'apprentissage de ceux qui vous ont précédés, et tout aura tendance à donner un sens total de la raison pour laquelle vous # x27; d voulez le faire, au lieu d'être ces pensées abstraites flottant dans l'espace qui ont tendance à aller dans une oreille et sort par l'autre.
« Je # x27; d aussi ajouter que, même si tout le monde en suggérant des ressources AI est utile, la meilleure chose à faire est de sauter juste et commencer à coder. »
I # x27, d modifier ce peu: écrémé (une heure par chapitre quelque chose comme ça?) Un ou des livres plus complets (pour ce sujet, Russell et Norvig est bon) assez pour se faire une idée ce qui est connu, puis sauter et pirater sérieusement, puis interrompre votre hacking, le cas échéant en remontant pour étudier les choses particulièrement pertinentes que vous savez est déjà connu. Sauter en est bon et important, mais il a tendance à être beaucoup plus efficace lorsque vous avez une idée sur les grandes lignes de ce qui a déjà été élaboré pour vous.
Le temps que je havre de paix # x27; t été en mesure de suivre ce conseil --- notamment de ne pas avoir accès physique aux bibliothèques universitaires quand je tentais d'écrire un compilateur C pour un Z-80 comme un adolescent dans les années 1980, ayant par conséquent pas très moyen pratique pour se renseigner sur les travaux existants sur parseurs et des choses --- ont été mieux que rien, intéressant et éducatif, mais pas aussi efficace que faire des choses quand j'ai eu beaucoup de choses à étudier au besoin.
Ces quatre stratégies en combinaison, ainsi que certains comportements globaux des modes de pathfinding et de comportement, sont assez souvent pour vaincre un joueur pas au courant. (Recherche: "dossier Pac-Man")
Pour créer une IA compétitive, d'abord identifier la façon dont les humains jouent le jeu, identifier les archétypes stratégiques, modèle alors votre bot de poursuivre des objectifs archétypes. Puis, surtout, déterminer quand changer archétypes. Un premier porteur de ballon AI n'a pas de stratégie pour midgame ou fin de partie, alors peut-être que l'IA évolue en expansion agressive, ou un ambusher.
Bien sûr, il y a des jeux sans joueurs humains. Il # x27; s le « ciseaux roche papier concours de programmation » (rpscontest.com), où les joueurs présentent des algorithmes, qui se battent alors l'autre à la mort pour les points de rang. Il est intéressant de voir de nouvelles stratégies montent et descendent, y compris ceux qui gagnent par « tricherie », comme en manipulant le programme générateur de match lui-même, la mise en l'opposant # x27; s graines au hasard, en examinant l'adversaire # x27; s tas ou pile, ou amenant l'adversaire à être incorrectement rejeté pour tricher.
Il y a beaucoup de livres en ligne. Je recommande la création de votre propre projet et trouver quelque chose de particulier que vous voulez faire avec ce sujet. Pour un projet de classe mon groupe et moi avons fait quelque chose de simple, comme un robot démineur. Il comprenait également un grattoir écran à la ferraille des fenêtres et a créé notre propre jeu de démineur, y compris la partie AI. Il avait environ un taux d'échec de 30%, car il restait planté sur les 50-50 chances de le ramasser la mauvaise place. Mais ce fut beaucoup de plaisir. Nous avons fait un tas de statistiques sur elle aussi.
Ceci est un sujet très large, car il peut aller de tout de la 2D à des jeux de genre 3D et différents.
Il couvre les bases comme la théorie des jeux et va dans quelques-unes des mathématiques et des exemples de code.
Bonne chance, amuse toi bien
Je seconde le livre de mathématiques du comportement. Vraiment une bonne introduction à AI et comment y penser la programmation.
J'ai utilisé ce livre pour une classe de jeu AI et les exemples faciles à consommer avec une bonne mise au point sur l'utilisation des méthodes dans les jeux réels: http: # x2F; # x2F; www.amazon.com # x2F; intelligence artificielle-Jeux- Ian-Mill.
Un peu cher, mais mon livre intro favori pour ce sujet.
Appuyée. Couvre beaucoup de terrain, beaucoup de grands exemples, le code est le langage agnostique (Python-ish). Difficile de se tromper avec ce livre sur votre étagère.
Drôle (et probablement un sujet peu hors) fait. si aujourd'hui j'ai un travail de codage dans lequel il # x27; s parce que quand World of Warcraft était la rage, après un certain temps j'ai commencé « botting » vouloir alors mieux mes bots j'appris à coder et quelques mois plus tard, je l'inscription à une école d'informatique. Le reste est l'histoire comme ils disent.
Si vous voulez interfacer avec des jeux, je recommande fortement la recherche à Innerspace (société a été nommée quelque chose Lavish). Ma connaissance est de 10 il y a quelques années, il pourrait être interrompu si (I # x27; ne suis pas BOTTING plus).
Et, de HN il y a quelques jours, jeux de blog Red a quelques impressionnants, en profondeur des explications de programmation liées au jeu: http: # x2F; # x2F; www.redblobgames.com # x2F; pathfinding # x2F, tour-défense # x2F;
Je pris un cours sur la grippe aviaire à l'Université. Le cours avait beaucoup de projets autour des jeux vidéo. J'ai aimé le livre, nous avons utilisé:
Notre projet final était super cool. Nous sommes en groupes. Ensuite, chaque groupe a modifié l'AI de l'équipe de football dans le livre. Ensuite, nous avons eu un tournoi pour voir qui # x27, l'équipe était le meilleur. Gagner le tournoi a été l'un de mes moments plus fiers à l'école.
Il # x27; s ouvert aux étudiants non-MIT, ainsi.
I # x27; m travaille actuellement mon chemin à travers ce livre l'intelligence artificielle pour les jeux [1] et je trouver très accessible pour une personne sans formation en intelligence artificielle.
Un défi beaucoup plus important serait une IA qui est capable de marcher un avatar dans SecondLife. Première promenade peut-être facile sur les routes en terre ferme, marcher plus tard sur la terre arbitraire, et le véritable défi est de marcher à l'intérieur des bâtiments. Un robot de chat qui ne tombe pas dans le lac, peut-être même un bon vendeur.
Je # x27; ai personnellement fait un projet d'école il y a quelques années à écrire un AI pour Transport Tycoon Deluxe, au moment où il était un api simple; IDK au sujet lLa état actuel. A l'époque cependant, j'ai bien aimé, aussi à cause de l'objet. Linky: https: # x2F; # x2F; wiki.openttd.org # x2F; AI: Main_Page
Si i # x27, d être sur la même quête, i # x27, d abord lu beaucoup d'articles sur gamesutra concernant l'IA. Ici # x27; s une recherche rapide Google - http: # x2F; # x2F; goo.gl # x2F; aHZrXj
Il y a beaucoup de « HandsOn » des exemples réels de là les jeux existants (avec le code) et des entretiens avec les développeurs de jeux.