Städte per Script bevölkern

  • Ich verstehe nicht, warum man kritisiert, dass man alle 0.5s durch ein Array iteriert, aber dann 60 mal pro Sekunde durch "allPlayers" mit "distance2D" durchläuft.

    Ich glaube das es sich hier um ein Missverständnis handelt. Die Aussage war nicht auf die Peformance bezogen sondern er darauf das bei bspw. 500ki jede Einheit "nur" alle 250sec ~ 4min überprüft wird. Da durch das Caching und die "geringe" Gruppenanzahl ki Mengen von 1000-1500 möglich wären, wäre die Abfrage zu selten.

  • das "Caching" ist nur ein Maginale Performance verbesserung. d.h. bei 50 - 150 ki sollte dort auch schluss sein. irgendwie habe ich das gefühl das Fabi 0 davon verstanden hat was ich ihm versucht habe zu erläutern. und die finger von sowas lassen sollte

  • @Joko Jain. Natürlich sind mit caching mehr KI bzw. gecachte Einheiten möglich. Da der pfh ja auch durch die gecachten einheiten laufen muss braucht er bei zu vielen Einheiten einfach zu lange bzw. müsste weitaus schneller gestellt werden als alle 0.5sec.

  • Da der pfh ja auch durch die gecachten einheiten laufen muss braucht er bei zu vielen Einheiten einfach zu lange

    Und wenn du dein Caching einfach ein bisschen organisierst? Lege doch eine Multidimensionale Liste an, wo du z.B. die entsprechenden EInheiten ihrer Ortschaft zuweist und im PFH dann nur die Distanz der Spieler zu den Ortschaften überprüfst und wenn sie nahe genug dran sind, dann (und nur dann) überprüfst du die entsprechenden Einheiten in der Ortschaft...
    Und wenn du tdem noch zu viele Städte hast, dann kannst du die ja auch wieder gruppieren, usw... ;)

  • Die Ideen mal ein wenig umgesetzt.

  • hat immer noch massive problem. 1. du gehst alle Units in einem Frame Durch. was im Worse Case einen Massiven Framelag erzeugt. und 2. du chached Immer die units und ignorierst checkst nicht ab ob diese schon gecached wurden. und wenn du die 2 sachen anpassen würdest würdest du bei meiner variante rauskommen.

  • hat immer noch massive problem. 1. du gehst alle Units in einem Frame Durch. was im Worse Case einen Massiven Framelag erzeugt. und 2. du chached Immer die units und ignorierst checkst nicht ab ob diese schon gecached wurden. und wenn du die 2 sachen anpassen würdest würdest du bei meiner variante rauskommen.

    Die Performance ist hier wesentlich besser als zu deiner Version. Es wird immer nur eine Unit pro Marker gecheckt und dann alle ge/unchached.