Stellen Sie HN Wo zum Erstellen von AI für Spiele starten, Hacker News
Erstellen von "AI # x2F; Bots" für Spiele gibt es in drei Teile # x2F; Aromen # x2F; Divisionen:
Erstens, und die kritischste zu den meisten Spielen ist ein grundlegendes Verhalten AI. Dazu gehören Dinge wie Wegfindung, Ziele Ortung, angreifen, und jede andere Form der ein Unternehmen in das Spiel mit der Umgebung im Spiel interagieren.
Drittens bot Schöpfung (für die üblichen „Hacker“ Version # x2F; Bedeutung des Begriffs, wie zB Bots von AFK Spieler zu Farm verwendet) ist wesentlich anders als eine „offizielle“ AI als Entwickler machen oder einen Ersatz AI Schreiben mit verfügbar Scripting in einigen Spielen. Für die meisten Spiele werden Bots verschiedene Hack Techniken beinhalten Informationen über die Spielwelt für die Beschaffung (occasionall buchstäblich visuellen Mustererkennung beteiligt, die eine ganz andere Wollknäuel ist (und eine separate Art von „AI“) Sie # x27 don t wollen Chaos mit nur noch) nicht. Bots werden in der Regel auch indirekte Kontrolle über den Spielcharakter beinhalten durch einige Drittanbieter-Programm mit den Tasten, um das Spiel Funktionalität mit OS auf „senden“. Dies ist wahrscheinlich nicht das, was Sie # x27; re interessiert, und Sie # x27; d zumindest einige Grundlagen der ersten beiden lernen müssen in der Lage sein, hier etwas zu erreichen.
Eine Sache, die ziemlich populär war vor einer Weile ist zu tauchen nur in einem Spiel wie Robocode [1] und arbeiten Sie Ihren Weg bis Sie einen Roboter codieren kann, das wird auf seinem eigenen Beat verschiedenen Wettbewerbs-Klasse Roboter ohne Benutzereingabe für die einzustellen Gegner # x27; s Strategien.
Der Aufbau von Ihrem # 3) Ein Beispiel hierfür wäre die botting Programme für Runescape sein. Entwickler schrieben eine Anwendung, die auf dem Spiel-Client sitzen würde und dann in Java verwendet Reflexion zu sehen, was # x27; s im Spiel passiert: Verschiedene Objekte erstellt werden, die jetzt auf dem Bildschirm sind, die Spieler Richtung, die Kartengitter, etc. .
Die Entwickler dieses botting Programms würden dann ihre eigene API und Skriptsprache verfügbar machen, die anderen Entwickler mit dem Spiel durch ihr Programm zur Interaktion ermöglichen. Das könnte dann Skripte schreiben wie: Gehen Sie zu dieser Stelle über Kartenkoordinaten, einen Gegenstand aufheben, um ein Rätsel zu lösen, etwas Chef zu kämpfen, essen, wenn unter einer bestimmten Gesundheit usw.
Hinweis: Ich habe ein VPS Unternehmen zu führen, die speziell für diejenigen bieten würden, das botting in Runescape waren; Dies erlaubt ihnen, ihre Bots 24 # x2F zu laufen, 7 ohne eigene Hardware.
Recht. Ich schrieb eine der früheren RuneScape 2 Bots etwa 8 Jahren (Beispielskript https: # x2F; # x2F; clbin.com # x2F; 71NIX).
Es # x27; s erwähnenswert, dass diese als Bots durch Verhalten sehr leicht erkennbar waren. AI für ein Spiel zu machen (das scheint tatsächlich menschlich und macht Spaß, mit zu kommunizieren, sich Vergangenheit nur Auswahl und Wegfindung Ziel) ist eine weitere (viel schwieriger) Reihe von Problemen vollständig.
Holey Scheiße it # x27; s Regex :). Old ARGA dev hier :).
die A * Pathfinding Algorithmus zu lernen, ist ein guter Ausgangspunkt, da dies in einfacher Fliese Spielen üblich ist. Diese beiden Links sollten Sie beginnen:
I # x27; ll zweiten diesen. Auch für Brettspiele wie Schach oder Othello, sollten Sie einen Blick auf dem Mini-max-Algorithmus nehmen:
Caveat # x2F; Warnung: Oft lernen, wie Sie Ihre Spieldaten in einem A * -traversable Graph zu übersetzen ist härter als selbst den A * -Algorithmus implementieren.
1. Besorgen Unreal Engine [1]. Es # x27; s $ 20 pro Monat, aber Sie können nach dem ersten Monat kündigen, wenn Sie # x27 don t wollen Updates erhalten.
2. Laden Sie die Unreal Tournament-Projekt [2]
3. Überprüfen Sie den Bot-Code und starten Sie zwicken
Unreal ist ein Industrie-Grade-Game-Engine, die auch ganz zugänglich ist. AI kann in Blueprint (a visual Datenfluß scripting language) oder C ++ skript werden.
Nun, ich mag die Idee, aber warum alle tun, um ihre Dokumentation Seiten verlinken auf einen Github 404: https: # x2F; # x2F; github.com # x2F; Epic Games # x2F; Unrealtournament.
Ich plane, Blick in die Unreal-Engine starten bald, nachdem ich Erfahrung mit einem Basismotor bekommen. Haben Sie gefunden viele der Ressourcen sind in der Lage Sie haben gut angefangen zu bekommen? Oder gibt es eine große Lernkurve? Meine Haupt Erfahrung ist Rails-Anwendungen in schriftlicher Form, Ruby-Gems, ein paar grundlegende Android Apps und alles DevOps.
Es # x27; s ziemlich glatt. Episches haben poliert wirklich die UX ein so komplexes Stück Software verständlich und erweichen die Eintrittsbarriere, so viel wie möglich zu machen. Es gibt alle Arten von Übungen.
I # x27; d sagen, es ist # x27; s leichter an dieser Stelle als Einheit zu lernen, aber härter als 2D-Engines wie Gamemaker. Ich denke, einige grundlegende Erfahrung machen einfache 2D-Spiele wird eine Menge vor dem Übergang zu 3D helfen.
AI-Programmierer hier. im Allgemeinen „Bots“ ist nur AI, dass der Ort von einem Spieler nehmen sollte (in der Regel in einem gegenüber Setzen und keine Co-op-Einstellung).
Wenn etwas Bots sind härter dann „normal“ AI zu machen, da ihr Wert wird durch ihre Leistung gegen Menschen gemessen. Auch die weniger betrügen Sie (vollkommene Kenntnis von den anderen Spielern, perfekte Ziel, etc.), desto besser Ihr bot. ein nicht-Betrug bietet mit einem menschlichen schlagen ist ein großer Erfolg.
Die Bots für ein Strategiespiel wie StarCraft ist grundlegend anders als der Bot für einen FPS. Sie nutzen ganz unterschiedliche Techniken und # x27; s viel schwieriger Strategiespiel zu betrügen in (obwohl der Nebel des Krieges zu ignorieren, ist die ungeheuerlichsten). Strategiespiel AI ist eher mit Schach AI - viele Such (Minimax und Material). Es # x27; s ein ganzes Feld auf sich selbst und Sie können nur lernen, indem sie die KI für diese Art von bestimmten Spiel zu studieren.
FPS-Bots (wie Counter Strike) sind viel näher an traditionellen Spiel AI (Schützen und so weiter). Bücher auf „Game AI“ sind ein guter Anfang. Grundsätzlich sind die zwei Hauptprobleme ist, wo soll ich (Bewertung Abdeckung, Sichtlinie zu analysieren, Schätzen, wo Feinde sind und versuchen, einen guten Platz zu holen stehen) gehen und wie ich dort hin (Wegfindung und pathfollowing). Was Sie tun, wenn Sie sich in der Regel recht einfach zu bekommen ist (auf dem entsprechenden Typ Schießen). Wenn Sie ein Cover-System haben müssen Sie in der Lage sein, ihnen zu sagen, wie Abdeckung zu verwenden, und dies erfordert eine Menge Animation (Synchronisierung meine Animationen und Position in der Welt auf die Abdeckung nach oben). Aber in einem FPS ist dies in der Regel nur eine Frage der hockenden oder nicht.
Der große Unterschied für FPS-Bots (im Vergleich zu Single-Player-Gegner-KI) ist, dass Bots zwischen widerstreitenden Zielen wählen müssen (soll ich Munition gehen zu bekommen, soll ich gehen Gesundheit zu erhalten, soll ich den Feind anzugreifen). Wenn Sie eine strenge Hierarchie von Verhaltensweisen Ihre Bots gewonnen # x27 haben; t wettbewerbsfähig sein (geben Sie Fuzzy-Logik-Systeme, Nutzentheorie und dergleichen - normales Verhalten Bäume gewonnen # x27; t es geschnitten).
einen Menschen schlagen ist ein großer Erfolg> ein Nicht-Betrug bietet zu haben.
(Für einige Kategorien von Spielen!)
I # x27; m Erbsenzählerei fast hier, aber es # x27; s wichtig, den Unterschied zu verstehen, wo bei dem Versuch, „menschenähnliche“ AI zu bauen, dass die Spieler sind wie die reale Sache fühlen, Sie wollen auch menschliche Schwächen emulieren. Manchmal sei es vielleicht nicht nach den Regeln zu betrügen, aber immer noch offensichtlich der aktuellen menschlicher Fähigkeiten außerhalb des Bereichs sein.
Der beste Start ich je in der Künstliche Intelligenz hatte, war über UC Berkeley # x27; s CS188 Kurs [1]. Dieser Kurs führt Sie durch die Grundlagen der KI, von der Suche nach Grundwahrscheinlichkeitstheorie zu planen. Es # x27; s wurde an Universitäten auf der ganzen Welt mit seinen offenen Vorlesungen, Dias, Hausaufgaben und Projektcode nachgeahmt.
Die Projekte sind der beste Teil dieses Kurses. Sie beginnen mit einem leeren Schiefer PacMan-Agent versucht, Punkte zu etwas fähig zu verfolgen abholen - ausweichen Geistern, ohne sie auch nur zu sehen (!). Es # x27; s, was mich inspiriert KI-Forschung 7 Jahre auf der Straße weiter!
Hey, danke für den großen Link!
Wie für AI (in der Regel nicht nur für Spiele) - AFAIK heute schwerste Arbeit in nicht-symbolischen getan, Statistiken # x2F; stochastische Richtung (einschließlich aller Big Data und ML Sachen). Was denken Sie über rein symbolischen KI? Gibt es eine Forschung # x2F, Fortschritte in diesem Teil getan? Ich weiß, ich # x27; m vereinfachend, aber ich glaube, Sie den Punkt. )
So erstellen Sie eine gute (das heißt wirklich nützlich) bot Sie verbringen viel Zeit beginnen soll in welchem Spiel Sie # x27; Re-Targeting.
Die meisten Bots oder trivial Helfer wie Makros werden von den Spielern geschrieben, die viel Zeit in einem Spiel verbracht haben und die Elemente am meisten verdienen Automatisierung identifiziert. Die Spieler # x27; s Fehlen von detaillierten technischen Kenntnissen führt dann zu der Masse von crappy Bots gibt.
Edit: it # x27; s auch erwähnenswert, dass Spiel AI und Bots sind ziemlich unterschiedliche Probleme.
Google Ants [0] ist eine AI Herausforderung, die jetzt vorbei ist, leider, aber man kann durch sie noch laufen.
„Die AI Challenge ist alles über künstliche Intelligenz zu schaffen, egal ob Sie einen Anfang Programmierer oder ein Experte ist. Mit einem der einfach zu bedienenden Starter-Kits, können Sie ein Computerprogramm geschaffen werden (in jeder Sprache), die eine Kolonie von Ameisen steuern die kämpfen gegen andere Kolonien um die Vorherrschaft.“
Hier sind einige Ressourcen auf AI-Programmierung
Ich empfehle dieses Buch
Das sieht so aus Spaß. Es gibt viele Online-Programmierung Wettbewerbe, die ähnlich wie das funktioniert, und ich würde mit einem von ihnen empfehlen beginnen.
I # x27; d auch hinzufügen, dass während jeder was darauf hindeutet, AI Ressourcen hilfreich ist, das Beste, was zu tun, nur in ist zu springen und beginnen Codierung. Eines der Probleme mit unserem formalen Bildungssystem ist, dass es endet oft versucht, Lösungen für Probleme zu präsentieren, bevor die Schüler tatsächlich die Probleme verstehen, was bei den Schülern, die ziemlich oberflächliches Verständnis der Lösung erfahren, dass das Gehirn natürlich Müll-Sammel landet. Code nur Dinge für ein paar Wochen. Sie sollten Sie # x27 bemerken; re Art von einer Mauer, die Zeit um zu treffen. Sie sollten feststellen, dass Sie Verhalten in Ihre Gegner sehen, die Sie derzeit nicht wissen, wie zu implementieren. Das ist die Zeit in die AI Texte zu starten Rissbildung und von denen lernen, die Ihnen voran, und alles wird dazu neigen, absolut Sinn zu machen, warum Sie # x27; d das tun wollen, anstatt diese abstrakten Gedanken des Seins im Raum schweben, die dazu neigen, gehen in einem Ohr hinein und zum anderen.
„I # x27; d. Auch hinzufügen, dass während jeder was darauf hindeutet, AI Ressourcen hilfreich ist, das Beste, was zu tun, nur springen und beginnen Codierung“
I # x27; d, dass etwas ändern: abschöpfen (eine Stunde pro Kapitel so etwas?) Ein oder mehrere umfangreiche Bücher (zu diesem Thema, Russell und Norvig ist gut) genug eine Vorstellung zu bekommen, was bekannt ist, dann springen und hacken ernst, unterbricht dann Hacking gegebenenfalls durch die besonders relevanten Sachen zu studieren gehen zurück, die Sie wissen, ist bereits bekannt. Springen ist in gut und wichtig, aber es neigt dazu, viel effizienter zu sein, wenn Sie eine Vorstellung über die Umrisse von dem, was bereits für Sie ausgearbeitet wurde.
Die Zeiten, die ich haven # x27; t in der Lage gewesen, diesen Rat zu folgen --- insbesondere nicht den physischen Zugang zu Universitätsbibliotheken haben, wenn ich einen C-Compiler für eine Z-80 als ein Teenager in den 1980er Jahren zu schreiben versuchte, daher hat keine sehr praktische Art und Weise über bestehende Arbeit auf Parser und Dinge zu lernen --- war besser als nichts, interessant und lehrreich, aber nicht so effizient wie Sachen zu tun, wenn ich eine Menge Sachen hatte nach Bedarf zu studieren.
Diese vier Strategien in Kombination, zusammen mit einigen globalen Verhalten für Wegfindung und Verhaltensmodi, sind oft genug, um einen nicht bewusst Spieler zu besiegen. (Suche: "Pac-Man Dossier")
So erstellen Sie eine wettbewerbsfähige AI, zunächst herauszufinden, wie Menschen das Spiel spielen, identifizieren die strategischen Urbilder, dann modellieren Ihre bot archetypische Ziele zu verfolgen. Dann, am wichtigsten, bestimmt, wann Urbilder zu wechseln. Eine frühe rusher AI hat keine Strategie für midgame oder endgame, so vielleicht, dass die KI in aggressive Expansion entwickelt oder ein Wegelagerer.
Natürlich gibt es ohne menschliche Spieler einige Spiele. Es # x27; s die „Rock Paper Scissors Programmierwettbewerb“ (rpscontest.com), bei denen die Spieler Algorithmen einreichen, die dann einander Rangpunkte bis zum Tod kämpfen. Es ist interessant, neue Strategien steigen und fallen, um zu sehen, auch diejenigen, die durch „Betrug“ zu gewinnen, wie durch das Spiel Zeugungsprogramm selbst zu manipulieren, um den Gegner # x27 Einstellung; s zufällige Samen, den Gegner # x27 untersuchen; s Haufen oder stapeln, oder Bewirken, dass der Gegner nicht richtig für Betrug disqualifiziert werden.
Es gibt viele Online-Bücher. Ich würde empfehlen, Ihr eigenes Projekt zu schaffen und etwas zu finden, speziell wollen Sie mit diesem Thema zu tun. Für eine Klasse Projekt meiner Gruppe und ich habe etwas Einfaches wie ein Minensuchboot bot. Es enthielt auch einen Bildschirm scrapper aus den Fenstern verschrotten und erstellt eigenes Minensuchboot Spiel mit dem AI Teil. Es hatte etwa 30% Ausfallrate, weil es auf den 50-50 Chancen, es stecken bleiben würde den falschen Platz Kommissionierung. Aber das war eine Menge Spaß. Wir haben eine Reihe von Statistiken über die es auch.
Dies ist ein sehr breites Thema, weil es von allem von 2D zu 3D und anderen Genre-Spielen reichen kann.
Es umfasst Grundlagen wie Spieltheorie und geht in einige der Mathematik und einige Code-Beispiele.
Viel Glück und viel Spass
Ich schließe ich das Behavioral Mathematik Buch. Wirklich gute Einführung in die KI und wie über die Programmierung daran zu denken.
Ich habe dieses Buch für ein Spiel AI-Klasse und die Beispiele waren leicht mit einem guten Fokus auf mit den Methoden in echten Spielen zu konsumieren: http: # x2F; # x2F; www.amazon.com # x2F; Künstliche-Intelligenz-Games- Ian-Mühle.
Ein wenig teuer, aber mein Liebling Intro Buch zu diesem Thema.
Abgeordnet. Deckt eine Menge Boden, viele gute Beispiele, ist der Code sprachunabhängig (Python-ish). Schwer zu schief geht mit diesem Buch in Ihrem Regal.
Lustig (und wahrscheinlich auch ein bisschen off topic) Tatsache. wenn ich heute eine Codierung Job es # x27 haben, liegt daran, dass, wenn World of Warcraft war schließlich die Wut, nach einer Weile begann ich „botting“ dann wollen meine Bots besser zu machen habe ich gelernt, zu kodieren und ein paar Monate später war ich die Einschreibung in eine IT-Schule. Der Rest ist Geschichte, wie sie sagen.
Wenn Sie mit Spielen verbinden wollen, würde ich empfehlen, im Innerspace suchen (Firma wurde Lavish etwas genannt). Mein Wissen ist von vor 10 Jahren, könnte es allerdings abgebrochen werden (I # x27; m nicht mehr botting).
Und von HN ein paar Tagen, hat Rot Blog Spiele einige ehrfürchtige, vertiefende Erklärungen von spielbezogenen Programmierung: http: # x2F; # x2F; www.redblobgames.com # x2F; Wegfindung # x2F; Tower-Defense # x2F;
Ich habe einen Kurs auf AI an der Universität. Der Kurs hatte viele Projekte rund um Videospiele. Ich mochte das Buch, das wir gebraucht:
Unser letztes Projekt war super cool. Wir haben in Gruppen. Dann modifiziert jede Gruppe die KI der Fußballmannschaft in dem Buch. Dann hatten wir ein Turnier zu sehen, wer # x27; s Team das beste war. Gewinnen war das Turnier eine meiner prouder Momente in der Schule.
Es # x27; s offen für Nicht-MIT-Studenten, wie gut.
I # x27; arbeite zur Zeit meinen Weg durch dieses Buch Künstliche Intelligenz für Spiele [1] und ich finde es sehr zugänglich für jemanden ohne Hintergrund in AI.
Eine viel größere Herausforderung wäre eine KI, die einen Avatar in Secondlife zu gehen vermag. Zuerst vielleicht leicht zu Fuß auf den Straßen auf dem Festland, geht später auf beliebiges Land, und die eigentliche Herausforderung ist zu Fuß innerhalb von Gebäuden. Eine Katze bietet, das nicht in den See fallen könnte sogar ein guter Verkäufer sein.
I # x27; ve persönlich ein Schulprojekt vor einigen Jahren eine KI für Transport Tycoon Deluxe, zu der Zeit war es eine einfache api zu schreiben; IDK über tthe aktuellen Status an. obwohl zu der Zeit, ich genoss ganz es, auch wegen des Gegenstands. Linky: https: # x2F; # x2F; wiki.openttd.org # x2F; AI: Main_Page
Wenn i # x27; auf dem gleichen Streben sein d, i # x27; d lesen Sie zuerst eine Menge von Artikeln über gamesutra über AI. Hier # x27; s eine schnelle Google-Suche - http: # x2F; # x2F; goo.gl # x2F; aHZrXj
Es gibt eine Menge von „handson“ Beispiele gibt es aus real existierenden Spiele (mit Code) und Interviews mit Spieleentwicklern.