Initial Speed -> Mud -> End Tile

Hey all,

I will still do all tests, But want to so long prep my strategy (Just do not have the free time to push my bot now. )

If I travel at a speed of 15, and hit mud on say the 9th tile, Do I still travel the next 6 tiles or do I also have some kind of Movement penalty.

One reason I asked this is also to leave it open for discussion. I know we do not want to mess up with the difficulty for event 1 too much, but I do feel it could be good to have some kind of mud hitting penalty on your actual end tile.

I guess it does not make a difference which way it leans. Event 1 will be amazing…

Cannot wait to code this one. Been far too long

1 Like

It looks like everything is calculated only once for the turn, so your movement speed doesn’t change until the next turn after hitting mud (or oil).

It seems like everything in the game is done like this: the car takes a big step the size of its speed, then the things that it hits are counted up (and some seem to be missed - see other threads).

I wonder if it wouldn’t be better to do the movement step by step rather than in one bug jump? This might solve the problems that are showing up in the other threads. But then in this case, you’d end up with fractional blocks being traversed. Say you’re going at 15 speed, hit mud on the 9th tile. Then your speed goes to 9, but you’ve already used 9/15 of your turn. So you go 9* 6 / 15 = 3.6 blocks further? This would have to be rounded as there aren’t fractional blocks.

I also suspect that as the game currently is, a bot that just accelerates every round is unbeatable by any other strategy - would be interested to hear if anyone else has a strategy that disproves this. If they fix the issue of only one mud hit counting this might change but it also might not!

2 Likes

My new Reference bot Accelerates every Round.

You are right (obviously ignoring powerups).

Since you only ever lose 1 speed in the current state (A bug to be fixed),
You can attain and keep max Speed from the moment you hit it. MEaning even moving left or right (block penalty are useless.)

There are small situations where you can still get wins or losses depending on Start and Finish. But for now we need to wait for the bugfixes. Once that is sorted the game will get plenty of life.

The One mud hit will change the strategy a considerably. Its not always best to accelerate to keep best momentum…

Hello @Malman and @WillieTheron:

  • yes there is currently a bug where items collided with (obstacles or pickups) per turn only have their effects applied once per turn. We are looking to resolve this soon.

  • with regards to the tick-based logic, the primary reason for this decision was so that powerups and obstacles have equal opportunity to affect a players state. It would be unfair, for example, if mud could slow you down during your current tick but you have no way to use a boost just after hitting that mud spot. Restricting the logic to be tick-based and determining the effects after the fact yielded the fairest way for the game to operate.

Hope this reply helps.

2 Likes

I can’t go dig around in the docs now, so please forgive me if it is explained clearly there…

But is player score ONLY considered in the case where both players reach the finish line at the same time (or no one reaches the finish line) ?

It would seem that it would make sense to always consider score - that way, the always-accelerate bot should not necessarily win, since score is penalized for hitting things you should not hit.

I do not feel the same,

For example, a player can simply drive at their slowest and avoid all obstacles. Rack up score that way.

In the scenario where you want to add a bonus score for speed, then the car to cross the line first will almost always win on score regardless.

I feel that the best play is to go by who wins. Otherwise the lines blur a bit. I do feel score matters though, I honestly believe that it will be the determining factor for the winner in Event 1.

Also once the mud bugs are sorted, the game will be very well balanced.

Ok, so I looked at the docs again now.

There we have:

The first car to reach the end of the track, defined by blocks containing a FINISH_LINE object is the winning car and thus the winning bot.

  • Should both bots reached the finish line then the bot that crossed the finish line with the highest speed will win
  • Should both bots reach the finish line with the same speed, then the bot with the highest score will win

So that answers my questions.
It does not explain what happens in the unlikely(?) event of neither bots reaching the finish line before end-game.

For my understanding, if this is fixed and I come across >1 mud/oil blocks, will my speed slow down by that amount of mud/oil blocks, need to build this in if this is the case.

1 Like

Currently, docs does not really give much info on that.
Hitting mud will penalize your score (by 3), and slow your car down (by unspecified amount).
That’s pretty much it.

Probably best to wait for the bug fix to be released before trying to code anything for it.

Relevant topic: Mud/oil tiles

1 Like

Would be interesting to know on a timeline for this, think I have an idea on what I want my bot to do.

It’s possible, my current strategy beats a bot that just accelerates 20/20 times.

Hello all, a new release has been published which fixes the bug where hitting multiple objects of the same type in one turn only applies their effects once.

@demaniak with regards to the effect of hitting mud (or an oil spill) it will slow your speed down to the previous speed state (but not lower than 3). The speed states are (0, 3, 6, 8, 9, 15). More detail on these can be found in the readme. Hope this helps :slight_smile:

3 Likes

So amped for this, Great news indeed, I cannot wait for the first Event.

I cannot wait to build something, Things will get interesting.

1 Like

Is this per mud/oil hit?
Can you guys update the link on challenge.entelect.co.za to point to the latest starter pack, it’s still pointing to https://github.com/EntelectChallenge/2020-Overdrive/releases/download/2020.1.0/starter-pack.zip

Thanks for pointing this out, will get it sorted :+1:

So to play devil’s advocate here, I’m unsure on the behaviour of landing on a boost/oil tile, would I get 2 boosts/oils if I land on of these along with the related score twice for this or would this be one turn?

I’m answering my own question here, I see the behaviour is that I get it twice, is this expected behaviour?
If this is the case, can the game rules be updated for Boost/Oil/Oil patch/Mud patch to reflect this behaviour?

round:83
player: id:1 position: y:3 speed:9 state:HIT_MUD boosting:false boost-counter:0 powerups: OIL:6, BOOST:11
opponent: id:2 position: y:1 x:411 speed:6

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

C;83;TURN_RIGHT
C;83;TURN_LEFT

Completed round: 83

=======================================
Starting round: 84

======================================================================================================
round:84
player: id:1 position: y:4 speed:9 state:TURNING_RIGHT boosting:false boost-counter:0 powerups: OIL:6, BOOST:12
opponent: id:2 position: y:1 x:416 speed:3

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

C;84;ACCELERATE
C;84;TURN_RIGHT

Completed round: 84

=======================================
Starting round: 85

======================================================================================================
round:85
player: id:1 position: y:4 speed:8 state:HIT_MUD boosting:false boost-counter:0 powerups: OIL:6, BOOST:13
opponent: id:2 position: y:2 x:418 speed:3

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

C;85;USE_BOOST
C;85;TURN_RIGHT

Definitely looks like an off-by-one error here, where a mud/oil/powerup is counted both at the end of the one turn and then again at the start of the next turn.

2 Likes

There are 2 very hard problems in computer science:

  1. Cache invalidation
  2. Naming things
  3. off by one errors
1 Like