Autor Beitrag
Blackbird
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 23.02.04 14:45 
Moin zusammen!

Meine Frage bezieht sich wie gesagt auf KI Programmierung. Hierbei ist mein Problem allerdings nicht "wie" ich die KI programmieren muss, sondern "wann" ich sie rufen muss.

Beispiel: Hab bereits ein kleines Airhockey Spiel programmiert (noch net ganz fertsch aber egal).
Die KI (determiniert) wird dann gerufen, wenn der Puck vom Gegenspieler berührt wird (grob gesagt).
Damit ist klar wann ich die KI rufen muss. So!

Wie sieht das jetzt aber aus, wenn ich eine etwas komplexere Umgebung hab, meinetwegen einen KI Spieler in einem egoshooter ähnlichen Spiel. Muss ich da die KI in jedem Frame rufen ? Könnte ein bischen auf die Performance gehn oder ?
Ausserdem sind dann die Bewegungen zu plötzlich und abgehackt.

Wie macht man des nun also ?
Seniman
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 42


D6 Pers
BeitragVerfasst: Mo 23.02.04 15:33 
Hallo Blackbird,

ich denke schon, dass du die KI in jedem Frame aufrufen musst. Falls und ernsthafte Performance-Probleme bekommst, dann solltest du dir eher Gedanken zur Optimierung machen. z.B: Gegner, die sich weit vom Spieler entfernen, bewegen sich gar nicht mehr (vielleicht auch nicht so eine gute Idee, je nach Verwendung) oder der Gegner überlegt nur jeden 10ten Frame, was er eigentlich machen will und in den anderen führt er es aus usw...
Mach dir einfach mal Gedanken dazu

Grüße
Seniman
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Mo 23.02.04 23:52 
soweit ich weis, ist es (zumindest bei ego-shootern) so, das wirklich nur jeden x-ten frame die ki aufgerufen wird. dies ist auch nützlich um die spielstärke der ki zu beeinflussen. je weniger frames pro zeitabschnitt die ki aufgerufen wird, desto langsamer braucht sie, bis sie "kapiert" was gerade passiert. durch diesen verzögerungsmoment hat der spieler die möglichkeit, noch in letzter sekunde eine aktion auszuführen (schießen, in deckung gehen) und nicht von ner ki, die jeden frame mitbekommt, analysiert und handelt in grund und boden gespielt zu werden. duch den verzögerungsmoment ist es für die ki auch schwerer sich bewegende ziele zu treffen oder auf richtungswechsel des ziels zu reagieren.

_________________
Patrick
im zweifelsfall immer das richtige tun!!!