N
N
norlin2016-07-22 16:11:10
Mathematics
norlin, 2016-07-22 16:11:10

How to make resource distribution in the game world?

Good afternoon!
For the game mechanics (massive multi-player) I need to make resource distribution in the game world (roughly speaking, in the game "air", without being strictly tied to specific "mines").
Distribution conditions:
- more or less uniform
- places of increased or reduced "density"
are possible - collection of "resource" is possible with subsequent gradual restoration
So far, my knowledge was only enough to implement the distribution itself through a Gaussian function with coefficients and several positive resource density.
But the issue of "collecting" resources cannot be solved - adding a negative peak to the function for each sneeze seems unreasonable and slow (considering that resource collection will occur simply when players move around the game world).
Another option: stupidly generate discrete elements around the world that will disappear when "collected". Here, among the minuses - except that the need to process a huge number of these elements - at a glance, will be very resource-intensive from the point of view. performance.
Perhaps there are some other solutions? (for sure the problem is not unique, both in gaming and in mathematics in principle)
Or, maybe, at least tell me which way to dig?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
R
Rsa97, 2016-07-22
@norlin

Зоны (например квадраты или гексы), для каждой определить максимальную плотность ресурса, текущую плотность и скорость восстановления. При движении в пределах зоны перс собирает ресурс, при этом плотность ресурса в зоне (и, соответственно, скорость сбора) падает.

M
maaGames, 2016-07-22
@maaGames

Если не "шахматы", то "взвешенный граф". С его помощью очень легко сделать распределение ресурсов по типу "чем дальше переться, тем больше лежит". Т.е. в каждом узле графа хранятся координаты области, в которой лежит ресурс и количество ресурсов. Весь массив координат триангулируется, чтобы получить сетку, рёбра которой хранят расстояние между соединёнными узлами.
Во-первых, с её помощью легко сделать равномерное распределение ресурсов (чем узлы ближе, тем в каждом из них меньше ресурсов). Во-вторых, этот граф можно использовать для приблизительного поиска пути.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question