Layout Checker Algorythm 2 [distances]
Ollj
our themepark-stalking nightmare Fade Join Date: 2002-12-12 Member: 10696Members
![Ollj](http://www.df5jz.de/Ollj/avatar.gif)
<div class="IPBDescription">lots of text for (c++) coding freaks</div> Layout Checker <b>1</b> accidently posted in mapping forum, check it too...
<a href='http://www.unknownworlds.com/forums/index.php?act=ST&f=1&t=25599' target='_blank'>Layout checker algorythm 1 [r_speeds]</a>
This one is REALLY difficult to understand (My typos dont make it better) but this might help Strategy planning and ballancing new maps.
If you dont get what I mean check the "definitions" on the bottom. You may read them first...
If you still dont get it it could be because I am no expert in all the Matrix- and labyrinth-algorythms that are neccessary for this.
The idea:
What if each hive/CC "knows" the distance to each other Hive/CC? (simplest)
What if each Hive/CC/ResNode knows the distance to each other Hive/CC/ResNode? (average)
What if each Hive/CC/ResNode/Crossing knows the distance to each other Hive/CC/ResNode/Crossing? (advanced)
What If we add siege ranges and the advantage of long hallways? (master)
You could somehow calculate the "distance atractivity" of each point and avoid "unballanced" maps like ns_caged (just a fact that one hive is WAY more attractive than the other one)!
And it optimizes the placement of Resources!!!
Example of "Advanced":
At first each crossing point must know how far its away from its neighbour crossing points (connected by paths).
This creates a "distance line model" ignoring any arcitecture.
You could use the Waypoints of some Bots in some way
OR use/code some pathfinding routines and use them on an overview .bmp
OR just find them out yourself and enter each manually.
Now in the tool each res/CC/Hive checks how far its away from CC (marine atractivity) , each hive (3 hive atractivities) , and all other Res.
(A Resource close to CC is more attractive for marines, close to the start hive attractive for aliens. What ever point each team controls changes the atractivity of all other points (atractivities get added))
Now we have 4 attractivity arrays of each main point including each resource node each with 2 Ways of moving (walking and Wallklimbing/flying)
AND one aditional attractivity array for each resource!.
Whats missing now are variable factors like:
"What team controls what point" (places near many vents less attractive for marines than places with wide paths, as alien its the other way around)
"is it more important to kill/secure the 2nd hive than getting res?" (simple variable that weights the 4 main point attractivities against the resource atractivities.)
"controlling points that are attractive (important) for the enemy with an outpost are more attractive for me" (fortifying around the enemy - e.g. aliens getting Mess hall early, Marines Sieging from an outpost).
"places with 2 entrances are more attractive than places with 6 (subspace hive) or the other way around (big outpost in mapcenter)" (this weights "fortifiing" agains "flexibility")
"amount of Jetpacks" drastically Changes the atractivity of points you just reach with them (red room).
...
<b>-> You get a "distance attractivity" map were you can "klick" each Hive/CC(/Res(/Crossing)) to make it belong to one team and you get the most attractive next point for each team (depending on the mentioned settings) in return.</b>
<b>Definitions:</b>
"distance" = 2 approximate Times to run from Point A to B as a
Just_Spawned_Marine (for all simple ways)
one_Hive_Skulk (for all vents)
If there is more than one way from any A to any B you could include "average distance" and "variation of distances"
"crossing" a point were 3 ore more paths meet each other OR were a Resource/Hive/CC is placed. Crossings could include Doors and elevators (but lets ignore it for this model).
"path" = Paths are connecting Crossings when you can move from one crossing to another without reaching a third crossing. There are at least 3 kinds of ways; Normal (marine), low vents (make marines slower), high vents (fliing only) . Paths could include "weldable" , "door/blockable" "elevator/blockable" flags (lets ignore this , too).
A "web" (Labyrinth) of paths and crossings connects all CC/Hive/Res to each other.
"distance atractivity" = the "must secure this point" factor of NS. Places of high atractivity have the biggest battles inside. But "distance atractivity" ignores the whole level geometry and does not show how difficult it is dor defend a point. It just shows how atractive that point is by its distance to ALL other points (this model is ignoring phase and weld feature somehow). "distance attractivity depends on the start hive and on your team.
*weldables. We can simulate weldables in this model by taking 2 versions of the map, one welded and one not.
*architecture. We can include the atractivity of level architecture by making a "defendable" factor for each path that determines (subjective) how easy it is to defend that point (most times long straight pahts are easier to defend for both sides!!) than W-shaped paths.
<a href='http://www.unknownworlds.com/forums/index.php?act=ST&f=1&t=25599' target='_blank'>Layout checker algorythm 1 [r_speeds]</a>
This one is REALLY difficult to understand (My typos dont make it better) but this might help Strategy planning and ballancing new maps.
If you dont get what I mean check the "definitions" on the bottom. You may read them first...
If you still dont get it it could be because I am no expert in all the Matrix- and labyrinth-algorythms that are neccessary for this.
The idea:
What if each hive/CC "knows" the distance to each other Hive/CC? (simplest)
What if each Hive/CC/ResNode knows the distance to each other Hive/CC/ResNode? (average)
What if each Hive/CC/ResNode/Crossing knows the distance to each other Hive/CC/ResNode/Crossing? (advanced)
What If we add siege ranges and the advantage of long hallways? (master)
You could somehow calculate the "distance atractivity" of each point and avoid "unballanced" maps like ns_caged (just a fact that one hive is WAY more attractive than the other one)!
And it optimizes the placement of Resources!!!
Example of "Advanced":
At first each crossing point must know how far its away from its neighbour crossing points (connected by paths).
This creates a "distance line model" ignoring any arcitecture.
You could use the Waypoints of some Bots in some way
OR use/code some pathfinding routines and use them on an overview .bmp
OR just find them out yourself and enter each manually.
Now in the tool each res/CC/Hive checks how far its away from CC (marine atractivity) , each hive (3 hive atractivities) , and all other Res.
(A Resource close to CC is more attractive for marines, close to the start hive attractive for aliens. What ever point each team controls changes the atractivity of all other points (atractivities get added))
Now we have 4 attractivity arrays of each main point including each resource node each with 2 Ways of moving (walking and Wallklimbing/flying)
AND one aditional attractivity array for each resource!.
Whats missing now are variable factors like:
"What team controls what point" (places near many vents less attractive for marines than places with wide paths, as alien its the other way around)
"is it more important to kill/secure the 2nd hive than getting res?" (simple variable that weights the 4 main point attractivities against the resource atractivities.)
"controlling points that are attractive (important) for the enemy with an outpost are more attractive for me" (fortifying around the enemy - e.g. aliens getting Mess hall early, Marines Sieging from an outpost).
"places with 2 entrances are more attractive than places with 6 (subspace hive) or the other way around (big outpost in mapcenter)" (this weights "fortifiing" agains "flexibility")
"amount of Jetpacks" drastically Changes the atractivity of points you just reach with them (red room).
...
<b>-> You get a "distance attractivity" map were you can "klick" each Hive/CC(/Res(/Crossing)) to make it belong to one team and you get the most attractive next point for each team (depending on the mentioned settings) in return.</b>
<b>Definitions:</b>
"distance" = 2 approximate Times to run from Point A to B as a
Just_Spawned_Marine (for all simple ways)
one_Hive_Skulk (for all vents)
If there is more than one way from any A to any B you could include "average distance" and "variation of distances"
"crossing" a point were 3 ore more paths meet each other OR were a Resource/Hive/CC is placed. Crossings could include Doors and elevators (but lets ignore it for this model).
"path" = Paths are connecting Crossings when you can move from one crossing to another without reaching a third crossing. There are at least 3 kinds of ways; Normal (marine), low vents (make marines slower), high vents (fliing only) . Paths could include "weldable" , "door/blockable" "elevator/blockable" flags (lets ignore this , too).
A "web" (Labyrinth) of paths and crossings connects all CC/Hive/Res to each other.
"distance atractivity" = the "must secure this point" factor of NS. Places of high atractivity have the biggest battles inside. But "distance atractivity" ignores the whole level geometry and does not show how difficult it is dor defend a point. It just shows how atractive that point is by its distance to ALL other points (this model is ignoring phase and weld feature somehow). "distance attractivity depends on the start hive and on your team.
*weldables. We can simulate weldables in this model by taking 2 versions of the map, one welded and one not.
*architecture. We can include the atractivity of level architecture by making a "defendable" factor for each path that determines (subjective) how easy it is to defend that point (most times long straight pahts are easier to defend for both sides!!) than W-shaped paths.
Comments
I've got too many things in the air to tackle this at the moment, but it could be a fun project to work on.