Map processing & Difficulty value

Conor

Member
Joined
Dec 12, 2012
Messages
34
Reaction score
103
Points
18
Website
cipbot.webs.com
Hey!

Before you think "oh my god how long is this", I will sum up my suggestion in a short paragraph below. The text following that is my detailed suggestion, for people who manage to stay awake to read it.

Summary:

Maps could be processed before they are selected as the next map during round intervals. Through some calculations revolving around the size of the map, the space in the map, and the current players on the server, a value can be formulated which symbolises the difficulty of the next map. This value could be used in different ways. Firstly, it can be used to determine whether a map should be chosen, e.g. if a map is extremely big/spacey and the server player count is tiny, the map can not be put in for rotation. Secondly, it can be used to enhance the rewards/karma system - players who survive higher difficulty values would gain more from it. Lastly, a rating can be given to all players before the map changes. e.g. a rating from 1 - 10 for how hard the map is, will be shown as the players change map, so they know what to expect. Below is my actual concept, but if you're too bored already, this basically sums it up :)

Detailed Concept:

So, to expand on the title, by map 'processing' I am referring to the checking of the sizes of the maps, the content of the maps, and maybe pre-defined data for the maps (e.g. a difficulty rating for each map can be assigned by human-eye, which can also be used in the forumla). The purpose of this is to make sure large maps and/or very difficult maps (hard to infect people) are chosen only when there are a certain amount of players online which combats the extremely tedious long rounds where minimal people are caught, ultimately discouraging some new players from the server. It can also be used to create a 'difficulty value' for a map before it is played, which can be viewed by the players - i.e. before the map rotates, the difficulty of the next map can be a global message to give them an idea of how they might need to play. The difficulty may change, as it is proportionate to the number of current players.

I think this would be a great little feature, and you could even incorporate it into the rewards system. By this i mean, if a difficulty rating for a map is extremely high, and a player survives, they might get slightly more karma than usual (I don't really know the workings of karma so I'm unsure if this is plausible).

If you're wondering, how do you get the 'difficulty value', it should be calculated on map selection using a constant mathematical formula. For example, the main factor is going to be the map volume, or the map area (either/or). You could also take into consideration the amount of solid blocks or the amount of air blocks in the map, and turn this into a percentage of the total blocks in the map - allowing the server to comprehend how much space there is in a map for players to run and hide. Lastly, the solid blocks/air blocks can be taken into consideration only from the true ground level and above (i.e. above the adminium layer some maps have). This is all possible via code and some hard thinking :) It is important that the difficulty value is compared with the current amount of players, as this plays a major part in whether a map will be difficult/boring - more players makes it less difficult to get the game going.

Below is a very improvised formula that I made the other day elsewhere, it is only here as an example and only takes into account the solid blocks and the map's volume. It is just to help you understand what I mean by this unnecessarily long post (sorry about that).

You could base it on the map volume, the total blocks in the map that are air, and the round players.

For example, you could create a small boundary of numbers using this data, and then base whether a map is a good choice.

For example, where f(x) is your comparable value, you can use the forumla f(x) = [log((mapVolume + mapAirBlocks)) / 1000]^2

Some examples:

64 x 64 x 64 map, (30 x 30 x 30) Air Blocks: f(x) = 6.06
64 x 64 x 64 map, (50 x 50 x 50) Air Blocks: f(x) = 6.70
64 x 128 x 64 map, (30 x 30 x 30) Air Blocks: f(x) = 7.52
64 x 128 x 64 map, (50 x 50 x 50) Air Blocks: f(x) = 7.91
128 x 64 x 128 map, (50 x 50 x 50) Air Blocks: f(x) = 9.42
128 x 64 x 128 map, (90 x 90 x 90) Air Blocks: f(x) = 10.56
128 x 128 x 128 map, (50 x 50 x 50) Air Blocks: f(x) = 11.2
128 x 128 x 128 map, (90 x 90 x 90) Air Blocks: f(x) = 11.9

So using my formula, you would get a value, maybe between 5 - 15, depending on how big your maps get. You can compare this with the player count to see if the map is unsuitable. The value symbolises not only the size of the map, but how much space there is. The bigger the value a map has, the bigger it is/more space there is relatively, which ultimately concludes that the larger the f(x) value for a map, the more unsuitable it becomes for a small amount of players (which is what <name> wants to combat).

For example;

if (Player.players.Count < 7 && Map.getFormulaValue() > 10)
{
// Map is theoretically too difficult to play with the current state of players.
}
And finally, I know that the whole idea of this is a lot of trial and error for the devs, to perfect their forumla for a value that hasn't been needed all this time for the zombie survival, so please feel free to criticise it. But would its incorporation make the server more enjoyable? That is what would need to be weighed up! Adittionally, mathematics can't solve everything, I understand the 'difficulty of a map' (to infect people) isn't just correlated to the map's size and other factors I spoke about; which is a limiting factor on my concept.

I am open to constructive criticism and any support/agreements, so hit me with your best shot. Well this is far too long xD. Wow.. its 2013? I should get some sleep. Bye!
 

Hardneck

Member
Joined
Mar 27, 2012
Messages
32
Reaction score
118
Points
18
This is a good idea. There are some concerns though.

I don't have to look at some sort of discontinuity(not in the proper sense) or special cases with your function to say that you can't merge some complex quantities in this game into some values. Maybe using statistics, fluid dynamics and defining a lot of elements from maps but that's way too much work. The difficulty can also vary with max players.
Numerical values should be assessed by experienced players, which there are plenty as I can see it. Preferably while asking if they were hiding/running so you can discard 2x2x2 boxes and the like. It still has some flaws like individual skill/observation, number of times the map was played etc etc. Still, tier-lists and the like in other games also start out badly until they're refined by arguments, so I don't think this couldn't work for zombie maps.
 
  • Informative
Reactions: Conor

Conor

Member
Joined
Dec 12, 2012
Messages
34
Reaction score
103
Points
18
Website
cipbot.webs.com
This is a good idea. There are some concerns though.

I don't have to look at some sort of discontinuity(not in the proper sense) or special cases with your function to say that you can't merge some complex quantities in this game into some values. Maybe using statistics, fluid dynamics and defining a lot of elements from maps but that's way too much work. The difficulty can also vary with max players.
Numerical values should be assessed by experienced players, which there are plenty as I can see it. Preferably while asking if they were hiding/running so you can discard 2x2x2 boxes and the like. It still has some flaws like individual skill/observation, number of times the map was played etc etc.
Very true, it is a lot of time and resources for a proposition that holds many limiting factors like the above which you have explained. For a beneficial output, a lot of trial and error would be needed, but if you imagine how it could make the game more enjoyable and fast paced in the long run, it could be worth it. Maybe, maybe not.
 

Txboy1234

Member
Joined
Jul 7, 2012
Messages
302
Reaction score
523
Points
93
Something like this has been said in the server about smaller maps with less people but I haven't actually seen something like this to allow the server to pick the 2 maps depending on the amount of people in it. Great job!