Jump to content
Unity Insider Forum

Spiellogik / Gegnerverhalten


erixx

Recommended Posts

Hallo,

mein aktuelles Projekt ist ein SIngleplayer RPG aus der Ego Sicht (vergleichbar mit Skyrim, doch das Itemsystem errinnert mehr an die Diablo Serie).

Der Spieler erlernt Basisskills, diese kann er duch häufige Anwendung aufleveln. Durch höhere Skilllevel, erhöht sich auch deren Schaden, Dauer, Reichweite, Effizienz usw. Die Gegner und Items passen sich an das Spielerlevel an. Dh. je höher der Spieler ist ( Erfahrung bekommt man durch das Bekämpfen von Gegnern, Lösen von Quests, Sammeln von Ressourcen, Craften, usw), desto stärker sind auch die Gegner, und die Itemdrops haben höhere Chancen auf bessere Stats. So weit, so gut.

Doch nun spiele ich mit dem Gedanken, den Gegnern eine KI zu verpassen, die es ihnen erlaubt, selbstständig gegen andere Gegner, und gegen den Spieler, zu kämpfen. Dh, die Gegner entwickeln ihr Eigenleben. Erhalten auch Erfahrungen, durch das Bekämpfen von anderen Gegnern. Und steigen somit dann auch auf, unabhängig vom Spielerverhalten. Nun, wie würde sich das entwickeln?

Würden dann einige Gegner, extrem stark werden? Und somit für andere Gegner/den Spieler unbesiegbar werden? Wie würde das die Performance beeinflussen? Angenommen, es kämpfen 100 Gegner auf einer Map gleichzeitig gegeneinander? Was haltet ihr von der Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

also ich denke das würde schon gehen du müsstest halt sicherstellen das es keinen minimalwert als XP gibt, also falls dann 1 NPC irgendwann level 50 ist und level 1 mobs abfarmt und immer weiter aufsteigt, mach halt das er nur noch für level 45 monster dann XP bekommt und für die anderen nicht und sag deiner KI das sie nur gegner bekämft wenn sich das auch für sie lohnt, dann farmt dein NPC eben nicht alles ab.

 

Aber du hast es dann natürlich nicht mehr in der Hand wie stark die mobs sind und hast keinen Einfluss mehr auf die Spielerfahrung des spielers. Angenommen er fängt das spiel an und erkundet erstmal ne stunde das dorf, kommt dann raus und seht level 50 mobs gegenüber, dann wird er dein spiel das letzte mal gespielt haben. Denke von dem Standpunkt her würde ich abraten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es ist sicher möglich und mit ner Menge Regularien bestimmt auch gut zu balancen, wird aber extrem schwierig.

Z.B. dürfen sich Gegner gleicher Zugehörigkeit nicht abschlachten, was noch relativ einfach zu implementieren wäre ^^

Der Orkboss darf also seine Untergebenen nicht töten, alles andere aber schon.

 

Trotzdem wird's bestimmt einige Probleme geben.

Meine größte Sorge wäre die Performance, weil viele Monster natürlich einiges an Rechenleistung beanspruchen.

Was eventuell Abhilfe schaffen würde, wäre wenn man einen Simulator laufen lässt, der die KI von anderen Gebieten auf das wesentlichste runterbricht und das simuliert. Stelle ich mir allerdings sehr sehr schwer vor. Solltest du z.B. ein "Animation Based Combat" haben oder sowas wird's vllt sogar noch kniffliger.

 

Das Balancing wäre aber auch ein Drahtseilakt, weil was machst du wenn ein Spieler sich z.B. lange in Anfängergebieten aufhält oder einfach lange braucht bis er mal in die nächsten Regionen vorstößt, z.B. weil er ewig farmt, Sachen sammelt oder craftet?

Dann würden sich die Gegner in späteren Regionen ja in Unermessliche Levelhöhen leveln, sodass der Spieler keine Chance gegen sie hat.

Oder aber Spieler rushen einfach nur rum und clearen einfach alles und schalten dann aus oder widmen sich erst nach dem "Durchspielen" anderen Inhalten. Dann sind die Gegner noch klitzekleine Noobs, die keine wirkliche Gefahr für den Spieler darstellen und man fühlt sich permanent unterfordert..

Würde man einen Simulator laufen lassen oder die Gegneraktivitäten auf irgendeine Art und Weise kontrollieren, dann könnte man das sicherlich ganz gut vom Spielerfortschritt abhängig machen, allerdings stellt sich dann natürlich die Frage, warum man sich den Aufwand antut und nicht einfach die Gegner mit wohlüberlegten, gebalancten Levels in die Gebiete stellt ^^

 

Ich denke, dass es sowas bis dato noch nicht wirklich verbreitet gibt ist weniger eine Frage des Möglichen, sondern eher eine Frage des Sinnvollen ^^

 

Dass sich Gegner mal gegenseitig angreifen ist aber nie verkehrt, weil es imo die Welt authentischer macht und man auch mal ein paar lustige Taktikspielchen machen kann, indem man eine Gegnergruppe in eine verfeindete Gegnergruppe lockt ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Folgende Annahme:

 

Du hast ein großes Level mit vielen Monstern. Was diese Monster machen weiß der Spieler unter umständen gar nicht. Man kann schlecht überall gleichzeitig sein. Ab einer gewissen Skalierung des Spiels kommen auch einige Funktionen a la Level of Detail oder Occlusion Culling. Das bereitet dann auch mit der Logik der Monster eine große Herausforderung.

 

Dem entsprechent würde ich eher in absehbarer Nähe zum Spieler die Monster ihre Abläufe machen lassen. Die Eigenschaften der Monster würde ich dann eher von anderen Faktoren als das gegenseitige Bekämpfen abhängig machen. Es liegt aber auch viel daran welche Spielerfahrung du dem Spieler anbieten möchtest. Gibt es Triangulation? Also wenn es extreme starke Monster aus gibt, kann man dann auch einen einfacheren Weg wählen?

 

Es sind sowohl Game Design und technische Aspekte in der Idee involviert. Deswegen denke ich, dass es sinnvoll ist in Richtung des Spielerlebnis zu arbeiten. Manche Dinge, wie das die Monster sich gegenseitig bekämpfen, kann man vortäuschen um so eine gewisse Spielatmosphäre zu schaffen (eben genau dann, wenn der Spieler in die Nähe kommt, was interessiert den Spieler, was am anderen Ende der Welt ist?).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für eure Anteilnahme an meiner Idee. :)

Natürlich ist die Frage nach dem Sinn berechtigt.

Und auch die Balance zu finden/ halten scheint sehr schwierig zu werden.

Doch man könnte dies evtl mit folgendem "Szenario" lösen:

Ein Gegner levelt sich hoch, wird sehr stark. Dadurch wird er zB zu einem besonderen Bossgegner. Andere, kleinere gegner bekommen diese Information, und versuchen zusammen ihn zu besiegen.

Doch was bringt das dem Spieler?

 

Auch wären Möglichkeiten des Besiegens dieser Gegner auf andere Art und Weise, als das direkte Bekämpfen, machbar.

Zb durch das Auslösen von Steinlawinen usw.

Also Möglichkeiten zum Halten der Balance wären vorhanden, doch da kommt wieder die Frage nach dem Sinn auf.

Der Grund meiner Idee war der, dass ich selber bei dem Spielen meines eigenen Spieles noch überrascht werden möchte, und das stelle ich mir als wahre Kunst vor. :D

 

Nun, ich werde noch ein wenig weiter an der Idee tüfteln, freue mich sehr auf Ideen, und Einwände eurerseits.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem an Computerspielen ist einfach, dass dort nur das passieren kann was die Entwickler auch reingebaut haben ^^

D.h. es ist alles sehr vorhersehbar und man tut sich schwer dabei dynamische Inhalte zu generieren.. Denn selbst die dynamischen Inhalte müssen mal erstellt worden sein, wodurch sie begrenzt sind und daher auch wieder (irgendwann) vorhersehbar werden.

Dann hat hald mal ein Monster Level 50 und nicht 30, wodurch es schwerer wird, allerdings ist und bleibt es immer das gleiche Monster, es sei denn, dass man auch die Monster dynamisch auswechselt, wodurch sich allerdings auch wieder Muster ergeben werden.

Außer vielleicht man generiert die Monster selbst dynamisch damit sie unterschiedlich aussehen, andere Waffen haben etc, aber das Problem bleibt, da die Animationen etc nicht generiert werden können.

Gut.. sie könnten vielleicht schon, allerdings sieht's dann whs scheiße aus, wodurch man es wieder einschränken muss, klare Regeln definieren muss und so geht es immer weiter..

 

Man muss Programmen Strukturen geben und Regeln/Grenzen definieren was das Programm alles können darf und wie es das tun darf, wodurch alles sehr vorhersehbar bleibt.

Zumindest auf heutigem Stand der Technik ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja Tiwaz, da stimme ich dir zu. Klar, vieles kann man per Zufall generieren, doch die Strukturen und Einschränkungen werden vorgegeben.

Ich möchte den Gegnern verschiedene "Vorlieben" geben, dass jeder Gegner seine eigene Vorliebe, zB für Waffenarten, Skills, Attributeverteilung, Handlungen usw, entwickelt. Das muss natürlich logisch sein.

Ich könnte auch noch einen Schritt weiter gehen, den Gegnern Inventarsysteme erstellen, die Gegner auch Items aufheben und anlegen lassen, ihre Vorlieben unter anderem auch an die gefundenen Items anpassen, sie Ressourcen abbauen lassen, Items selber craften lassen, dann diese, wenn sie gut geworden sind, anlegen lassen usw...

Dadurch würden sich zB an bestimmten Ressourcengebieten sicherlich Interessante Kämpfe abspielen, andere Möglichkeiten bieten, als zB ein vorgegebener "Tagesablauf". Klar, die Handlungen der Gegner müssten auf den Ausbau ihrer Stärken basieren.

Doch der Spieler könnte zB einen Gegner lange verfolgen, beobachten, wie er Rohstoffe abbaut, sich daraus etwas herstellt, und ihn dann überfallen, um an das daraus gecraftete Item zu gelangen.

Klar, man könnte den Gegnern auf einfach zufallsgenerierte Tagesabläufe geben, diese dennoch als dynamisch wirken lassen und sich so manches sparen.

Würde dem Spieler der Unterschied auffallen?

 

 

 

 

Weitere Gedanken:

Da das Spielgeschehen in einer Welt spielt, die gefroren ist,und Nahrung sehr rar ist, spielt auch sie eine große Rolle. Kälte ist ein Faktor, der auch berücksichtigt werden muss. PC und NPCs haben Energiewerte, jede Tätigkeit kostet Energie, auch das Aufhalten in der Kälte, lange Sprints, Kämpfen, Ressourcen abbauen usw kosten Energie. Energie kann durch Schlaf, Nahrungsaufnahme, Aufwärmen am Feuer (was zB durch ein gekonnt gecasteten Feuerball auf eine geeignete, brennbare "Unterlage", die je nach Eigenschaft auch eine bestimmte Brenndauer hat, entfacht werden kann),aufgeladen werden.

So müsste auch jeder NPC sich nach seinen Energiewerten verhalten, sprich, er müsste sich auch hin und wieder am Feuerholz aufwärmen. Kälteressistenzen, und warme Kleidung schützen vor den Auswirkungen der Kälte. Doch auch Feuer kann gefährlich sein!

Nun nehmen wir einen Gegner, einen Goblin. Goblin friert, er macht sich auf die Suche nach Feuerholz. Den Feuerball hat er schon erlernt, sonst müsste er sich am vorhandenen Feuer im Lager seiner Gleichgesinnten aufwärmen.

Auf seinem Weg in den Wald, trifft er auf einen Yeti. Dieser Yeti hat einen Hohen Mut- und Wutwert. Er greift Goblin an. Goblin aber hat einen sehr geringen Wut- und Mutwert, und friert, dh auf Grund seiner Energie weiß er, dass er nicht lange kämpfen können wird. Er flüchtet. Vielleicht passiert auf seiner Flucht ein Unglück, oder ein Ereignis, das ihn von seiner Flucht abbringt. Vielleicht passiert dies aber auch dem Yeti, der den Goblin wohl noch ein wenig verfolgt, doch bald schon aufgeben muss, da er nicht ganz so flink ist.

Vielleicht hat Goblin aber auch einen hohen Intelligenzwert, und sucht in seinem Lager nach Verstärkung. Je nach Ruf bei seinen Verbündeten, und deren Vorlieben und Verfassung, wird entschieden, ob der Yeti angegriffen wird oder nicht.

Yeti macht sich auf den Weg in die Mine und baut Titanerz ab, aus dem er eine neue Rüstung schmieden möchte.

Leider fällt dem Yeti beim Abbau ein großer Steinbrocken auf den Kopf und er stirbt. Zurück bleibt sein gesamtes Inventar. Spieler wird sich freuen :D

 

 

Und noch mehr Gedankenfetzen:

 

Beim Tod des Spielers besteht die Möglichkeit (in Abhängigkeit von dem Stat Luck, in diesem Falle wohl ehr badluck, und diversen Gegenständen, die davor schützen, aber sehr rar sind und beim Eintreffen des Ablebens der Spielfigur verbraucht werden) seine gesamte oder nur einen Teil seiner Ausrüstung zu verlieren. Nun entsteht ein freier Loot, der für all die NPCs verfügbar ist. Aber auch für den Spieler selbst. So kann er, falls er schnell genug ist, und ihm kein Gegner zuvor kommt, seine Ausrüstung zurück erlangen. Natürlich könnte auch ein Gegner dies tun, und sich somit bereichern. Der Spieler müsste diesen Gegner, falls er nicht wieder von einem anderen Gegner erlegt wurde, finden und erlegen.

Auch könnten Kisten und Schlüssel davor schützen. Soll heißen, auf der Map werden Kisten verteilt. Zu jeder Kiste gibt es aber nur einen passenden Schlüssel. Hat man den richtigen Schlüsel, kann man die Kiste auf und zusperren. Die Gegner können dies auch tun. Stirbt man, und verliert diesen Schlüssel, kann natürlich der Gegner, falls er die passende Kiste findet, aufsperren und sich die Items nehmen. Auch werden NPCs ihre Gegenstände aus Platzmangel oder sonstigen, mir noch unbekannten Gründen, in Kisten verstauen. So kann der Spieler wahre Schätze finden. Oder Gelump. Das wird sich dann noch herausstellen. :D

 

Den einen Spieler wird das sicher auch frustrieren. Der andere sieht darin vielleicht eine Herausforderung.

 

Ich denke, wenn die KI "denken" kann, wird auch der Spieler selbst zum denken angeregt.

Und die "sich selbst enwickelnde" KI würde das Spiel in eine ganz andere Richtung lenken.

 

Und obwohl mir bewusst ist, dass die Verwirklichung dieser Idee fast utopisch erscheint, gefällt sie mir immer mehr.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...