Legacy talk:Nodes

From Ring of Brodgar
Jump to navigation Jump to search
  • Everything is open for discussion.
  • Nothing (so far) is guaranteed to be correct.
  • Node System: The system that controls resources and there quality levels.
  • Node Map: Data structure containing all Q levels for a specific resource for the whole map.
  • Node Point: Minimap-grid center point.
  • Node Area: Area between 4 node points. Identical to minimap area, but for node data.

Node degrading

Something that passed my attention is that node degrading (now) depends on the quality of the item that's extracted. Or: the lower the survival of the character doing the extracting the slower the node quality degrades. Some math is of course involved here, unknown if its something simple or more complex. Not sure what might be good ways to tests this. (only makes sense for regenerating node-types that don't have fixed resources like mined resources.) --.MvGulik. 14:47, 19 November 2013 (EST)

The degrading seems to be tied directly to survival: (*theory*) a node is reduced by max(surv, q of product). And after that 'if product q <10 then product q=10'. The quality upgrade certainly happens later than Node Value reduction - a q16 clay node yielded ~200 pieces (16->10) with 30 surv and disappeared, while the same node (after 3 weeks of regenerating) with surv 1 char produced 1000 pieces and still have not run out. I will count how many pieces I got this time (sur1) and then do another check with a high surv char after the node regens (in a week or so) and do a precise count as well. Might give a clue how the formula looks. Ashghan (talk) 08:25, 5 March 2015 (EST)
Roger :) PS: If you can, can you keep count of the number of units given per returned q-value? Also, do you have Q-values on the other node points for the minimap your digging into. For clay they are probably at 10q, but that's not always the case. Note: You might like to see, based on the math below, how many 1q units might be generated. It might take longer than you expect. (Mmm, NTS: A node probably can be refilled while its being drained. TODO: How to identity and filter out this data in a good way) ... Note2: If your not sure where to dump raw data, you can always use your personal wiki page. --.MvGulik. 14:46, 5 March 2015 (EST)
I can only count q-value units for high surv char - will post them some time later, when the node has regenerated. Fo s1 it's always q10 (i assume q1 bumped internally to 10) - I'm counting those, at 2100 currently and the node still haven't run out. And it's a q16 max node. I'm afraid to count how many I'd get from a q 50 or q100. My bet is you get maxq times more from a node if you harvest with S1 instead of normal surv.

As for the refill - I've been at it for around 9 hours now (though some breaks happened), so 1 or 2 refills happened for sure. It may be the case that the node refills faster than I mine it. :D Also - I'm not sure if refills are +1 every 8 hours. There might be a fractional value every hour (or minute or second!) so for example - a node refills 0,125q every hour. Or ~0,002 every minute. Not sure if that can be tested.Ashghan (talk) 15:11, 5 March 2015 (EST)

Yup, confirmed my fears - sent an explo char to check the node and after those 9 hours it's is STILL at q16. Either it regens so fast or the drain is so slow as to be nonexistent (or perhaps even 0 due to some rounding)Ashghan (talk) 15:16, 5 March 2015 (EST)
Its generally best to work your way down. Or, got first for detecting the big, and guaranteed, changes. Than work you way down to smaller(time)/lower(Q) unit tests(if needed). That way you get a good initial feeling of what might be going on, which helps in determining if ... a 1q-survival character even has a change on draining a node. --.MvGulik. 00:55, 6 March 2015 (EST)

---

The following recursive math seems to give a general but reasonable match to how the quality decay behaves. Note that this is based on one Node area only, so it still highly experimental and uncertain at the moment. (Main problem with this math is that it gives a way to low number of units for the first batch(same q) of dug out units.)

New_NodeArea_Value = Old_NodeArea_Value - (Old_NodeArea_Value/1000)

Where:

NodeArea_Value = (NodePoint1+NodePoint2+NodePoint3+NodePoint4)/4

--.MvGulik. 03:33, 20 February 2015 (EST)

Node properties

Little brainstorm on node properties: (to be checked against known data, when I find it.)
Observed base properties: A Quality and a radius (presuming all nodes are circular), both would have a minimum, current, and maximum setting. These properties(Quality and radius) could be directly linked(formula). Where different node-types could be using different formula. Additional properties would be the decay and regeneration rates (for decaying node-types).
Minimum: Probably 1 or zero. Although from a extraction point of view, after the quality drops below 10 a node already stops giving of resources. The latter don't mean that the node is not still dropping in quality on unsuccessful extractions.
Unknowns: Are node radius fixed or variable. And/or what determent's the boundary. As in: when extraction actions have no effect on the node anymore. (there is probably a general fixed node radius/distance/other-feature in play, to limit the number of nodes(same-type) to be checked on a extraction action.)
And than there is of course the case of overlapping nodes, like soil-nodes. Where the question is how the extraction(node decay) is distributed among the different overlapping nodes.
Erm ... time so see what usable data I can find/add to this. (low priority, so it might take a while.) --.MvGulik. 09:52, 20 November 2013 (EST)

Above part is outdated. --.MvGulik. 04:00, 20 February 2015 (EST)
Quote: "The further from the source center a square upon which resource is collected the lower will be the quality." Rev: Finding_high_quality_water,_clay,_and_soil.
Water is click location related. (The point being here that in that case a tile-based location would be a bit ambiguous, and testing should use (somehow) the map-cords of the clicked digging location.). This also raises the question: Are nodes center points centered in/on tiles or not. If there not (which I think is not unlikely) ... things get a bit more tricky. --.MvGulik. 12:16, 20 November 2013 (EST)
Since all nodes are centered on intersections of main grid lines (viewable in Ender and Apoc, other clients as well) I'd assume the intersection point is 1,1 (or 0,0) and the quality decays with distance in map coords (11 per tile), rounded (up? down?). How exactly the formula for that looks, I have no idea. Probably maxq/distance for a linear decline or something with a logarithm (and not the natural one at that) for a decline faster closest to center. Ashghan (talk) 14:57, 16 February 2015 (EST)
It seems (based on a single test mind you) that Bilinear interpolation is used for determining the soil Q at any point inside the Node area. (note: the Bicubic interpolation page has a good Bilinear interpolation example image, that shows how the HnH quality distribution, for soil, in general might look like) --.MvGulik. 06:18, 21 February 2015 (EST)
Bilinear interpolation.png
Quote:"(presuming all nodes are circular)" - ore nodes may be an exception - I have found a tin node that was an elongated ellipsoid.*see below Also - other nodes are may not be exactly round either - It seems that the quality falloff is counted twice for diagonals. Example: a q35 node, 10 tiles from the center - q32, 10 tiles diagonally - q q30. Tested on a soil node in each 4 cardinal directions and ranges of 10 and 20. Numbers were sometimes slightly off since the neighboring nodes seem to have an effect, but the calculated falloff for diagonals was 1.92. I have not tested this behavior in depth for other node types, but it seems fish and water behave same way. Ashghan (talk) 14:57, 16 February 2015 (EST)
  • The tin ore node was a curious case where ore node overlapped(?) with a stone node - some tiles produced ore, and some produced stone. Perhaps someone can explain how this is possible.
Short write, all soil tested/related. Distance decays is linear (well at least along the minimap edges). Rounding here seems to be using floor(). Diagonals: I have no clue yet. Digging in the center of a minimap lowers all corner/node values by the same rate (although this is on a minimap with not to different node values). Stone: Not sure at the moment. --.MvGulik. 23:50, 17 February 2015 (?)
"Digging in the center of a minimap lowers all corner/node values by the same rate" >>> could you be bothered to test whether digging closer to one corner depletes it faster than the other ones? Is the soil quality in the middle of a minimap an average of all the corner nodes? Ashghan (talk) 08:17, 18 February 2015 (EST)
Done. After digging down 3Q points at one of the corners, I ended with the same Q change at all the corners. Or: The same result when digging down 3Q points at the center. This means that the whole node area covering a minimap is lowers as a whole after removing some stuff from it. Note that because all 4 node points of a minimap are effected, the draining effect actually extends to a area of 3x3 minimaps. ... which is actually kinda neat. --.MvGulik. 15:47, 19 February 2015 (EST)

Note to changed "There is always a node for water and soil - a static q10": The minimum returned q10 on soil and water is not guaranteed to be related to data in the node map itself. Its more likely just some additional code that makes sure any returned soil or water has a minimum of 10q. (I don't have any idea yet how this could be checked/tested) --.MvGulik. 11:46, 18 February 2015 (EST)

Considering that a node area is lowered as a whole when its drained. If the minimum returned Q is related to some minimum capping applied to the returned unit, the node area remains in the same tilt orientation. But in the case of node points being minimum-capped, the node area tilt orientation start to change the moment one of the node points has hit its minimum value (which should be observable). --.MvGulik. 06:45, 21 February 2015 (EST)

General Node data

(wip/experimental)

  • Node points are distributed on the mini-map grid corners. (Think its save to assume HnH uses simple node maps/2D-array with the node values, Where the array-cel-address is directly related to a particular minimap corner. (per SG probably))
    • As such a single node point is always effecting four mini-map areas. (Possible exception might be SG border cases.)
  • A dynamic node point has not only a fixed base(maximum) value. But also a current level value. Which gets lowered when a resource unit is extracted, and which is slowly restored back to the nodes base value over time.
  • For dynamic nodes, resource removal inside a node area(minimap) effects all four corner-nodes of that node area. The location of the resource removal plays no role on its own here. (so far it seems that all 4 corner nodes are lowered by the same amount. But there is still room for a error in this conclusion.)
  • The Q-value of a extracted unit from a arbitrary location inside a node area seems to be derived by bilinear interpolation on the 4 node points of a node area. (Unknown: What the node map default filler value might be, per resource-type node maps. Probably zero for most.)
  • Some resources, like water, soil, sand, always return at least a unit of 10q. Its unclear at this moment if that is done by node map value clamping, or if this is done by a additional active minimal clamping of the returned unit Q. (The latter option seems more logical).

Node related forum posts:

- ...