PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KI Contest (RPG 2k)



Fleräter
10.02.2007, 18:47
Worum get es:
Jeder Teilnehmer baut sich im Rpg Maker einen Roboter mit einer KI, die es zulässt automatisch mit anderen KI gesteuerten Robortern zu kämpfen.

Die Arena
Die Arena, in der immer 2 Roboter gegeneinander kämpfen, ist 20*15 Felder groß.

Regeln beim "Bau"
- jeder Kämpfer hat nur 3 Leben
- jeder Kämpfer darf sich nur in Geschwindigkeit 4 bewegen
- nur Fernkampf
- Schüsse machen 1 Punkt schaden --> nach 3 Treffern hat man verloren
- Schüsse müssen Charsets sein und dürfen sich nur geradlinieg (aber auch diagonal) bewegen
-mögliche Abweichung: +/- 3 Felder (siehe Bild)
-Geschwindigkeit der Schüsse: 5
- keine Zielverfolgungsraketen oder sowas
- 0.3 Sekunden "Schussnachladezeit"
-maximal 3 Schüsse "gleichzeitig" unterwegs (NEU)
- die Roboter müssen immer in Bewegung sein, das heißt sie dürfen höchstens 3 Sekunden an einer Stelle stehen bleiben



mögliche Schüsse:
Hier sieht man, wie der Roboter schiessen kann. Bei Charsets sind leider keine Diagonalen Schussbahnen möglich, daher wird die Laserbewegung wohl etwas komisch aussehen:

http://img158.imageshack.us/img158/7999/laserschusspj9dj7.png


Wenn beim Kampf nach 3 Minuten noch kein Treffer erlangt wurde, haben die beiden Kämpfer nur noch 1 Leben. Wenn es nach 5 Minuten keinen Sieger gibt gibts ein Finale, bei dem "Superwaffen" erlaubt sind, also Zielschüsse, Gebietsschaden, oder sonst irgendwas. Aber um die Superwaffen abzufeuern mus der Roboter 1 Sekunde lang stillstehen.

Gegenstände auf der Arena
Auf der Arena gibt es 10 zufällig verteilte Hindernisse, hinter denen die Roboter Deckung suchen können (Die Hindernisse blocken Schüsse)

Variablenverteilung
Variable 1: Roboter 1 HP
Variable 2: Roboter 2 HP
Variable 3: Roboter 1 x Koordinate
Variable 4: Roboter 1 y Koordinate
Variable 5: Roboter 2 x Koordinate
Variable 6: Roboter 2 y Koordinate

Variable 10: Gegenstand 1 x
Variable 11: Gegenstand 1 y
Variable 12: Gegenstand 2 x
.
.
.
Variable 19: Gegenstans 10 x
Variable 20: Gegenstand 10 y

Variable 300: Spieler 1 Schuss 1x (NEU)
Variable 301: Spieler 1 Schuss 1y (NEU)
Variable 302: Spieler 1 Schuss 2x (NEU)
Variable 303: Spieler 1 Schuss 2y (NEU)
Variable 304: Spieler 1 Schuss 3x (NEU)
Variable 305: Spieler 1 Schuss 3y (NEU)

Variable 306: Spieler 2 Schuss 1x (NEU)
Variable 307: Spieler 2 Schuss 1y (NEU)
Variable 308: Spieler 2 Schuss 2x (NEU)
Variable 309: Spieler 2 Schuss 2y (NEU)
Variable 310: Spieler 2 Schuss 3x (NEU)
Variable 311: Spieler 2 Schuss 3y (NEU)

Switch 1 : Finale modus

Auserdem hat jeder Spieler 100 Variablen und Switches zur freien Verfügung:

Spieler 1: Variablen 21-121
Schalter 2-102
Spieler 2: Variablen 122-222
Schalter 103-203

Eventverteilung (NEU)
Events 1-10 : Hindernisse
Event 11: Roboter Spieler 1
Event 12-14: Spieler 1 Schüsse
Event 15: Roboter 2
Event 16-18: Spieler 2 Schüsse

Ihr müsst aber nicht darauf achten dass euer Roboter Event 1 bzw Event 5 ist, sondern darauf achte ich beim kopieren.

Events, die schon in der Arena sind, und ihr nicht in eure Roboter einbauen dürft (NEU)

-Siegesevent (Fork HP 3 above)
-Schadensevent (Fork Kooridnaten Schuss = Koordinaten Roboter, HP+1)
-Finale Modus Event ( nach 5 Sekunden geht Schalter 1 an)
-"nach 3 min HP nur noch 1" Event

Zusatzwissen
Damit jeder gute Chancen hat, gibts einige Dinge, die man zum Roboter bauen wissen müsste.
Zum Beispiel:
wie viele Felder legt ein Event mit Geschwindigkeit 4 bzw 5 in einer Sekunde zurück? (weiß ich selbst nicht)

Falls es noch mehr gibt, fragt.

Was wir noch bräuchten :)
Jemanden, der Arenen mappen kann.


Anregungen und Fragen und sowas bitte posten. Ich weiß auch nicht wie kompliziert das dann alles wird, bzw ob das überhaupt möglich ist, aber man kann es ja mal ausprobieren :)

Chaik
10.02.2007, 18:55
Bitte was?

~Hauptmann Krey~
10.02.2007, 18:59
Dieser Text verwirrt mich.
Ist das jetzt ein Contest für uns oder sollen wir euch bei einem externen helfen?
Und was kann man gewinnen (ich denk nur ans ein -.-")
Bitte merh Infos
Das ganze klingt interesant.

Metro
10.02.2007, 19:04
Gibts denn da auch ne Jury/Crew/Leute die Bewerten ? Wenn ja würd ich mitmachen... ;) Ausserdem würd ich niemals mitmachen, da das ziemlich lange dauern wird so ne KI zu machen ;)

Fleräter
10.02.2007, 19:06
Ja es ist ein Contest für euch, aber zu gewinnen gibts (bisher) nix.


Bitte was?

Also du "baust" einen Roboter im Rpg Maker, der sich automatisch durch parallele Prozesse bewegt und schiessen kann. Später soll er gegen einen anderen von einem anderen Teilnehmer gebauten Roboter selbstsändig kämpfen können.


Gibts denn da auch ne Jury/Crew/Leute die Bewerten ? Wenn ja würd ich mitmachen...
Eigentlich sollte ja jeder kampf eindeutig entschhieden werden. Und da gibts 2 Möglichkeiten:
Entweder es gibt ne Jury, die die Kämpfe anguckt und dann sagt wer gewonnen hat oder ich veröffentliche die Kämpfe und jeder im Forum kann sich dann den Kampf praktisch als Spiel runterladen und schreibt dann wer bei ihm gewonnen hat.

Was is euch lieber?

Kaeyin
10.02.2007, 19:09
Ich könnte ne Arena mappen mit einem richtigen Chipset wär das kein Problem. Aber wie die andern schon sagten. Ich versteh nicht ganz ob das ein Contest is o.O

Edit. Hat sich erledigt!

Grüße

.blaze
10.02.2007, 19:11
öhm so wie ich das verstehe bist du /ihr zu faul euch ein KS zu scripten und wollt das hier das jetzt jemand für euch einfach so macht..?

Und selbst wenn wo ist denn da der Contest, wenn sowieso alle Beiträge gleich funktionieren sollen...

lol

V-King
10.02.2007, 19:13
Ja es ist ein Contest für euch, aber zu gewinnen gibts (bisher) nix.



Also du "baust" einen Roboter im Rpg Maker, der sich automatisch durch parallele Prozesse bewegt und schiessen kann. Später soll er gegen einen anderen von einem anderen Teilnehmer gebauten Roboter selbstsändig kämpfen können.

Ich glaube, es so zu formulieren wie folgt, wäre verständlicher:

Roboter 1 kämpft gegen Roboter 2, wobei beide Roboter von einer KI und somit NICHT vom Spieler gesteuert werden. Ziel ist es, dass sich die Roboter so lange bekämpfen, bis einer den Geist aufgibt.

OK, zumindest hab ichs so verstanden. Der Punkt ist nur: Das könnte man schon mit den simpelsten Sachen hinkriegen, es würde eben nur sehr schnell gehen. Oder man macht die Uber-KI und der Kampf dauert ewig, weil die Roboter immer wieder Schlupflöcher finden, durch die sie ausweichen können. Bla.

Wo ist der eigentliche Sinn hinter dem Contest? Es gibt definitiv zu wenige Leute hier im Forum, die sich mit dem Maker so weit auskennen, dass sie "einfach mal eben" ne KI skripten können. Um genau zu sein, fallen mir sogar grade mal zwei Leute ein, die zu sowas definitiv im Stande sind, auch wenns wahrscheinlich ne halbe Ewigkeit dauern würde. Nur sind eben auch (und nicht nur) diese Leute zu sehr mit ihren Maker-Projekten beschäftigt, als dass sie mal eben an diesem Contest teilnehmen (der, wie ich mir denke, wahrscheinlich nicht mal von einem der Mods abgesegnet wurde).

Sorry, mir erscheint der Contest zu unüberlegt.
Nette Idee, aber für die Mehrheit des Forums unausführbar und für die, dies können, würde es zu lange dauern, was Vernünftiges auf die Beine stellen zu können.

Meine Meinung.


EDIT: Achja, abgesehen von den oben genannten Gründen würde es bei einem Kampf "KI1 gegen KI2" sicher auch zu derben Rechenfehlern und SEHR häufigen Abstürzen kommen. Denk ich mir zumindest. Da bräuchte man schon nen dicken PC, der dann vor allem nicht anfängt, zu ruckeln (oder man bräuchte ein verknotetes Hirn wie Lachsen, der sowas wahrscheinlich auf nem 400 MHz-PC ohne Ruckler hinkriegen würde...innerhalb von ein paar Monaten :D )

Fleräter
10.02.2007, 19:14
öhm so wie ich das verstehe bist du /ihr zu faul euch ein KS zu scripten und wollt das hier das jetzt jemand für euch einfach so macht..?

Eigentlich nicht, ein KS wo 2 automatisch gesteuerte NPCs miteinander kämpfen fänd ich nicht ganz so unterhaltsam.


Und selbst wenn wo ist denn da der Contest, wenn sowieso alle Beiträge gleich funktionieren sollen...

Tun sie doch gar nicht. Es gibt da doch viele verschiedene Möglichkeiten wie man den Roboter baut.


Der Punkt ist nur: Das könnte man schon mit den simpelsten Sachen hinkriegen, es würde eben nur sehr schnell gehen. Oder man macht die Uber-KI und der Kampf dauert ewig, weil die Roboter immer wieder Schlupflöcher finden, durch die sie ausweichen können. Bla.
Da gibts doch auch noch ein Mittelding, was dann auch viele Leute hinkriegen werden.

Lukas
10.02.2007, 19:38
Tun sie doch gar nicht. Es gibt da doch viele verschiedene Möglichkeiten wie man den Roboter baut.Der Punkt ist, dass die Engine bei verschiedenen Leuten vermutlich unterschiedlich funktioniert - der erste steuert z.B. die Schuesse ueber einen PP und zeigt die Kugel als Picture an, der naechste macht das ganze Event-basiert, usw.
Du solltest erstmal was Scripten, dass man ein funktionierendes KS hat, in dem ein Roboter vom Spieler gesteuert werden kann, das stellst du dann zum Download, und da bauen die Spieler ihre KIs rein. Ansonsten hat das Ganze keinen Zweck, weil alles zueinander inkompatibel ist.

Die Idee des Contests gefaellt mir, aber sie muss sorgfaeltiger umgesetzt werden.

Und der RMXP rockt den 2k eh :P

Fleräter
10.02.2007, 19:43
Der Punkt ist, dass die Engine bei verschiedenen Leuten vermutlich unterschiedlich funktioniert - der erste steuert z.B. die Schuesse ueber einen PP und zeigt die Kugel als Picture an, der naechste macht das ganze Event-basiert, usw.


- Schüsse müssen Charsets sein und dürfen sich nur geradlinieg (aber auch diagonal) bewegen

Ich habe doch extra die Regeln geschrieben, damit die Engine gleich funktioniert. Der Roboter darf sich z.B auch nur mit Geschwindigkeit 4 bewegen...


Du solltest erstmal was Scripten, dass man ein funktionierendes KS hat, in dem ein Roboter vom Spieler gesteuert werden kann, das stellst du dann zum Download, und da bauen die Spieler ihre KIs rein. Ansonsten hat das Ganze keinen Zweck, weil alles zueinander inkompatibel ist.

Wie meinst du das jetzt? Ein AKS, bei dem man einen Roboter selbst spielt und der andere eine KI hat?


Und der RMXP rockt den 2k eh :P

Aber den hab ich nicht :)

Metro
10.02.2007, 19:54
Meine Frage stand immer noch im Raum :rolleyes:


Gibts denn da auch ne Jury/Crew/Leute die Bewerten ? Wenn ja würd ich mitmachen... Ausserdem würd ich niemals mitmachen, da das ziemlich lange dauern wird so ne KI zu machen

was für ein Contest... :rolleyes:

Lukas
10.02.2007, 19:54
Ich spreche davon, dass die Kampf-Scripte der Spieler (die Kampf-Scripte, nicht die Roboter) intern voellig verschieden funktionieren werden, auch wenn sie exakt das gleiche tun. Daher solltest du ein Kampf-Script bauen, in das die anderen ihre KIs packen koennen.

Fleräter
10.02.2007, 19:57
@ Metro


Eigentlich sollte ja jeder kampf eindeutig entschhieden werden. Und da gibts 2 Möglichkeiten:
Entweder es gibt ne Jury, die die Kämpfe anguckt und dann sagt wer gewonnen hat oder ich veröffentliche die Kämpfe und jeder im Forum kann sich dann den Kampf praktisch als Spiel runterladen und schreibt dann wer bei ihm gewonnen hat.

Ich hab das jetzt als Antwort auf deine Frage gedacht...


Ich spreche davon, dass die Kampf-Scripte der Spieler (die Kampf-Scripte, nicht die Roboter) intern voellig verschieden funktionieren werden, auch wenn sie exakt das gleiche tun.
Ich verstehe aber nicht was daran so schlimm ist, das macht doch gerade den Contest aus, dass die KIs intern verschieden funktionieren und die, die am besten funktioniert gewinnt.

~Hauptmann Krey~
10.02.2007, 20:01
ich würde mq zustimmen.
Es hört sich zwar alles interesant an, aber das ganze wirkt noch etwas unfertig.
Du kannst ja auch keinen sportlichen Ballcontest machen, in dem Handballer gegen Fußballer antreten und sich gegenseitig mit Bällen abschrotten müssen

edit:
du gebrauchst öfter das Wort "wir".
Wer noch? Eko?

Fleräter
10.02.2007, 20:05
du gebrauchst öfter das Wort "wir".
Wer noch? Eko?

XD Ne nur ich. Da wo ich "wir" verwende (
was wir noch bräuchten) is gemeinr im Sinne ich und die (imaginären) Teilnehmer ^^

Lukas
10.02.2007, 20:24
Ich verstehe aber nicht was daran so schlimm ist, das macht doch gerade den Contest aus, dass die KIs intern verschieden funktionieren und die, die am besten funktioniert gewinnt.

Ich spreche davon, dass die Kampf-Scripte der Spieler (die Kampf-Scripte, nicht die Roboter) intern voellig verschieden funktionieren werden,
Was ist daran jetzt so schwer zu verstehen?

~Hauptmann Krey~
10.02.2007, 20:27
Noch mal für Leien:
Es gibt verscheidene Möglichekiten ein Kampf-KS zu gestalten.
1. Der, sagen wir mal, "Laserstrahl" kann mit Pictures, Kampfanimationen oder mit Charsets angezeigt werden.
2. Die Variablenberechnung kann total verschieden sein und sich evtl. in die Quere kommen
3. Statt Variablenberchnung kann man auch (wäre sinnlos, ich weiß) TABs nehmen.
Und noch viiiiieeeelllll mehr.
Wie du siehst mein mq nur, dass du ein einheitliches Regelgesetz machen sollst.

Oder ich habe was falsch verstanden.

Lachsen
10.02.2007, 20:28
Ich stimme da MQ im Prinzip zu.
Das Problem an diesem Contest ist, dass die Teilnehmer zu viele Freiheiten beim erstellen der Roboter haben.

Wenn das ganze ein wahrer "KI"-Contest werden soll, sollten eigentlich alle Aktionen der Roboter vorprogrammiert sein und der Teilnehmer muss nur noch eine Prozedur schreiben, mit der die Aktionen zum Zeitpunkt t ausgewählt werden.

Und selbst wenn man darüber hinaus auch noch flexible Aktionen erlauben will, so sollte doch zumindest die Kollisionsabfrage festgelegt werden oder generell die Art, wie die Roboter getroffen werden.

Denn ansonsten kann man schon alleine bei der Kollisionsabfrage ziemlich viel rumcheaten, z.B. eine Treffer-Abfrage mit Pixel-Coordinaten um das eigentliche Event herum.

Und Schluss endlich wird es ein Theater werden, die ganzen Roboter gegeneinander tatsächlich antreten zu lassen.
Denn so wie ich das lese, müssen die Roboter nichtmal die richten Event IDs haben, sondern der Organisator will das entsprechend anpassen.
An jenen Organisator: Ist dir klar, was für ein Aufwand das sein kann?
Theoretisch kann man beliebig oft im Event Skript Werte von anderen Events abfragen und das müsste alles angepasst werden.

Also das mindestes was meiner Meinung nach so ein Contest brauch, ist ein Muster-Projekt, dass die Teilnehmer dann erweitern können, wo alles, was vorrausgesetzt wird, bereits implementiert ist. Das Minimum dafür ist:
- Kollisionsabfrage.
- HP-Änderung-Funktionen der Roboter (am besten direkt von der Kollisionsabfrage aus aufgerufen und nicht vom Skript des Teilnehmers...)
- Wann der Kampf beendet wird.

Der Teilnehmer sollte eigentlich nur folgendes implementieren:
- Wie sich der Roboter bewegt.
- Wie der Roboter seine Schüss abschießt und wie diese herumfliegen

Da die Regeln ja schon jetzt einige einschränkungen bei den Schussbahnen machen, würde ich gerade diese einfach vorprogrammiren.
Alles was der Spieler dann machen müsste, wäre an einer Stelle im Skript ein paar Werte setzen (Flugrichtung, Geschossart usw.) und dann einfach einen Switch anzusetzen, damit das Event AUTOMATISCH (so wie vorgegeben) vom Roboter fliegt wie es soll...

Also insgesammt gefällt mir die Idee für den Contest schon, aber so wie er hier gestellt ist, wird er
1. Kaum Teilnehmer finden, da viel zu viel kram selber implementiert werden muss, was lange dauert.
2. im Endeffekt daran scheitern, das zuviel unterschiedlicher Code synchronisiert werden muss, da es viel zu wenig einschränkungen gibt und keine Vorlage.

Also ich würde am ehesten einen Neuanfang vorschlagen. So ein Contest muss besser vorgeplant sein.

Aber selbst wenn man eine gute und einfach bedienbare Vorlage anbietet, wird es schwer, genug Teilnehmer zu finden. Ich denke zwar schon, dass es mehr als 2 sein werden, aber dennoch. Und im Endeffekt ist auch die Frage, wer das ganze durchzieht.

@V-King: Nein, es würde nicht ewig lange dauern, so eine KI zu basteln, sofern es keine Super-KI ist. Du übertreibst da etwas, imho.
Und nein: Ein Kampf zwischen zwei KIs sollte, abgesehen von den Fehlern wegen der Incompatibilität, keinen relativ modernen (3-5 Jahre alten) Rechner in die Knie zwingen, sofern elementare Grundregeln, wie das einhalten einiger Wartepausen in Schleifen, beachtet werden und die Teilnehmer nicht auf die Idee kommen, irgendwelche tollen A*-Algorithmen und der gleichen mit dem Maker umzusetzen (aber wer sowas drauf hat, kann es auch performant hinbekommen)
Und nein: Ich kann keine Performance-Wunder auf dem rm2k schaffen.
Das Ballspiel würde auf besagten 400 MHz Rechner stocken. Sehr.

C ya

Lachsen

Fleräter
10.02.2007, 20:28
Was ist daran jetzt so schwer zu verstehen?

Ich glaub jetzt hab ichs http://www.multimediaxis.de/images/smilies/old/3/idee1.gif
Ok dann mach ich erstmal wie du vorgeschlagen hast ein Kampskript.

EDIT

wie viele Felder legt ein Event mit Geschwindigkeit 4 bzw 5 in einer Sekunde zurück?

Kann mir das jemand beantworten?

Caine Luveno
10.02.2007, 20:51
Als ich KI Contest gelesen habe, dachte ich zunächst, cool, mal was für die Techniker (nix mit Zeichnen, Mappen und so'n Krams). Aber Ich stimme Lachsen voll und ganz zu.

Eine Vorlage bei denen die Spieler ledeglich das Roboter-Event anpassen müssen wäre sinnvoll. Dann liese sich das ganze auch leichter zusammenfügen.

Wenn man diese dann gegeneinader kämpfen lassen will wird es schwierig. Denn die Variablen und Switch die man unter Umständen noch brauchen könnte, denn ein bisschen Freiheit sollte man haben,

Der Ersteller des Roboters müsste also sozusagen 2 Versionen machen. Für den Fall das er Spieler 1, oder 2 ist. Aber das ist ja noch relativ machbar.

Vorallem, wenn der Organisator das ganze zusammenbauen will, und bei einem komplexen Script aus Versehen (kann ja passieren, man ist ja kein Roboter ;-) ) einen Fehler macht und die KI nicht mehr so geht wie sie soll gibt es auch wieder Probleme.

Lachsen
10.02.2007, 20:55
Kann mir das jemand beantworten?
Hier:

Ein Schritt mit der Geschwindigkeit "Normal" dauert In "Wait": "0,1 Sek" + 2x "0,0 Sek" (also 8x 0,0 Sek)
Ein Schritt mit der Geschwindigkeit "2xSlower" dauert In "Wait": "0,2 Sek" + 4x "0,0 Sek" (also 16x 0,0 Sek)
Ein Schritt mit der Geschwindigkeit "4xSlower" dauert In "Wait": "0,4 Sek" +8x "0,0 Sek" (also 32x 0,0 Sek)
Ein Schritt mit der Geschwindigkeit "8xSlower" dauert In "Wait": "0,8 Sek" +16x "0,0 Sek" (also 64x 0,0 Sek)
Ein Schritt mit der Geschwindigkeit "2xFaster" dauert In "Wait": 4x "0,0 Sek"
Ein Schritt mit der Geschwindigkeit "4xFaster" dauert In "Wait": 2x "0,0 Sek"

Und 6 x 0.0= 0.1 (bei Wait-Zeit)

also Ein Schritt dauert so gesehen 8/60 Sekunden bei Normal und 4/60 bei 2xFaster (ja, doppelt so schnell)

Also soviele Schritte in der Sekunde:
Norma (4): 60/8 = 15/2 = 7,5
2xFaster (5): 60/4 = 15

Und den Thread könntest du mal lesen:
http://multimediaxis.net/showthread.php?t=71

C ya

Lachsen

CapSeb
10.02.2007, 21:58
tjoa, das ganze erinnert mich an diese Roboter-Fußball-Weltmeisterschaft. Und weil wir keine Hunde-Hardware haben (je nach Klasse unterschiedlich) nehmen wir einfach ...keine Hardware.

Das Problem liegt dann auf der Hand: Diese Wetmeisterschafts-Teilnehmer versuchen mit ihrer individuellen Software die vorgegebene Hardware und die allgemein gültige Physik des Balles oder eben der Spieler (Roboter) zu nutzen, zu umgehen oder auszutricksen.

Man müsste also ein solches Szenario nachahmen. Das geht am besten wie schon Lachsen oder andere beschrieben haben. Nur ich würde dabei noch konsequenter vorgehen. Lediglich fünf Aktionsbefehe sind möglich: hoch, runter, links, rechts und schießen. Deren Ausführung ist vorgegeben. Außerdem darf man auf die Untergrund-ID (Wand oder frei) und die Gegner Position zugreifen. Hinzu kommt frei Berechnungsmöglichkeiten und Bedingungsabfragen von Variablen. Mehr nicht (hoffe das ich da nix Notwendiges vergessen habe).
Aber unabhängig davon ist die Frage des Sinns eine andere. KI bedeutet Künstliche (= nachgeahmte) Intelligenz. Daher ist es nur sinnvoll eine solche zu entwickeln, wenn der Mensch selbst anstatt der Roboter/KI dieses Spiel-Szenario spielen könnte. Und das ist bei diesem Schusswechsel nicht wirklich möglich. Zwei Spieler würden daran nur wenig Spaß finden.
Die Fußballer haben da etwas ganz anderes: Hätte man eine Fernbedingung in der Hand, würde der bessere gewinnen und nicht der mir dem besseren Durchhaltevermögen.
Deshalb müsste man den Contest-Rahmen ersteinmal auf ein spannenderes und skillabhängigeres System erweitern.


http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif

Lukas
10.02.2007, 22:05
Ich wuerde uebrigens keinen leeren Raum nehmen, sondern auch irgendwelche (optimalerweise unterschiedlich grossen) Sachen in den Raum stellen, damit man Deckung nehmen kann.
Bei zwei Robotern in einem leeren Raum wird das Ganze auf "Ich gehe auf eine Linie mit dem Gegner, schiesse auf ihn, verlasse die Linie und fange wieder von vorne an" herauslaufen, was bei 2 Bots, die so agieren, extrem langweilig wird.

Edit:
Argh, hab die Sektion im Anfangspost wohl uebersehen. Sorry, mein Fehler.

CapSeb
10.02.2007, 22:08
Gegenstände auf der Arena
Auf der Arena gibt es 10 zufällig verteilte Hindernisse, hinter denen die Roboter Deckung suchen können (Die Hindernisse blocken Schüsse)

Das stimmt. Aber daran hat der ... ... "Entwickler" auch schon gedacht.

Nathrael
11.02.2007, 02:26
Also ich bin durchaus interessiert...ich werde auf jeden Fall teilnehmen.

Wie Lachsen gesagt hat, manbraucht eine Art Template.
Auf der Map müssten folgende Events drauf sein:

-Roboter 1
-Schuss 1
-Schuss 2
-Schuss 3
-KI (Ja, die KI extern halten damit das ganze übersichtlicher ist.)
-KI 2nd
-KI 3rd
-LP-Anzeige

Und diese auch noch für Roboter 2.

3 Schussevents würden das ganze etwas interessanter machen meiner Meinung nach.

Achja, mir fällt gerade auf...darf man die Schüsse als "Phasing Mode/Start Slip Trough" einstellen? Denn das zusammen mit einer simplen Wegfindungs-KI würde die Kämpfe dann seeehr kurz und seeehr ähnlich machen....

Dhan
11.02.2007, 09:06
Ich nehm ma an, bei diesen Bedigungen wäre kein Roboter blöd genug, sich treffen zu lassen, schließlich kann er aufgrund der Positionen der Bullets und des Feindes ausrechnen, welche Felder gefährlich sind.
Daher käme es extrem stark auf die Verteilung der Hindernisse an. Sprich, Glück gewinnt.
Ne nette Idee, nur halt nix für den Maker

Zur Geschwindigkeit: http://www.multimediaxis.net/showthread.php?t=71 <<< Eröffnungspost

Kelven
11.02.2007, 09:54
Ist dieser Thread jetzt nur die Vorstellung einer Idee, oder schon der Contest selber? Wenn ich mich nicht irre, wurde der Contest nicht mit uns Mods abgesprochen, was Bedingung ist, damit er hier durchgeführt werden kann.

V-King
11.02.2007, 10:21
Ist dieser Thread jetzt nur die Vorstellung einer Idee, oder schon der Contest selber? Wenn ich mich nicht irre, wurde der Contest nicht mit uns Mods abgesprochen, was Bedingung ist, damit er hier durchgeführt werden kann.

Ich denke, er war zuerst dazu gedacht, ein Contest zu sein. Aber ich würde den Thread vielleicht doch mal offen lassen, da sich jetzt mehr ne Diskussion darüber gebildet hat, ob sich der Thread lohnt oder nicht und warum.

Und Diskussionen sind gut :D

Venoran
11.02.2007, 11:03
Ich weiß nicht, ob ich mit meinen bescheidenen Fähigkeiten überhaupt hier mitreden darf, aber was mich betrifft, so ist das gegebene Szenario von 20 x 15 Feldern viel zu berechenbar.
Die Bots müssten sich weder einen weg suchen, noch sich in eine gute Feuerposition bringen, sondern nur drauf los rennen und ballern.

Und was sind überhaupt die Berwertungskritierien?
Wer kriegt die Bots dazu, sich gegenseitig so schnell wie möglich zu zerstören?
Wessen Skript ist am einfachsten nach zu bauen?

Außerdem sollten die Organisatoren bzw. Bewerter selber die Erfahrung haben, um das auch richtig bewerten zu können, und ich habe den Eindruck, dass dieser Contest eher dafür ausgelegt wurde um an ein einfaches AKS-Skript zu kommen, damit man es in sein Projekt einbauen kann.

Kelven
11.02.2007, 13:33
@V-King
Ich wollte den Thread nicht schließen. ;)

An sich finde ich so ein Robotergekloppe in der Realität ja interessant, zumindest wenn die sich richtig beharken und das nicht so langweilig wie in dieser einen Sendung ist, die mal vor einigen Jahren im Fernsehen lief. Aber auf dem Maker? Ich weiß nicht so recht. Oder ist es gar nicht so gedacht, dass die Community die Kämpfe als Video präsentiert bekommt?

Wie ja schon einige vorgeschlagen haben, ist es jedenfalls besser die Möglichkeiten der Teilnehmer einzuschränken. Z.B. könntest du extra für den Wettbewerb eine Art Code-im-Code schreiben - ein Befehlssatz für die Roboter - und aus dem müssen die Teilnehmer dann das Steuerprogramm für die Roboter entwickeln.

Man könnte natürlich auch ganz anders an einen Scriptcontest herangehen und den Teilnehmern bestimmte Aufgaben stellen, die sie lösen müssen.

PrinZZ
11.02.2007, 13:50
Es gibt keine Kriterien nach denen die Jury geht. Der Roboter der überlebt ist der Gewinner und muss sich gegen andere behaupten, je nach dem wie der Contest abläuft.

Phönix Tear
11.02.2007, 14:22
Ich muss mich da glaube ich Dhan anschließen. So wie ich das sehe wären die Kämpfe (selbst mit nur einem Leben) bei einer einfach gestrickten KI vieeel zu einfach, sodass sie evtl niemals beendet werden würden.
Stellen wir uns die einfachste Möglichkeit vor:
Roboter 1 berechnet, dass Roboter 2 in seinem Schussradius ist. Er feuert. Roboter 2 registriert, dass Roboter 1 geschossen hat. Er weiß also nun, dass Roboter 1 mit hoher Wahrscheinlichkeit genau auf sein Feld schießt. Als reaktion bewegt er sich einen Schritt in die Richtung, in der kein Hindernis steht. (natürlich weg vom Schuss. Wenn der Schuss von vorne kommt würde er sich logischerweise nicht nach hinten bewegen ^^°.) Sind in beiden Richtungen Hindernisse wird der Abstand zum Schuss berechnet, und überprüft ob die Zeit reicht um 2 Schritte zu gehen, die Hindernisse also zu umlaufen. *Schwups* ist Roboter 2 ausgewichen. Nun bringt sich Roboter 1 erneut in Stellung und feuert wieder, Roboter 2 wiederhohlt seine Prozedur. Laaanweilig xD.
Gut, nun kennt man diese Eigenschaft, also versucht man Roboter 1 zu verbessern. Lassen wir ihn 3 Schuss der Reihe nach auf alle Felder um Roboter 2 abfeuern. Dieser kann sich nun nicht mehr sicher sein, welche Felder bedroht sind. Er versucht also gleich 2 oder mehr Felder auszuweichen. Da die Schüsse seines Feindes vergleichsweise langsam sind, sollte er dies mit genügend Abstand auch gut schaffen. Als Ergänzung baut man also am besten noch eine Abfrage ein, die erreichen soll, dass der eigene Roboter immer einen gebührenden Abstand einhält.
Schön, was kann man jetzt noch einbauen... Roboter 2 muss auch schießen können (ich gehe hier mal davon aus, dass Roboter 2 der eigene, Roboter 1 der von jemand anderem ist, von dem man ausgeht, das er spezielle Fähigkeiten hat, welche man kontern will). Da die Schüsse nur linear fliegen dürfen, hat man kaum eine andere Möglichkeit, also genau so wie Roboter 1 zu reagieren. Man schießt drei Schüsse auf die Felder um den Roboter ab. Natürlich könne man auch darauf hoffen das der Roboter in die richtige Richtung ausweicht, und alle auf eine Seite abschießen, sodass der Feind 4 Schritte machen müsste, um auszuweichen. Evtl, hat dieser dann sogar eine Abfrage, welche ihn hinter einem Hindernis stehen lässt, sodass er gar nicht getroffen wird.
Tja, so beballern sich beide Roboter, ohne das einer von ihnen getroffen wird. Und wenn, dann nur weil gerade kein Hindernis in Reichweite war, oder weil sie sich so genähert haben, das ein Ausweichen unmöglich ist. Dann gewinnt aber wieder der, der zuerst geschossen hat, bzw. ein Hindernis zum blocken hatte.

So gesehen ist ein KI Contest zwar eine nette Idee, hat aber für den großen Aufwand wenig Ergebnis. Wenn es doch noch sehr viel mehr Möglichkeiten geben sollte die KI mit diesen Vorgaben auszuschmücken bin ich gerne Bereit meine Meinung zu ändern.
Trotzdem bin ich momentan der Auffassung, dass die Roboter mehr können sollten, um einen guten Kampf zu gewährleisten. Verschiedene Waffen wären z.B. nett, die so etwas wie Mana verbrauchen, welches sich langsam wieder auflädt. So muss der Roboter entscheiden, wann er welche Waffe verwendet.
Oder gleich Aktionspunkte, um die Taktik zu erhöhen. Eine Bewegung kostet 10, ein normaler Angriff 20 und dann je nach stärke der anderen Waffen kostet die Aktion immer mehr. Außerdem Regeneriert der Roboter pro Sekunde z.B. 5 Aktionspunkte (100 wären dann Maximum).
Als Extrawaffen kämen dann Abprallgeschosse (schwer zu machen ^^°), Granaten (Flächenschaden und evtl überwinden von Hindernissen), Minen (maximal 1ne, die dann aber auch mit Flächenschaden), Zielsuchraketen (immer genau auf Ziel, wenn ein Hinderniss kommt, explodieren sie eben) und vielleicht ein kleines Spezial wie eine Druckwelle in Frage (macht keinen Schaden, hält aber den Gegner auf Abstand). Natürlich könnte man diese Liste beliebig erweitern, sollte es aber nicht übertreiben.
Dies würde imo die Kämpfe sehr viel interessanter machen. Problem dabei ist natürlich der Skripttechnische Aufwand. Auch hier könnte man wieder für alles eine Vorausberechnung einbauen, jedoch ließen sich die meisten davon wieder Kontern, sodass sich etwas ähnliches wie eine Endlosschleiffe ergibt. Irgendwann gibt dann einfach jeder Skripter auf und entscheidet sich, eine grundlegende "Taktik" einzubauen, nach der sich der Roboter verhält. Und diese Taktik entscheidet dann letztendlich wer gewinnt...

Ist dann aber wirklich schwer zu machen ^^°.

mfg
Phönix Tear

Edit:
Mit der Einstellung der Schussart könnte man ja auch wieder sehr leicht Cheaten und den eigenen Roboter einlesen lassen, wie der Feindliche Schuss fliegen wird. Dann sollte es noch besser möglich sein auszuweichen. Das größte Problem wird dann wohl die Bewegung des Roboters bleiben...

Fleräter
11.02.2007, 14:25
@ Lachsen Danke!


Ist dieser Thread jetzt nur die Vorstellung einer Idee, oder schon der Contest selber? Wenn ich mich nicht irre, wurde der Contest nicht mit uns Mods abgesprochen, was Bedingung ist, damit er hier durchgeführt werden kann.

Sry das wusste ich nicht. Aber bisher ist es ja sowieso noch ein Contestentwurf.


Also ich bin durchaus interessiert...ich werde auf jeden Fall teilnehmen.

Wie Lachsen gesagt hat, manbraucht eine Art Template.
Auf der Map müssten folgende Events drauf sein:

-Roboter 1
-Schuss 1
-Schuss 2
-Schuss 3
-KI (Ja, die KI extern halten damit das ganze übersichtlicher ist.)
-KI 2nd
-KI 3rd
-LP-Anzeige

Ich bin jetzt gerade dabei, eine Beispiel KI zu bauen, die man dann als Vorlage benutzten kann, damit die Event IDs und Variablen später übereinstimmen.
Und die von dir aufgezählten Events sind dann in der Vorlage dabei, nicht nur die Events sondern auch die Schussbahnen und Kollissionabfragen. Um einen Schuss abzufeuern kann man unter diesen neun Möglichkeiten wählen:

http://img262.imageshack.us/my.php?image=laserschusspj9dj7fm0.png

Also, wenn der Roboter schiessen soll, aktiviert man zuerst den Schalter "Laser 1" und stellt dann die "Variable Schussart Laser 1" auf einen Wert von 1-9. Dann fliegt der Schuss eben in die eingestellte Richtung.



Achja, mir fällt gerade auf...darf man die Schüsse als "Phasing Mode/Start Slip Trough" einstellen? Denn das zusammen mit einer simplen Wegfindungs-KI würde die Kämpfe dann seeehr kurz und seeehr ähnlich machen....

Nein, weil die Schüsse ja von Gegenständen geblockt werden können.


Oder ist es gar nicht so gedacht, dass die Community die Kämpfe als Video präsentiert bekommt?

Doch entweder als Video oder als "RPG-Film".

übelster Held
11.02.2007, 14:36
ich hat ja vor längeren schon mal im bevorstehenden
technik kontest im quartier *werbung mach* den vorschlag gemacht,
KI's gegeneinander antreten zu lassen...
doch der vorschlag wurde schnell wieder (von mir selber^^)
verworfen, weils einfach mit den maker zu aufwendig für
den Betreiber des kontestes ist... (ich persönlich hätte nämlich
keinen bock, die KI für gegner 1 und 2 zu schreiben
*zufaul um variablen abzuändern sei*)
mit pointern auf die variablen zu zugreifen gänge zwar, dann
dürfte man aber im scipt selbst nicht pointer verwenden und
man müsste die variablen aufteilen (teilnehmer a bekommt 1-100,
teilnehmer b 101-200 blablabla)...
is letzten endes zu viel buckel (nicht nur für die teilnehmer^^)

wenn ihr KI's gegeneinander antreten lassen wollt...
dann besorgt euch die beta oder alpha oder was das ist,
von blobby Volly 2... da kann man das ganz einfach erstellen, die ki...^^

mfg
üH...

Caine Luveno
11.02.2007, 16:33
Ich muss mich da glaube ich Dhan anschließen. So wie ich das sehe wären die Kämpfe (selbst mit nur einem Leben) bei einer einfach gestrickten KI vieeel zu einfach, sodass sie evtl niemals beendet werden würden.
Stellen wir uns die einfachste Möglichkeit vor:
Roboter 1 berechnet, dass Roboter 2 in seinem Schussradius ist. Er feuert. Roboter 2 registriert, dass Roboter 1 geschossen hat. Er weiß also nun, dass Roboter 1 mit hoher Wahrscheinlichkeit genau auf sein Feld schießt. Als reaktion bewegt er sich einen Schritt in die Richtung, in der kein Hindernis steht. (natürlich weg vom Schuss. Wenn der Schuss von vorne kommt würde er sich logischerweise nicht nach hinten bewegen ^^°.) Sind in beiden Richtungen Hindernisse wird der Abstand zum Schuss berechnet, und überprüft ob die Zeit reicht um 2 Schritte zu gehen, die Hindernisse also zu umlaufen. *Schwups* ist Roboter 2 ausgewichen. Nun bringt sich Roboter 1 erneut in Stellung und feuert wieder, Roboter 2 wiederhohlt seine Prozedur. Laaanweilig xD.
Gut, nun kennt man diese Eigenschaft, also versucht man Roboter 1 zu verbessern. Lassen wir ihn 3 Schuss der Reihe nach auf alle Felder um Roboter 2 abfeuern. Dieser kann sich nun nicht mehr sicher sein, welche Felder bedroht sind. Er versucht also gleich 2 oder mehr Felder auszuweichen. Da die Schüsse seines Feindes vergleichsweise langsam sind, sollte er dies mit genügend Abstand auch gut schaffen. Als Ergänzung baut man also am besten noch eine Abfrage ein, die erreichen soll, dass der eigene Roboter immer einen gebührenden Abstand einhält.
Schön, was kann man jetzt noch einbauen... Roboter 2 muss auch schießen können (ich gehe hier mal davon aus, dass Roboter 2 der eigene, Roboter 1 der von jemand anderem ist, von dem man ausgeht, das er spezielle Fähigkeiten hat, welche man kontern will). Da die Schüsse nur linear fliegen dürfen, hat man kaum eine andere Möglichkeit, also genau so wie Roboter 1 zu reagieren. Man schießt drei Schüsse auf die Felder um den Roboter ab. Natürlich könne man auch darauf hoffen das der Roboter in die richtige Richtung ausweicht, und alle auf eine Seite abschießen, sodass der Feind 4 Schritte machen müsste, um auszuweichen. Evtl, hat dieser dann sogar eine Abfrage, welche ihn hinter einem Hindernis stehen lässt, sodass er gar nicht getroffen wird.
Tja, so beballern sich beide Roboter, ohne das einer von ihnen getroffen wird. Und wenn, dann nur weil gerade kein Hindernis in Reichweite war, oder weil sie sich so genähert haben, das ein Ausweichen unmöglich ist. Dann gewinnt aber wieder der, der zuerst geschossen hat, bzw. ein Hindernis zum blocken hatte.

So gesehen ist ein KI Contest zwar eine nette Idee, hat aber für den großen Aufwand wenig Ergebnis. Wenn es doch noch sehr viel mehr Möglichkeiten geben sollte die KI mit diesen Vorgaben auszuschmücken bin ich gerne Bereit meine Meinung zu ändern.
Trotzdem bin ich momentan der Auffassung, dass die Roboter mehr können sollten, um einen guten Kampf zu gewährleisten. Verschiedene Waffen wären z.B. nett, die so etwas wie Mana verbrauchen, welches sich langsam wieder auflädt. So muss der Roboter entscheiden, wann er welche Waffe verwendet.
Oder gleich Aktionspunkte, um die Taktik zu erhöhen. Eine Bewegung kostet 10, ein normaler Angriff 20 und dann je nach stärke der anderen Waffen kostet die Aktion immer mehr. Außerdem Regeneriert der Roboter pro Sekunde z.B. 5 Aktionspunkte (100 wären dann Maximum).
Als Extrawaffen kämen dann Abprallgeschosse (schwer zu machen ^^°), Granaten (Flächenschaden und evtl überwinden von Hindernissen), Minen (maximal 1ne, die dann aber auch mit Flächenschaden), Zielsuchraketen (immer genau auf Ziel, wenn ein Hinderniss kommt, explodieren sie eben) und vielleicht ein kleines Spezial wie eine Druckwelle in Frage (macht keinen Schaden, hält aber den Gegner auf Abstand). Natürlich könnte man diese Liste beliebig erweitern, sollte es aber nicht übertreiben.
Dies würde imo die Kämpfe sehr viel interessanter machen. Problem dabei ist natürlich der Skripttechnische Aufwand. Auch hier könnte man wieder für alles eine Vorausberechnung einbauen, jedoch ließen sich die meisten davon wieder Kontern, sodass sich etwas ähnliches wie eine Endlosschleiffe ergibt. Irgendwann gibt dann einfach jeder Skripter auf und entscheidet sich, eine grundlegende "Taktik" einzubauen, nach der sich der Roboter verhält. Und diese Taktik entscheidet dann letztendlich wer gewinnt...

Ist dann aber wirklich schwer zu machen ^^°.

mfg
Phönix Tear

Edit:
Mit der Einstellung der Schussart könnte man ja auch wieder sehr leicht Cheaten und den eigenen Roboter einlesen lassen, wie der Feindliche Schuss fliegen wird. Dann sollte es noch besser möglich sein auszuweichen. Das größte Problem wird dann wohl die Bewegung des Roboters bleiben...


Nja, dine Ausführungen beschreiben zwei KI's die beide mehr oder minder das gleicht tun und somit praktisch, im Rahmen dieses Contest, "perfekt" wären.

Aber die KI kann Fehler machen, und darauf wird es hinauslaufen. Viele, können das von dir beschriebene Szenario eventuell auch gar nicht Scripten, manche schaffen vielleicht sogar eine KI, die in er Lage wäre die KI die du beschrieben hast zu einem Fehler zu verleiten damit man den gegnerischen Roboter treffen kann.

Im gesetzten Falle das Roboter 2 dem ersten Anfangs nur ausweicht um auf eine gute Chance zum kontern zu warten, liese sich dieser sicher relativ schnell in eine Ecke drängen aus welcher er sich dem angegebenem Schussradius nicht so schnell befreien kann, ohne gleich mehrfach getroffen zu werden, und damit wäre der Kampf schon vorbei.

Also eine Herreusforderung besteht schon. Verschiedene Waffenaerten und Aktionspunkte wären natürlich auch schön. Was die Sache allerdings vereinfachen würde, wenn jeder Spieler beispielsweiße 3 Roboter hätte mit jeweils 3 Trefferpunkten, und man das ganze als eine Art Sideview KS bauen würde. Ergo, rundenbasiert. Der Aufwand steigt dann zwar eine KI zu bauen die 3 Roboter aufeinander abstimmt, aber der Taktik gehalt ebenso und es wird sicherlich einfacher zu Scripten. Ebenso lässt sich weniger vorraussehen wie der Gegner vorgehen wird. Denn bei einem 1on1, werden beide im Endeffekt das selbe versuchen: Ausweichen->Gegner austricksen->Schießen und treffen.

CapSeb
11.02.2007, 18:34
"Rundenbasierend" würde eine Performancebelastung mindern aber auch den Spielgehalt völlig verändern.
Ich nenn meine Einstellung nochmal: Eine KI ist nur dann sinnvoll, wenn der Mensch gegen eine schlechte KI begründet gewinnen und gegen eine perfekte begründet verlieren würde. Fußball ist da das Paradebeispiel.
...aber auf den Gegner Schießübungen veranstalten ... ausbaufähig.

Fleräter
11.02.2007, 18:53
Fußball ist da das Paradebeispiel.

Wieso eigentlich gerade Fußball?
Da spielt doch nicht nur Intelligenz eine Rolle, sondern auch Kraft und Ballfähigkeit.

Paradebeispiel wäre Schach.

Manuel
11.02.2007, 19:07
Wie sieht es eigentlich mit der Random-Sequenz aus? IMHO sollte man es im Contest unbedingt verhindern, Ereignisse zufällig geschehen zu lassen, sonst gerät das Ganze zum Glücksspiel... Was ja nicht ganz im Sinne dieses Wettbewerbs sein kann, oder?^^

CapSeb
11.02.2007, 19:14
Ich beziehe mich da auf die Weltmeisterschaft, kA wie die heißt. Dort treten Roboterteams gleicher Hardware gegeneinander an. Da es das bereits gibt und es immer wieder zu der Disskussion kommt, wann denn Roboter ein menschliches Team oder gar Top-Vereine schlagen können, habe ich den Bzug zum Wort "Paradebeispiel" hergestellt.
Schach ist klar auch so ein Kandidat. Nur eben nicht Roboter sondern reine KI und rundenbasierend. Bei schießenden Charas kam mir eher der Fußballgedanke.


http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif

Bauzi
11.02.2007, 23:45
Aha... d.h. ich setz ein Paaralleles Event auf:


Set myHP to 999999
Wait 0.0sek

und ein zweites auf:


Set GegnerHP to 0
Wait 0.0sek

fertig... Alles tot, ich gewinne! .-.

Wenn jemand sagt: Das ist unfair!
Dann sag ich: Das ist nicht unfair, weil dein Roboter das nicht abwehren konnte...

Ohne Rahmenbedingungen wird das nicht gut enden...
--------------------------------------------------------------------------


Wieso eigentlich gerade Fußball?
Da spielt doch nicht nur Intelligenz eine Rolle, sondern auch Kraft und Ballfähigkeit.

Paradebeispiel wäre Schach.
Fußball IST das absolute Paradebeispiel für Roboterkämpfe, weil sie eine enorme KI brauchen um den Ball und alles andere zu erkennen und zu verarbeiten und dann muss die Hardware natürlich auch passen.

Lukas
12.02.2007, 19:36
Fuer Roboterkaempfe ist Fussball wirklich recht gut geeignet, da muss man visuellen Input verarbeiten und einen Haufen Bewegungen koordinieren, und das ganze dazu schnell. Ein Schachroboter muss im Wesentlichen ein Feld und ein paar Figuren erkennen und einen Arm bewegen koennen.
Wenn's nur auf die KI ankommt, duerfte denke ich Schach besser geeignet sein, das stellt hoehere Anforderungen an die Intelligenz als solche.

Caine Luveno
13.02.2007, 16:39
Naja, Schwach-KI's haben einen wesentlichen Nachteil. Und zwar die Tatsache das ein Computer sehr viele Züge im vorraus berechnen kann. Ich hab mal gehört man sei ein guter Schachspieler wenn man 5 Züge vorraus denken kann. Ein Computer schafft relativ, bei gleicher Bedenkzeit, 100 davon. Insofern ist die Warscheinlichkeit sehr hoch das der computer weiß was geschehen wird. Daher ist eine Schwach-KI relativ leicht unbesiegbar zu machen.

Beim Fußball sieht das aber anders aus.

Fleräter
13.02.2007, 18:05
Fußball IST das absolute Paradebeispiel für Roboterkämpfe, weil sie eine enorme KI brauchen um den Ball und alles andere zu erkennen und zu verarbeiten und dann muss die Hardware natürlich auch passen.

Es ging mir jetzt aber um eine KI, die begründet gegen einen Mensch verliert oder gewinnt. Und da ist imo Fußball kein Paradebeispiel, weil es nicht nur von der KI (Taktik) abhängt wer im Fussball gewinnt, sondern auch von der Leistung einzelner Spieler.
Schach ist da anders:


Naja, Schwach-KI's haben einen wesentlichen Nachteil. Und zwar die Tatsache das ein Computer sehr viele Züge im vorraus berechnen kann. Ich hab mal gehört man sei ein guter Schachspieler wenn man 5 Züge vorraus denken kann. Ein Computer schafft relativ, bei gleicher Bedenkzeit, 100 davon. Insofern ist die Warscheinlichkeit sehr hoch das der computer weiß was geschehen wird. Daher ist eine Schwach-KI relativ leicht unbesiegbar zu machen.

Die KI gewinnt also damit begründet, dass sie mehr Züge vorraus sehen kann.

Oder seh ich da jetzt irgendwas falsch? Die Diskussion hat zwar jetzt wenig mit dem eigentlichen Thema zu tun, aber ich find sie trotzdem interessant :)

----------------------------------------------------


Ohne Rahmenbedingungen wird das nicht gut enden...


Hast du eigentlich den 1. Post gelesen? Es gibt doch Rahmenbedingungen:


Regeln beim "Bau"
- jeder Kämpfer hat nur 3 Leben
- jeder Kämpfer darf sich nur in Geschwindigkeit 4 bewegen
- nur Fernkampf
- Schüsse machen 1 Punkt schaden --> nach 3 Treffern hat man verloren
- Schüsse müssen Charsets sein und dürfen sich nur geradlinieg (aber auch diagonal) bewegen
-mögliche Abweichung: +/- 3 Felder (siehe Bild)
-Geschwindigkeit der Schüsse: 5
- keine Zielverfolgungsraketen oder sowas
- 0.3 Sekunden "Schussnachladezeit"
-maximal 3 Schüsse "gleichzeitig" unterwegs (NEU)
- die Roboter müssen immer in Bewegung sein, das heißt sie dürfen höchstens 3 Sekunden an einer Stelle stehen bleiben


Aha... d.h. ich setz ein Paaralleles Event auf:

Code:

Set myHP to 999999 Wait 0.0sek

und ein zweites auf:
Code:

Set GegnerHP to 0 Wait 0.0sek

fertig... Alles tot, ich gewinne! .-.

In diesem Fall hättest du sogar verloren, weils genau anders rum geht, man verliert wenn die eigene HP>/=3 ist. :p

übelster Held
13.02.2007, 20:44
...Ein Computer schafft relativ, bei gleicher Bedenkzeit, 100 davon...
*pfeif*
den computer will ich sehn...
"Es gibt mehr Möglichkeiten, eine 40 Zügige Schachpartie zu spielen, als Atome im Weltall. Viel Spaß beim Erstellen einer Datenbank."

mfg
üH

Nathrael
14.02.2007, 15:20
Naja, wenn ich mir so deine Rahmenedingungen nochmal genauer anschaue...das ganze ist schon sehr auf Glück getrimmt. Ich wäre dafür, wenn man die Robbis Capture the Flag, King of the Hill, oder andere "Aufgaben" spielen liesse, das Schlachtfeld mit fallen etc. spicken....

- keine Zielverfolgungsraketen oder sowas
- 0.3 Sekunden "Schussnachladezeit"
-maximal 3 Schüsse "gleichzeitig" unterwegs (NEU)

:( Keine MGs....keine Raketenwerfer....nur "Robbipistole"....

- jeder Kämpfer hat nur 3 Leben

Ich würde das ein wenig heraufsetzen, etwa auf 5....dafür aber auch

- nur Fernkampf

wegtun. Flammenwerfer, Kreissäge etc. bietet neue Möglichkeiten.
Rein fürs Schiessen reicht die simpelste KI aus.


Ansonsten, würd ich mal sagen, probieren wir doch "Makerfussball" aus....da bräuchte man schon eine um einiges bessere KI. Allerdings sollte man dann "Mannschaften" aus je zb. 3 Robotern erstellen, nicht nur einen.

Lachsen
14.02.2007, 16:34
Wer im Bezug auf KI tatsächlich so vorgeht, einfach den Kompletten "Search-Tree", nach der Besten Möglichkeit durchzugehen, wird mit der weile an der Laufzeit scheitern.

Bei einer Schachpartie 100 Züge in der gleichen Zeit, wie ein Mensch 5 Züge vorrausdenken kann? Nicht wirklich.

Diese Laufzeit entwickelt sich EXPONENTIELL und gerade beim Schach gibt es für jeden Zug sehr viele Möglichkeiten, einen Pfad entlang zu gehen.

Es gibt Verfahren bei der KI, um sowas zu optimieren (alpha-betha Search z.B.).
Solche Verfahren verlangen allerdings eine Heuristic, die dem Computer verrät, wie gut er mit der aktuellen Situation in etwa da steht.
Diese Heuristic ist allerdings nicht trivial zu bestimmen. Es gibt verschiedene Aspekte, die man numerisch wertet und dann gewichtest zusammen addiert.

Die richtigen Gewichtungen müssen dann allerdings gefunden werden. Dies geschieht dann meistens durch rumprobieren, d.h. automatisches rumprobieren. Man ändert die aktuellen Gewichtungen (leicht) zufällig und lässt die neue KI, gegen die alten antreten und schaut, ob es besser ist. Das widerholt man so lange, bis sich eine wirklich gut KI-Entwickelt hat.

Nun, ist solch eine optimale heuristic vorhanden, muss der Computer nicht bis zum Ende des Search-Trees gehen, um eine relativ gute entscheidung zu treffen. So überhaupt, kann man eine feste Anzahl von Zügen angeben, die der Rechner vorrauschauen muss, um die beste Entscheidung zu treffen.

Wirklich gute Schachspieler denken nichtmehr über jeden Zug nach und überlegen, ob es der beste ist. Stattdessen, haben sie die meisten Formationen eines Schwachspiels bereits im Kopf und können intuitiv schon beurteilen, was hier der beste Zug ist.

Nun und ein Computer kann, vorrausgesetzt, er hat genug speicher und viel Zeit zum trainieren, etwas ähnliches hinbekommen und das im Endeffekt natürlich schneller.

Deswegen wurde auch in der Vergangenheit der Champion unter den Schachspieler von einer KI geschlagen.

Naja, ich musste einfach mal etwas AI-Kram loswerden.

Soviel von meiner Seite

C ya

Lachsen

CapSeb
14.02.2007, 17:14
@Nathrael: Deine Veränderungsvorschläge scheinen mir zusehr auf äußere Erscheinungsformen abzuzielen. Man müsste zuerst ein Grundsystem festlegen bevor man über Lebens- und Schussanzahl sowie MGs, Raketen- und Flammenwerfer nachdenkt.
Aber die Richtung ist schon mal nicht falsch.


Ansonsten, würd ich mal sagen, probieren wir doch "Makerfussball" aus....da bräuchte man schon eine um einiges bessere KI. Allerdings sollte man dann "Mannschaften" aus je zb. 3 Robotern erstellen, nicht nur einen.
Tja, dazu müsste ein Fußballspiel gebaut werden. Danach erst die KI.
Wer machts? :D


http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif

Caine Luveno
14.02.2007, 17:52
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif

Das sieht nach freiwilliger Meldung aus ^^

Ach, 3 Roboter, und ein Kampffeld a la Heroes of Might and Magic 5 sollte doch vollkommen reichen. Dann legt man für jeden Roboter entspreche Regeln fest. Unterschiedliche Waffen wären auch sinnvoll. Sodass wenn einer stirbt. der z.B. die Streuwaffe hatte, es keinen zweiten damit geben kann und die anderen beiden ihre Taktik "überdenken" müssen.

Dann wäre es aber mehr ein Taktik als ein KI Contest.

Und es dürfte ja wohl nicht so schwer sein, 3 halbwegs intelligente Roboter zu bauen.

Bauzi
14.02.2007, 18:05
Äh... Ihr baut meiner Meinung nach immer unrealistischere Luftschlösser für einen Contest.

CapSeb
15.02.2007, 19:33
Das sieht nach freiwilliger Meldung aus ^^
§laugh
Der weiße Handschuh gehört nicht mir. Und wer da immer so'n aufdringlichen Gruß unter meine Posts setzt weiß ich auch nicht. Wahrscheinlich ist das mein Forenbot. Der korrigiert meine Rechtschreibung und verändert sogar den Inhalt, wenn es mal wieder keinen Sinn ergibt, wie zum Beispiel diesmal. Um dann mir die Schuld in die Schuhe zu schieben, kommt mein Name noch drunter. Vielleicht krieg ich ihn ja rum, das Fußballgerüst zu proggen. Da gehts ja schließlich auch um Bots.
Bin mal gespannt, was er aus diesem Post macht... :rolleyes:


http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_063.gif

EDIT: Ganz vergessen, was sinnvolles zu schreiben: Hier wird ja jetzt der Unterschied zwichen KI-test und Taktik-KI-Test gemacht. An den Threadersteller: Was war der ursprüngliche Sinn des Contests? Dann kann man ja dementsprechend sich entscheiden oder eben klar stellen, dass man was anderes machen sollte.