Phase 3 Balancing issues/changes

Hi everyone, if you have any balancing issues with the phase 3 release, please describe them here.

2 Likes

Hi.

I just wanted to mention that I’ve been looking at the terrain generated by the new engine and I think it’s really poor for having exciting races.

The perlin noise seems to introduce walls like this…
[β–‘β–‘β–‘Β»β–“1#β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘]
[β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–“#β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘]
[β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘]
[βˆ±Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–“β–‘2β–“β–‘β–‘β–‘β–‘]

and this

[β–‘β–‘β–‘β–‘β–‘1β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘Ξ¦#β–“]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘*β–‘β–‘β–‘β–‘β–‘Ξ¦β–‘Tβ–‘β–‘β–‘β–‘β–“β–“#Β»β–“T]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Ξ¦βˆ±Tβ–‘β–‘β–‘β–‘β–‘β–‘Ξ¦β–‘β–‘β–“β–“2β–“β–“]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–“]

and this

[β–‘β–‘β–‘β–‘β–‘1β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘Β»β–‘β–‘β–‘β–‘β–“β–“β–“#β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘2β–‘β–“β–“β–“β–“β–“β–“β–“#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]

Now this does not leave much room for a smart bot to race and pathfind… There are almost never any gaps to go through.

I know the lizard can help with this but I don’t know I think the old random track was much better.

3 Likes

I agree with @LouisLotter.

In the attempt to make the map look more natural it has become less exciting with no good choices for the bot to make. Walls and mud often just stretches across all lanes in a line like this:

[#β–‘β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–“Ξ¦#β–“*β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–“β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–“#β–‘β–‘β–‘2#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#]
[β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘β–‘TΞ¦β–‘#βˆ±β–‘β–‘β–‘β–‘β–‘β–‘β–“#]

Thats a good point with a great example.

I think scaling the noise function vertically can solve this, specifically sampling the noise function from a larger y-value, which will in effect squeeze the map vertically to show more horizontal gaps.
We also have a ticket to separate the mud and the flimsy walls from the same pattern, this way they will less likely block off the entire track like in the first example.

What do you think about the horizontal length of mud pits, do they feel too long/short in the horizontal axis?

1 Like

I think the occasional 3 or 4 mud patch horizontally is OK as long as they don’t stack up vertically as well. Also it would be best if it’s quite rare that we have a horizontally deep patch with only 1 way through. It will give the front player too much of an advantage to plop a cyber-truck or oil in the gap. Especially with the damage mechanic. I honestly think we have a bit too much terrain at the moment considering the addition of the damage mechanic.

4 Likes

I’ve noticed this about the terrain too. The Perlin noise generator tends to clump the obstacles together - even if the wall and mud generation is separated, we will still have walls clumped together and mud clumped together.

This makes things much less interesting and less competitive - not too much you can do to be better if there is a β€œwall” of mud or walls whichever way you turn, especially with damage being added.

I don’t think anyone had a problem with the old method of map generation, whereas this one sounds like it has a lot of problems. I think the maps the old method generated had a good mix of tough areas, areas where you had to get the right route to make it through at speed, etc.

Why don’t we go back to the old method?

It might also be good to adjust some of the ratios, but I think switching back to the old method would be a good start to have interesting and competitive maps again.

I suggest adding a hard limit to the amount of flimsy walls that can be spawned in a screen.

If the car stops on a flimsy wall and performs a fix, the damage of the wall is applied to the car again, negating the fix. This seems like a bug.

round:133
player: id:1 position: y:2 x:695 speed:3 state:HIT_WALL statesThatOccurredThisRound:FIXED_CAR, HIT_WALL boosting:false boost-counter:0 damage:5 score:70 powerups: BOOST:14, LIZARD:2, EMP:1, TWEET:4
opponent: id:2 position: y:4 x:29 speed:0

[β–‘β–‘β–“#β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘β–‘]
[β–‘β–‘Β»β–‘β–“1β–‘#β–“β–“β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘Β»β–‘β–“β–“]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]

C;133;FIX
C;133;ACCELERATE

Completed round: 133

=======================================
Starting round: 134

======================================================================================================
round:134
player: id:1 position: y:2 x:695 speed:3 state:HIT_WALL statesThatOccurredThisRound:FIXED_CAR, HIT_WALL boosting:false boost-counter:0 damage:5 score:65 powerups: BOOST:14, LIZARD:2, EMP:1, TWEET:4
opponent: id:2 position: y:4 x:29 speed:0

[β–‘β–‘β–“#β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘β–‘]
[β–‘β–‘Β»β–‘β–“1β–‘#β–“β–“β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“#β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘Β»β–‘β–“β–“]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]

2 Likes

Should an emp stop a fix/tweet action?

Well, I mean, IRL an EMP will kill your phone (so no twitting), and any power tools you happen to be using (so no fixing, unless it needs plain old percussive maintenance), so…
:stuck_out_tongue:

I now finally had a chance to see the new maps in action… and I have to agree with @LouisLotter , @Malman , @GawieJooste etc .

Sections like the below can potentially induce Total Sense of Humor Failure, which is obviously very serious.
madness

I hear what @pierre.roux is saying about tweaking the noise generation, however, considering the advanced stage of the game, I would humbly suggest that reverting to the previous implementation might be the smarter choice at this point.
Just my 2c

3 Likes

The introduction of the EMP, damage and fixing, and the update of the wall generation already provides an interesting dynamic to the game. The perlin noise however, not so much (unless it’s maybe applied to only a small percentage of the track?). That’s just my personal opinion though. I liked the way previous maps were generated. And considering we have about a month left, I feel like too many changes at this stage will almost make it feel like a whole different game and not an update to the current one.

3 Likes

We all still have the same map.

My thoughts would be to keep walls completely random.
And maybe drop their spawn from 5% to 3%.

I do suggest the following update:
Give players a β€œdamage leeway” - So lets say the first 3 damage does nothing to our max speed, To allow us some room to fix up a bit. I feel this would go a long way to countering the amount of terrain we have going.

1 Like

Just a couple of questions based on my observations:

1.) Should there be a cap on damage? Theoretically, a bot comes to a standstill at 4 damage. Yet, I’ve seen my bot go through walls and mud simultaneously and end up on 6 damage, which requires multiple rounds of repairs before it can move again.
2.) Walls take the bot to a speed of three - however, if the bot crashes into a wall and multiple mud blocks, the max speed drops all the way to zero. Yet, because the bot hit a wall, it continues travelling at a speed of three. Is this intentional?

1 Like

My bot used a boost when it had 4 damage and the speed increased to 5 which is supposed to be only the initial speed. Is the speed of 5 still included in the speed states after the initial round was completed and should it be reachable using a boost?

12:57:44,983 INFO ======================================================================================================
round:58
player: id:1 position: y:4 x:177 speed:3 state:USED_LIZARD statesThatOccurredThisRound:USED_LIZARD boosting:false boost-counter:0 damage:4 score:4 powerups: BOOST:1, LIZARD:3, TWEET:1
opponent: id:2 position: y:4 x:79 speed:0

[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–“β–“]
[β–‘β–‘β–‘β–‘Ξ¦β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–“β–‘]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘1β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“Β»β–‘β–‘]

12:57:45,184 INFO ======================================================================================================
round:59
player: id:1 position: y:4 x:192 speed:5 state:USED_BOOST statesThatOccurredThisRound:USED_BOOST boosting:true boost-counter:5 damage:4 score:12 powerups: BOOST:1, LIZARD:3, TWEET:1
opponent: id:2 position: y:4 x:79 speed:0

[β–‘β–‘β–‘β–‘β–‘β–‘β–‘#β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Ξ¦]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–‘β–‘Tβ–‘βˆ±β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘1β–‘β–“Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Β»β–‘βˆ±β–‘β–‘β–‘]

EDIT: The speed is also set to 5 with a normal accelerate. Another possible issue is that the car still moves 15 blocks when using a boost even when the speed is capped at 5. Is this How it should work?

1 Like

I also found a case where when using a boost with 0 damage the speed did not go up to 15 as expected?

round:43
player: id:1 position: y:4 x:208 speed:3 state:FIXED_CAR statesThatOccurredThisRound:FIXED_CAR boosting:false boost-counter:0 damage:0 score:50 powerups: BOOST:3, LIZARD:2, EMP:2, TWEET:4
opponent: id:2 position: y:2 x:51 speed:0

[β–“β–“β–“β–“#β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Ξ¦]
[β–‘β–“β–‘βˆ±β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘βˆ±β–‘β–‘β–‘β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘#β–‘β–‘β–‘1β–‘β–‘β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Ξ¦β–‘β–‘β–‘β–‘β–‘β–‘β–‘]

round:44
player: id:1 position: y:4 x:223 speed:8 state:USED_BOOST statesThatOccurredThisRound:USED_BOOST boosting:true boost-counter:5 damage:0 score:62 powerups: LIZARD:2, TWEET:4, EMP:2, OIL:1, BOOST:3
opponent: id:2 position: y:2 x:51 speed:0

[β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Ξ¦β–‘Tβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘Β»β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
[β–‘β–‘β–‘Ξ¦β–‘1β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]

To add to the weird speed /damage / other related issues, I found this perplexing situation ( I suspect it is basically the same problem mentioned by @rfnel )

Basically, P2’s speed is reported as 0 in Round 20.
It then uses lizard…and somehow then moves forward.
Speed is still zero though when we get to Round 21
THEN it uses boost…and seems to actually get that movement.
And yet, speed is still apparently zero.

Have our vehicles perhaps discovered FTL, thereby circumventing known physics, and are so able to move without moving? If so, pretty exciting stuff!

1 Like

Proposal: minimum-maximum speed is 3

Rationale

I think that making it possible for bots to drop to a speed of zero is a bit too harsh.
Regardless of whether you agree with this (somewhat unsubstantiated) thought, I think that dropping to zero maximum speed will have unintended consequences.
Consider the fact that in previous years a bot entered into the first round would still be able to play the final version of the game roughly.
Now bots which don’t take damage into account will stop within a few short turns and never move again.
If nothing else this will probably result in a considerable number of prolonged and unexciting matches clogging up the tournament runner.

6 Likes

I reckon that is a valid observation @Quiescent

The impact of 0 speed can also be lessened by:

  1. Dropping max rounds to say, 300
  2. terminating a game if any bot has not moved for (for example) 3 consecutive rounds

I did see a PR open on the engine repo that seems to be attempting to determine a winner if max rounds is reached - that would be helpful with all three options (i.e. the bot that made it the β€œfurthest” could at least be determined a winner for that game).

1 Like

I’ve seen this issue as well. boost moves you 15 squares forward with buggy damage for the things you move through. Maybe you should post this in it’s own thread.

1 Like