Mad Pod Racing - Puzzle Discussion

I have beaten the boss but I still can not get out of wood 2. Why? Do I have to click something special? I have clicked “submit” and “play my code” 10 times but still nothing. Please help.

You beat the boss by having a higher score than the boss at the end of the computation of your games.

Tip #1 here:

It appear that the specification are incomplete.

BOOST: The actual acceleration provided by BOOST isn’t mentioned.

Turn rate: The pod clearly has a maximum turn rate that is not provided.

Friction: Cutting thrust mean will see the pod decelerate which mean that some form of friction exist. The coefficient isn’t provided.

The mechanics of collision and the impact of SHIELD is poorly described. Outside of the description of when a collision happen we have no information on the physics of those collision or the impact of SHIELD on collisions.

At the moment it seems like the best way to answer those is to write specific code for your pods that allow you to retro engineer the engine. Which seems a bit silly especially in the introductory leagues.

1 Like

While there are some valid complaints to be made about the specifications or the availability of the game source code, all of your questions already have answers provided in the statement.

It’s possible you didn’t get past the introductory leagues, which debatably for better or worse only gives you the basics to get you acquainted with the game.

But overall it would be more productive for everyone if you ask a little more friendly in the future.

2 Likes

My bad for the tone. I’ll go edit it to be less abrasive.

Are those specifications only provided in gold and above leagues? Because I can’t seems to find them in the silver league. I understand that the division in league is somewhat supposed to work to help people work their way slowly toward the resolution of the problem but if you don’t provide them with a proper explanation of the tool given to them then that progression can’t happen. Hence why you see people advising to simply ignore the SHIELD and collisions mechanics to beat the silver league.

Taking BOOST for example. When I got access to the function my main worry was that I would end up using the only boost available to me on a checkpoint to close ending up overshooting it and losing a lot of time. I ended up specifying a threshold of distance before boosting but that threshold was mostly guessed more than calculated.

Also you mention that the shield multiplies the pod mass by 10. What is the default pod mass?

And while I understand that an elastic collisions means that the momentum will be conserved, I’m not too sure about the meaning of “minimum impulse”? Could you clarify?

I unfortunately don’t have access to previous leagues statements, but it’s likely the full statement is only given starting in gold league. Again, for good or bad reasons, it’s assumed you don’t need to worry about these details to get to gold league. CG cares a lot about ramping up the difficulty progressively to not scare off beginners.

It is also historically one of the first games (EDIT: it’s not the first, thanks @JBM for the correction) to have introduced the concept of leagues, so they were still experimenting at the time. For later games, the concept has been refined, and everything is given starting in bronze league, sometimes even wood league.

The default pod mass is 1. Though the actual value does not matter in practice, as the only possible collision pairs are pod vs pod (the baseline), shield vs shield (equivalent to baseline), and shield vs pod (only need the relative ratio of mass, which is 10x).

The minimum impulse is a weird concept used to workaround technical limitations on CG’s side, and definitely could have used more explanation and/or diagrams. Basically to resolve an elastic collision you have to compute a resulting impulse vector that will be added to the velocity of each pod, to move them away from each other. If half of that vector’s length is less than 120, then it is set to 120 as a minimum impulse. So if your original impulse vector length was 200, then you renormalize it so it has 220 (200/2 + max(200/2,120)) length instead.

You can also look at the game implementation recreated in C++ published by inoryy for more details, namely this function.

1 Like

As far as I understand:

  1. You train with the league boss then when you beat it/ feel confident enough in your code you submit it.
  2. The server plays your AI against other players around your level/ranking in a given number of matches (I think for bronze its 120 match) and based on your win/loss ratio calculates your score.
  3. If your score is larger than the Bosses score you will be put in the next tier/leauge at the time showed above your battle list.
1 Like

where to use distanceFromPod input? Also it seem that input angle value is always greater than 180, -180…and the motion of pod is shaky…how to control it?

how do i use the boost function on python?

Ummm, is the game outputs in every moment, or every lap, or every game?
Can I slow down my thrust halfway? I am bronze league now, still don’t figure out how it works…

I mean, it’s quite interesting, but too many things for us to guess, no declaration. It has been just for fun,rather than improving our programming.

I just got nextCheckpointAngle and nextCheckpointDist unlocked.

How do I declare and use these variables. I tried:
int nextCheckpointAngle{};
int nextCheckpointDist{}

and then tried adding them to the CIN list:

> cin >> x >> y >> nextCheckpointX >> nextCheckpointY >> nextCheckpointAngle >> nextCheckpointDist; cin.ignore();

but no luck.

On the top right of the code window, you can click on “Restore default code” to have an example (take care to save your actual code first).

3 Likes

mhh someone doing this in haskell?
cant read the new inputs nextCheckpointAngle and nextCheckpointDist
they should be in line one but they are not?

If I’m not mistaken, the inputs depend on which league you’re in.

Hi, it seems that I have skipped the silver league and proceeded straight to gold. Any way to get back?

There’s no way to get back, barring creating a new account. Your bot was just that good :slight_smile:

Could anybody in silver share the Info box below the playscreen?

Hi,
It’s because it’s not in line n°1, but in the second line !

Watch out the ide got a probleme in wood 2 he try to give you 2more integeer than the six mentionned . It result by a shift in the variables and your pod start doing shit.