TitanSeal
Champion
- Registriert
- 5 Juli 2004
- Beiträge
- 7.993
- Punkte Reaktionen
- 7
nachdem ich mich für die skillbeschreibungen zwangsweise wieder mit den reichweiten befasst habe, möchte ich hier verschiedene aus messungen resultierende ergebnisse festhalten.
1) der sichtbare bereich
der sichtbare bereich umfasst bei einer auflösung von 800x600 (niedriger wirds ja hoffentlich niemand spielen) grundsätzlich 25 subtiles in der breite und 35 subtiles in der höhe. ein subtile ist dabei bekanntermaßen die kleinste von einer spieleinheit oder einem objekt belegbare fläche, daher lässt sich der sichtbare bereich schön mit items auslegen:
nach links und rechts überblicken wir somit jeweils 12 subtiles, nach unten sind es 16 und hinauf 18 (sprich wir stehen nicht ganz mittig). nachdem blizz laut anzeige 1 subtile als 2/3 meter definiert, ergibt dies einen sichtbaren bereich von 16,67x23,33 metern.
sollte in den grafik-einstellungen allerdings die perspektive eingeschalten sein, so überblicken wir horizontal je 11 subtiles (mittig), nach unten 13 und nach oben sind es 19,5. damit verkleinert sich der sichtbare bereich ein wenig, wir kommen so auf 23x33,5 subtiles oder 15,33x22,33 meter.
2) geschosse
sämtliche missiles sind nicht an das subtile-netz gebunden, da dieses für diesen zweck zu grob wäre und die missile-flugbahnen somit zu weit einschrenken würde. daher haben sie in der missels.txt einen eintrag für velocity und range, welche der allgemeinen meinung zufolge die geschwindigkeit in pixel/tick und die lebensdauer in ticks angeben. das mag soweit stimmen, nur dürfen wir nicht unbedingt von 800 pixeln breite ausgehen. verschießen wir beispielsweise eine nova mit 800 pixeln reichweite, so wird diese etwas weiter als eine bildschirmbreite fliegen (etwa 26 subtiles, gezählt ab dem benachbarten subtile).
unter der annehme, dass die geschosse im horizontalen mittelpunkt erzeugt werden, können wir somit die halbe bildschirmbreite auf optischem wege messen. verändern wir die reichweite der nova so lange bis sie optisch den bildschirmrand erreicht, so erhalten wir einen ungefähren wert von 375-380 pixeln für die halbe bildschirmbreite (bei eingeschaltener perspektive sind es nur etwa 350-355 pixel). diese optische messung ergibt jedoch für jede missile einen etwas anderen wert, da alle missiles unterschiedlich groß sind. ein eisblitz mit gleicher reichweite würde beispielsweise noch geringfügig über den bildschirmrand hinaus fliegen.
weiters können wir daher über die schadensanbringung die wirkliche reichweite messen. dabei legen wir uns horizontal eine schmale goldspur, die einerseits von uns und andererseits von einem unbeweglichen gegner begrenzt ist. nehmen wir dabei einen abstand von 13 subtiles zum gegner, so können wir beispielsweise einen fallen (gegner haben ja auch unterschiedliche größen) noch knapp am bildschirmrand erkennen. die horizontale breite ist nun jene, bei der unser geschoss gerade noch den gegner trifft. folgender screenshot zeigt diesen messaufbau, wobei dieser mit eingeschaltener perspektive aufgenommen wurde:
die goldspur hilft uns in dem fall die missiles wirklich völlig horizontal abzuschießen und erleichtert uns zudem die bewegung auf dem subtile-netz.
hier ergeben sich nun allerdings wiederum unterschiedliche ergebnisse. während nova, eisblitz und eisstoß eine reichweite von 379 pixeln bis zum ziel benötigen, trifft die gletschernadel selbst mit 340 pixeln reichweite. verantwortlich dafür scheint ihr flächenschaden zu sein. nachdem dieser deaktiviert ist, braucht die gletschernadel 378 pixel reichweite bis zum ziel.
störend kann nun wie gesagt auch die startposition der missiles einwirken. sollte ein missile beispielsweise 30 pixel von der mitte entfernt generiert werden, so würde es auch 30 pixel weniger bis zum bildschirmrand erreichen. die 800 pixel nova die ich weiter oben erwähnte, flog etwa 26 subtiles weit (und traf einen gegner auf dem 26 subtile). die zählung begann ich dabei sicherheitshalber ab dem benachbarten subtile, für den fall das sie dort generiert wird. stellen wir uns jedoch exakt 1 subtile neben einen gegner und starten eine missile, so trifft diese nicht sofort. die startposition muss sich daher (falls sie nicht onehin mittig liegt) noch irgendwo innerhalb unseres center-subtiles befinden.
wenn wir also davon ausgehen, dass velocity die angabe von pixel/ticks ist, dann scheint der sichtbare bereich wohl keine 800 pixel breit zu sein. und warum dies überhaupt bedeutend ist? weil die umrechnung pixel -> subtiles/meter zwangsweise über den sichtbaren bereich erfolgt, sprich 25 subtiles werden mit 800 pixeln gleichgesetzt. ist der sichtbare bereich nun kleiner, so verfälscht sich auch die angabe sämtlicher geschossreichweiten.
bisher ging ich dabei natürlich immer von size1 missiles und gegner aus. während size1 objekte nur aus einem center-subtile bestehen, besitzen size2 objekte zusätzlich noch 4 x-förmig um ihr center-subtile angeordnete subtiles. die horizontale breite ändert sich dabei also nicht, daher kommt es bei all diesen versuchen zu keiner veränderung. wenn man die missiles dagegen diagonal verschießen würde, ergäbe sich vermutlich ein unterschied zwischen size1 und size2. mir ist allerdings die horizontale schon mehr als genug.
size3 objekte besetzten nun 13 subtiles, ausgehend von size2 also außen herum noch je 1 subtile angefügt. die horizontale breite beträgt damit 3 subtiles, nämlich 1 center-subtile und ein weiteres in jede richtung. damit werden size3 gegner bei horizontalem beschuss früher getroffen, bzw size3 missiles treffen die gegner früher. ein size 3 gegner wird dabei 31 pixel früher getroffen, ein size3 missile trifft 31 pixel früher. und bei size3 gegner und size3 missile sind es 31 + 30 pixel früher. ob ein subtile nun also 31 oder 30 pixel entspricht, können wir uns wohl aussuchen...
3) flächenzauber
die reichweiten von flächenzaubern scheinen glücklicherweise klarer zu sein als jene der geschosse. erstmals gibt es hier keine größenunterscheidungen, alle monster werden aus der gleichen entfernung getroffen (wohl abfrage nur im center-subtile). die angaben zur reichweite befinden sich dabei in der skills.txt, auch wenn diese dort nicht einfach übernommen werden kann.
meine tests beziehen sich hierbei nur auf statik, sollten allerdings für alle anderen skills genauso gelten (andernfalls werd ich bei nächster gelegenheit einen blizzard-programmierer erwürgen).
nachdem die angegebenen effekt-radien nicht stimmig schienen, ging man bisher davon aus, die werte seien als durchmesser angegebenen und müssen somit halbiert werden. bei größerenen reichweiten kommt es allerdings auch bei diesem system zu unstimmigkeiten. dazu habe ich nun eine testreihe durchgefüht, kann die ergebnisse ja mal posten falls interresse besteht:
01 / 01 / Nein(Kein Treffer bei Reichweite 1 möglich)
02 / 01 / Ja(Bei Size 3 Subtile 1 vom Gegner blockiert)
02 / 02 / Nein
03 / 02 / Ja
03 / 03 / Nein
04 / 03 / Nein
05 / 03 / Ja
05 / 04 / Nein
06 / 04 / Ja
06 / 05 / Nein
07 / 05 / Nein
08 / 05 / Ja
08 / 06 / Nein
09 / 06 / Ja
09 / 07 / Nein
10 / 07 / Ja
10 / 08 / Nein
11 / 08 / Nein
12 / 08 / Ja
12 / 09 / Nein
13 / 09 / Ja
13 / 10 / Nein
14 / 10 / Nein
15 / 10 / Ja
15 / 11 / Nein
16 / 11 / Ja
16 / 12 / Nein
17 / 12 / Ja
17 / 13 / Nein
18 / 13 / Nein
19 / 13 / Ja
in spalte 1 ist dabei der wert aus der skills.txt eingetragen, spalte 2 enthält den abstand zum gegner in subtiles.
zu lesen ist die tabelle daher folgendermaßen:
08 / 05 / Ja
08 / 06 / Nein
bei einem radius von 8 laut skills.txt treffe ich einen gegner in 5 subtiles entfernung. einen gegner in 6 subtiles entfernung treffe ich bei gleicher reichweite nicht mehr.
graphisch lässt sich dies folgendermaßen darstellen:
blau eingetragen ist der radius aus der skills.txt, die gemessenen werte sind rosa. und gelb sehen wir den halben radius, unter der annahme das der ursprungswert der durchmesser sei und daher halbiert werden müsse.
nachdem hier offenbar keine absolutverschiebung stattfindet, habe ich nach einem passenden multiplikator gesucht, der die radien aus der skills.txt nach rundung in meine gemessenen radien überführt. und dies ist bei einem multiplikator von 0,71 der fall, alle werte stimmten dabei überein. genauer wird es sich dabei möglicherweise um 1/wurzel(2) = 0,707 handeln.
die subtile-radien aus der skills.txt werden daher mit 0,71 multipliziert und können dann durch multiplikation mit 2/3 wie gewohnt in meter umgerechnet werden. die meter-angaben der anzeige sind dann natürlich falsch.
und wer das jetzt alles durchgelesen hat, darf sich einen keks nehmen:
mfg
Zuletzt bearbeitet: