Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

03.06.2010, 00:35

Genau so ist es, und im zweifelsfall sollte man sich immer für gutes Design anstatt ein bischen mehr Leistung entscheiden, denn später wird das sonnst im chaos enden, und die 4 Byte pro NPC machst du dann wieder mit anderen Sachen, die du mit einem guten Design hättest vermeiden können, zu nichte.

Du musst das auch mal aus einer anderen Sicht sehen, denn in vielen Spielen, werden die NPCs durch Scripte gesteuert, die um ein vielfaches langsamer sind, als Hardcoded KI.

Wichtig ist, das du die wichtigen Sachen optimierst, beispielsweise Mathematische sachen, oder Renderings. Halt solche die nicht nur einmal pro Frame, sondern viele 100 wenn nicht sogar tausende male pro Frame ausgeführt werden.

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

12

03.06.2010, 17:55

In meinem aktuellen Projekt (Tower Defense Game) gibt es hauptsächlich bilaterale Beziehungen, sprich immer nur zwischen 2 Objekten. Die Zuweisung geschieht anhand des Typs der Objekte.
So gibt es Türme (IAttacker) und Creeps (IAttackable). Hat ein Turm kein Ziel, erfragt er sich bei der Szene ein IAttackable, dass er dann angreift.

Stirbt ein Creep, so erfragt es sich die SpielerResourcen und fügt dort den entsprechenden Kopfgeldbetrag hinzu.

Der Vorteil ist, dass so relativ sicher geregelt ist, dass Objekte auch nur das beeinflussen können, was sie sollen. Hätte jedes Objekt Zugriff auf die ganze Map, könnte theoretisch auch von jedem Objekt jedes andere Objekt verändert werden.

Zum Thema optimieren:
Don't do it!
for experts: Don't do it now!

Im zweifelsfall pickt man sich eh immer die falschen Stellen raus. Und meistens ist der Drawcall deutlich langsamer als alles andere.

So Far...
Laguna
Portfolio runvs.io | Gamejolt | itch.io | PEWN | Twitter