Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

eisenmad

Treue Seele

  • »eisenmad« ist der Autor dieses Themas

Beiträge: 84

Wohnort: Heute hier, morgen dort

Beruf: Denker

  • Private Nachricht senden

1

09.09.2015, 18:25

Neuronale Netze - KI

Hallo

Ich würde gerne mal wissen ob hier Leute sind die mit Neuronalen Netzen arbeiten? Wenn ja was für Netze habt ihr wofür beim Spiele Programmieren vernwendet?

Desweiteren würde ich gerne wissen, ob man den Begriff KI mittels Neuronalen Netzen definieren kann, oder ob KI nochmal was ganz unabhängiges davon ist? Ist bissl schwer mich besser auszudrücken, da ich mich erst seit ganz kurzer Zeit mit dem Thema beschäftige. Hoffe es war verständlich.

Grüße

2

09.09.2015, 18:57

Jo, hab die schon verwendet. Direkt für ein Spiel jetzt aber nicht. Das naheliegendste an "Spiel" war wohl eine Simulation von Bakterien...
Die Begriffe sind aber klar zu trennen. Künstliche Intelligenz besagt nur, dass ein für uns offensichtlich nicht intelligentes Ding intelligent wirkt, hier eben der Computer.
Das geht dann eben vom einfachen if-else in einem Pong-Gameloop zu SVMs oder Fuzzy Logic.

MfG
Check

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

3

09.09.2015, 19:00

KI ist ein sehr weites Feld mit vielen verschiedenen Teilgebieten und Techniken. Neuronale Netze sind nur eines davon. Wikipedia gibt da einen sehr guten Ueberblick: https://en.wikipedia.org/wiki/Artificial_intelligence
Sowie: https://en.wikipedia.org/wiki/Artificial_neural_network

Soweit ich weiss werden Neuronal Netze recht selten in Spielen angewendet. In Spielen liegt der Fokus darauf nicht wirklich Intelligent zu sein, sondern Intelligent zu erscheinen. Das laesst sich wesentlich einfacher auf andere Art und Weise erreichen. z.B. wird sehr haeufig eine State Machine verwendet (z.B. Gegner ist Idle. Wenn er den Spieler sieht geht er in Angriff Modus. Sieht er den Spieler nicht mehr geht er in den Suchmodus. Nach 2 Minuten geht er dann wieder in den Idle modus.)

Neuronale Netze sind ein sehr komplexes Thema, und werden oft fuer Prediktion und Pattern Erkennung verwendet. Probleme wie "Zeigt dieses Photo ein Auto oder einen Affen?" lassen sich z.B. mit Neuronalen Netzen loesen wenn man dem Netzwerk zum lernen viele Bilder von Autos und Affen gezeigt hat.

4

09.09.2015, 20:09

Soweit ich weiss werden Neuronal Netze recht selten in Spielen angewendet. In Spielen liegt der Fokus darauf nicht wirklich Intelligent zu sein, sondern Intelligent zu erscheinen. Das laesst sich wesentlich einfacher auf andere Art und Weise erreichen. z.B. wird sehr haeufig eine State Machine verwendet (z.B. Gegner ist Idle. Wenn er den Spieler sieht geht er in Angriff Modus. Sieht er den Spieler nicht mehr geht er in den Suchmodus. Nach 2 Minuten geht er dann wieder in den Idle modus.)

Decision Trees sind sehr beliebt, in Kombination mit beispielsweise ID3 kommen die in Spielen nach Ian Millington und John Funge auch für "Lernverhalten" zum Einsatz.

Neuronale Netze sind ein sehr komplexes Thema, und werden oft fuer Prediktion und Pattern Erkennung verwendet. Probleme wie "Zeigt dieses Photo ein Auto oder einen Affen?" lassen sich z.B. mit Neuronalen Netzen loesen wenn man dem Netzwerk zum lernen viele Bilder von Autos und Affen gezeigt hat.

So komplex sind neuronale Netze jetzt auch nicht, zumindest aus 'praktischer' Sicht. Hier der Anfang einer siebenteiligen Videoserie dazu, die qualitativ wirklich ziemlich hochwertig ist.

Neuronale Netze eignen sich wirklich aber am beesten zur Erkennung von Mustern, wenn man damit komplexes Gegnerverhalten simulieren will, kommt man schnell an die Grenzen. Da sollte man wirklich eher zu Decision Trees oder Ähnlichem greifen. Meine Präferenz liegt aber auf den Decision Trees. :)

MfG
Check

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

09.09.2015, 22:05

Ein kleiner Nachtrag. Allein für das Wort Intelligenz gibt es verschiedene Definitionen. Es fängt im Prinzip schon damit an zu gucken was Intelligenz in deinem Fall überhaupt bedeuten soll. Ein Beispiel wäre das intelligent wirkende Verhalten von einem NPC in einem Spiel welches hier schon gebracht wurde. Das kann man aber sehr unterschiedlich sehen. Wie so oft sollte man also zuerst die Anforderungen genau checken oder gegebenenfalls definieren um sich selbst klar zu werden was man denn überhaupt erreichen möchte.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

hawkeye_de

Frischling

Beiträge: 70

Wohnort: Baden-Württemberg

  • Private Nachricht senden

6

11.09.2015, 11:28

Ich kann diesen Vortrag hier empfehlen https://channel9.msdn.com/Events/Build/2014/3-643 um mit der Materie vertraut zu werten (Beispiel in C#).

Ansonsten, falls Du dich mit dem Thema (und andere KI-Topics) ernsthaft auseinander setzen willst... ein Buch-Tipp "Machine Learning - An Algorithmic Perspective Second Edition"

Ich denke nicht, dass NN nicht für Spiele geeignet werden. Google und Microsoft und wohl auch IBM sind mit "Deep Neuronal Networks" schon sehr weit fortgeschritten. Es ist halt zeitaufwendig, sich damit zu beschäftigen und deswegen sind die meisten Hersteller nicht daran interessiert.
"Große Geister besprechen Ideen; durchschnittliche Geister besprechen Ereignisse; kleine Geister besprechen andere Leute"

-Admiral USN Hyman Rickover, Vater des 1. Atom U-Boots "Nautilus"

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

13.09.2015, 00:05

Naja für die meisten Spiele sind NN schon eher ungeeignet, da NNs auf handelsüblichen Computern eine relativ schlechtes "Kognitive Leistung zu CPU Zyklen" Verhältnis aufweisen. Wenn man sich für die anwendungsbezogenere Seite interessiert, dürften die diversen AI Competitions sein für z.B. Starcraft. Da kann man u.U. ganz gut sehen was für "erfolgreiche Spiele KI"s Stand der Technik ist.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

hawkeye_de

Frischling

Beiträge: 70

Wohnort: Baden-Württemberg

  • Private Nachricht senden

8

13.09.2015, 08:54

Naja für die meisten Spiele sind NN schon eher ungeeignet, da NNs auf handelsüblichen Computern eine relativ schlechtes "Kognitive Leistung zu CPU Zyklen" Verhältnis aufweisen. Wenn man sich für die anwendungsbezogenere Seite interessiert, dürften die diversen AI Competitions sein für z.B. Starcraft. Da kann man u.U. ganz gut sehen was für "erfolgreiche Spiele KI"s Stand der Technik ist.


Würde ich so pauschal nicht sagen. Es kommt auf das Spielgenre an. GNU Backgammon ist ein gutes Beispiel für den Einsatz von NN.

Selbst im Jahr 2000 wurde schon auf der Playstation für das Spiel Colin McRae Rally 2.0 NNs verwendet.

Ich denke (was durch wissenschaftliche Arbeiten, die sich mit dem Thema auseinandersetzen belegt zu scheint) der mangelhafte Einsatz von NNs und vergleichbaren Algorithmen liegt vielmehr an diesen Gründen:

- AAA games messen AI im Allgemeinen keine grosse Priorität zu. Das Spiel verkauft sich auch so. Man muss sich nur mal den Source-Code von Civ IV anschauen (kann man legal wegen Modding downloaden)....die AI besteht aus IF/ELSE, also im Wesentlichen aus Decision Trees und simplen State Machines
- KI und NN sind Themen, die nur wenige Entwickler beherrschen
- Einsatz von komplexeren AI Routinen setzt voraus, dass die Game-Engine das unterstützt, in dem sie nebenläufige Prozesse einfach implementierbar macht (z.B. ähnlich wie bei Akka im Java/Scala Bereich).
"Große Geister besprechen Ideen; durchschnittliche Geister besprechen Ereignisse; kleine Geister besprechen andere Leute"

-Admiral USN Hyman Rickover, Vater des 1. Atom U-Boots "Nautilus"

Werbeanzeige