23 November 2009

//gruppendynamik in rts

einheit a steht an position x und steht im modus position verteidigen, d.H. einheiten in einem bestimmten reaktionsradius anzugreifen, eine bestimmte strecke zu verfolgen und dann wieder zu seiner ursprünglichen position x zurückzugehren.

das problem: umstehende einheiten werden ggf. nicht mit zuhilfe genommen.

beispiel: 2 einheiten stehen nebeneinander, beide haben den reaktionsradius 5. eine feindliche einheit nähert sich, erreicht den reaktionsradius von heinheit a, ist aber noch nicht im reaktionsradius von einheit b. einheit a wird die feindliche einheit angreifen, ein stück verfolgen und ggf. vernichtet. einheit b reagiert nicht. je nach einheitentypen hätte die feindliche einheit vernichtet werden können, wenn einheit b auch reagiert hätte.

lösung a: einen zusätzlichen "hilferuf" radius an jede einheit binden. wenn jetzt einheit a eine feindliche einheit in seinem reaktionsradius hat, wird einheit a erst sämtliche anderen freundlichen einheiten im hilferuf-radius alarmieren (sofern diese keine anderen befehle haben) und alle werden geschlossen auf die feindliche einheit reagieren.
nachteil an lösung a: durch einen großen hilferuf-radius werden u.U. auch einheiten alarmiert, bei denen es taktisch unklug wäre diese reagieren zu lassen. beispiel: zwischen einheit a und b ist eine mauer, einheit a alarmiert einheit b, einheit b müsste um zum feind von einheit a zu gelangen durch die mauer einen umweg durch eine feindliche stellung machen.

lösung b: ähnlich wie lösung a, nur mit einem wesentlich kleineren hilferuf-radius, und einem zusätzlichen radius für die maximale hilferuf-reichweite. dafür wird der hilferuf allerdings von einheit zu einheit weitergegeben, bis die maximale hilferuf-reichweite erreicht ist.
beispiel: einheiten a, b, c, d stehen in einer reihe. der eigene reaktionsradius aller 4 einheiten ist gleich groß. einheit b steht im hilferuf-radius von a, c im hilferufradius von b und d im hilferuf-radius von c, allerdings außerhalb des maximalen hilferuf-radius von a. eine einheit kommt in den reaktionsradius von a, aber nicht in den reaktionsradius einer der anderen einheiten. a triggert den hilferuf, weshalb für die kette auch der maximale hilferuf-radius von a gilt. b befindet sich im hilferuf-radius von a, wird deshalb auch für die feindliche einheit getriggert und setzt wiederum selbst einen hilferuf ab, welcher c erreicht. dieser reagiert auch auf den feind, da er sich im maximalen hilferuf-radius von a befindet, setzt selbst wieder einen hilferuf ab. einheit d erhält den hilferuf von c zwar, reagiert allerdings nicht, da er sich außerhalb des maximalen hilferuf-radius von a befindet.
erklärung: diese lösung verhindert wie lösung a einerseits das gezielte herausziehen von einheiten aus gruppen, andererseits bietet es auch eine lösung um das problem von einheit a zu umgehen, da einheiten hinter hindernissen nur schwerer unerwünscht mit erreicht werden können. durch den maximalen hilferuf-radius verhindert lösung b auch das aufstellen von ketten über die komplette karte hinweg, die ohne den maximalen hilferuf-radius alle geschlossen reagieren würden.

sonstiges: die komplette verfolgung mit allen einheiten bricht ab, sobald einheit a seinen maximal zulässigen weg von seiner zu verteidigenden position zurückgelegt hat. sollte einheit a vorher ausgeschaltet wird, so wird die zu verteidigende position x von eineheit a sowie die maximale verfolgungsreichweite von einheit a weiterhin im speicher behalten. die verfolgung durch alle anderen einheiten bricht erst ab wenn der feind sich die maximale verfolgungsreichweite von position x entfernt hat.
dies verhindert dass man die verfolgung der kompletten gruppe abbrechen kann, indem man einfach die eine einheit ausschaltet, welche die verfolgung ausgelöst hat.

0 Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]

<< Startseite