Bots

      Ich hatte zu dem Thema schon mal "Lua" angesprochen.

      Dazu muesste einfach nur fuer Lua-Skripte Spielinterna verfuegbar gemacht werden ("Wo befindet sich Spieler X?", "Welches Item befindet sich auf Feld X,Y?" ...) und die Skripte muessten ueber Ereignisse informiert werden ("Spieler A stirbt durch Grund B auf Feld X,Y", "Spiel startet", "Spielzeit hat sich um 1 Sekunde verringert" ... "Spielfeld verkleinert sich", "...").

      Dann koennen geneigte Spieler selbst an der KI feilen (sich einen Nemesis heraussuchen, Strategien fuer "Itemprioritaeten" usw. ueberlegen).


      Ich denke das benutzte "Framework" Unity bietet Unterstuetzung fuer Lua. Es liegt also an Marco zu entscheiden, ob sowas praktikabel waere oder nicht. Fuer unser Spiel "TVTower" (nicht in Unity geschrieben, sondern mit BlitzMax) nutzt obig beschriebenen Ansatz.

      bye
      Ron
      Ja, Bots würden mich auch interessieren und ich denke ich werde das Thema nach der Level- und Spielmodusauswahl angehen.
      Ob ich das Mit Lua, Python oder ganz in Unity mache weiss ich noch nicht, muss mal sehen wie komplex das wird.

      Ggf. fange ich erstmal einfach an und baue ein paar "Zombies", die den Spieler fangen wollen und ihm die Extras klauen.

      Der Vorteil von Python/Lua ist: Die Spieler koennen an der KI tuefteln, ohne dass sie Zugang zum Quellcode - und der Moeglichkeit des Kompilierens haben.

      Wenn man dann doch mal 2 KIs findet, koennten die auch mal gegeneinander antreten.


      @ Zombies
      Na dann, schauen wie es PacMan gemacht hat und einfach auch so umsetzen. Naja, und natuerlich "da liegt eine Bombe, lieber Abstand halten" nicht vergessen.


      bye
      Ron
      Oh... nein nein, auf Geld-ausgeben wollte ich nicht hinaus.

      Hier mal ein paar Denkanstoesse:

      moonsharp.org (lua-c# binding)
      Youtube-Video, dass moonsharp einsetzt:


      github.com/xebecnan/UniLua (lua 5.2 port nach c#)

      github.com/NLua/NLua
      Youtube-Beispielanleitung:



      Da ich selbst kein Unity(3D) nutze, kenne ich mich nicht mit den Scripting-Moeglichkeiten aus, eventuell kann Unity ja nativ "UnityScript" interpretieren (cross-platform). Dann kann man das auch nutzen. Solange die Skripte programminterne Funktionen aufrufen koennen (vereinfacht: "Player.MoveLeft()") und das Programm Funktionen der Skripte aufrufen kann ("OnUpdate()", "OnCollectItem(itemTypeID)"), sollte alles moeglich sein.


      bye
      Ron