Coders Strike Back : The future?

I talked a little with Maxime on the chat, and he said that during the next week, the gold league of CSB will come, and it will be the same as the CSB contest. I have a few feels to share with that:

At the moment, some coders really works on the current silver league of CSB. But the current silver league of CSB is very differents from the CSB contests. Inputs are not the sames. In fact, with the current inputs, you can’t know your opponent angle and speed, you can’t know all the checkpoints before the first entire loop, you can’t know the next checkpoint of your opponent, the thurst limit is 100 and you have a BOOST once by game.

In the CSB contest, you have 2 pods. It would be a minor difference with the current silver league but it’s clearly not the only one:

  • The inputs are differents. You got all checkpoints at the first turn and you know your angle and the angle of your opponent. You also know your current speed and your opponent current speed. And you know your opponent next checkpoint. Actually, my code of the CSB contest just can’t be refactored to works with the silver league of CSB. And i just don’t see how a silver league code could be refactored to works with the CSB contest inputs.
  • You have no boost at all
  • The thrust limit is 200, not 100.

So, what is the message and the will of CodinGame when they will release the CSB contest as the gold league of the current CSB ? Throw away your silver code it is useless now ? Never trust the rules because they can completely change when you change your league ? Why so much frustration ?

Here’s my thoughts:

  • The “minimal inputs” mode makes me sick. Maybe it’s good for beginners. But when inputs prevent you from having all the informations in the game, you can’t simulate. Or you’ll get many errors because you don’t have the speed of your opponent (or you just don’t have the correct next checkpoint for him because you can’t be sure of when he will hit a checkpoint). I don’t care if you use it in a “how to do an AI” puzzle like the current CSB. Because it doesn’t reward any points at all and it is here to learn. But in a real contest, it’s really a very bad idea.

  • You should keep the current CSB puzzle as is. Add a gold league (and maybe a legend league) but keep the inputs nearly the same as now. Just add a second pod for example. I can’t imagine how much some codingamers will be frustrated if their current code will just go to the garbage because of completely new inputs and rules. And create a new puzzle (with leagues or not) with the inputs and rules of the CSB contest.

  • The league system is pretty good. But we should be able to know the rules of higher leagues. This is the life of a developper. Code current problem with the next problems in your head. And please try to not change every rules when we change league. It is only frustrating.

  • CodinGame could also tune/modify the CSB contest to follow the current CSB inputs/rules. But it will be very bad because all coders of the CSB contest will just have to throw away their code because of the lack of informations of the current inputs. All the solutions used by the top 10 in the CSB contest can’t be applied with the current CSB inputs. Because we can’t simulate accurately.

10 Likes

yea, it’s easier for beginners to read a few more variables (like velocity and global angle) than to calculate it

That’s what I would think. Maybe there’s a place for minimal inputs in wood league or something but in general I would rather have more inputs than having to reverse engineer stuff I can read on the screen.

@Magus I agree with most of what you said, except two or three things:

  • I like the incremental rule system, sure it’s not convenient, but it’s playful. What I won’t like is like you said, previous rules which becomes obsolete, I think rules should stack so you don’t have to throw away your whole code.
  • I don’t think seeing the next rules is a good thing, see it as a restriction, you have to write a good AI without some elements that could cause trouble to newcomers.
  • I don’t think they will copy paste the CSB Contest into gold league as it is, or else they would have done it already, I think they will adapt current rules to gold with the rules from CSB contest. (I might be wrong, if I am, then indeed it’s a terrible idea to copy CSB Contest to Multi)[quote=“MadKnight, post:2, topic:1540, full:true”]
    yea, it’s easier for beginners to read a few variables more (like velocity and global angle) than to calculate it
    [/quote]
    This. A lot of people were thrown off by the amount of math involved for the CSB Contest, and I think that calculate those things isn’t part of what makes a good AI, so it’s a welcome addition
1 Like

what about this inputs template?

int x; // ...
int y; // ...
int nextcpX; // ...

// some advanced data that you may not need in the wood league:
int speedX; // ...
int speedY; // ...
int enemyX; // ...
int enemySpeed; // ...
1 Like

I don’t mind the way it is. In fact, I have pretty much the opposite approach, I enjoy having a set goal with a boss to beat without having to worry about how bad my code will do in the league above, as much as I enjoy not having to worry about previous leagues anymore. Also, getting a better rank means your previous code will be getting changes or even complete rewrite anyway, which is I think the point of the league system.

With the league system, you’re being guided through the updates you have to do and the goals you should set. Previously, the only hint you had was how good other players were, and your only goal was just how high you wanted to reach.

Sure, it means you won’t be able to code an AI that will run through the entire leaderboard with a single submit anymore. But we don’t all have the skills for that. :slight_smile:

2 Likes

Unless for fun, there is no need to over optimize your AI until you’re in the Legend league.

so it’d be better if u’d have the entire map before the gold league, and since the gold league there’d be only the next cp

I completely agree with Magus and was thinking about making a similar post about the future of this site in general (with recent developments regarding smash the code and the new CSB format as an example).

I really don’t have anything against offering beginners ways to have fun, but there’s also some things wrong with the “beginners would be scared by additional input, so we dumb it down for everyone” argument. There are already lots of fun puzzles in the easy section, even with a hint system. People that are scared by additional input variables will still have fun challenges there. But people who solved those are “stuck” with the AI section, so this section should primarily target people that have at least some basic programming knowledge and don’t have a problem with an additional variable that says enemy_pod_angle.
Especially, since there have been multiple posts by people from CG telling people that “CG is a place to practice, not to get introduced to a completely new world”. Recent developments seem inconsistent with these statements…

About the new forced tutorial on CSB:

Yes there are some people in the world that want to be told every tiny step they have to do, we have a “hey friend am new here plz help how can play where to click???” post in the chat everyday (no offense to people that actually ask for help with constructive questions :D), but the new CSB seems a little overkill: Click here, congrats next league, now write this, congrats next league.

I like what Magus said about keeping the current CSB as a separate tutorial, and adding the “real thing” without having to grind through wood/dirt/dust leagues. If a league/ruleset sounds scary for a player he/she will just choose an easier setting (like a difficulty setting in a game, that the PLAYER chooses). But unskippable unnecessary tutorials are really frustrating, I’m sure you guys at CG have experienced this at least once in video games. Besides that, I don’t see any drawbacks of the new league system and I think it’s a win for this site.

Regarding releasing the rules from the beginning:

I 100% think the rules should be known from the beginning. Especially in a contest, it can even greatly influence the language choice. For example in smash the code, at the beginning one might think Python or similar languages might be a good choice, but if you look at the leaderboard you will see that choosing a slow language pretty much gives you an upper bound on your ranking. No one could have seen this coming from looking at the Bronze league rules…

I understand that you want as many new people as possible here and I admire your efforts to make programming more accessible to beginners, but please don’t forget that there are also other people here that really enjoy this site as it was and that are concerned with recent developments.

Thanks for reading, if you really did… :stuck_out_tongue:

TL;DL: more input, less tutorial plz kthxbye

3 Likes

Hey guys,

Can’t you calculate the ennemy bot speed ?
You have it’s position from turn to turn so with just a little substraction you can get it… or am I completely wrong ?

I totally agree thought that we should get all the rules (even if deactivated) from the beginning…

You can’t be sure because of the collisions. And you can’t be sure of the next checkpoint of the opponent so you can’t really predict where is he going.

u can, but not that way - his current speed is 85% from the last move vector, cuz the friction force affects pod’s speed after it’s been added to the current position
like that:

pos += velocity;
velocity *= 0.85;

but beware of wrong speed calculations when pods collide

I don’t think that there is can be found silver bullet.

Mostly beginners scared to fight with “no chance to win” opponents. Reduce input is try to avoid such case.
I don’t think that big input scary beginners.

I think that good idea is to make input similar to contest and place contestants who are already have some code from contest to specific league.

Leagues must be have same input, changing rules is ok and I prefer do not know higher league rules.

Hey, I was going to write almost the same post with the leagues thoughts.

So, there are 2 things that need to be addressed (in my opinion) in the current state of leagues – incomplete rules and forced tutorial.

In my opinion it could be addressed like that:

  • Split the game onto 2 parts: wood leagues with simplified rules (aka demo version) and metal leagues with the same rules among all metal leagues (aka real game).
  • Make the wood leagues skippable for ‘experienced’ codingamers (for example, grand master and above).

For example, I see this CSB multi game as 5 levels of wood league (and maybe you’ll agree – you overdid it) and bronze, silver, gold (and maybe legend) – split by different bosses.

So if the beginner wants to play in the easy demo version of the game – they have an option to do so. And they have option to skip all tutorials and jump right to the bronze with full rules and easy default AI.

So, wood leagues for demo with any rules. Meal leagues with constant set of rules for the real game.

P.S> Not sure if I sumed all things right, please ask questions if I missed something.

8 Likes

yea, that looks like the best option, i’d do like that

but what about going from wood to bronze? will your wood code be saved? or it’ll be resetted to the new default with the right inputs?

u can reset the code to the new default code and show that the user can take his old code from the History tab

1 Like

I share these concerns. I don’t mind getting simplified rules in early leagues, I don’t even mind getting simplified inputs in early leagues, as long as code does not get obsoleted.

For example in the contest version of the game, our speed was given. Here we have to compute it.

On the other hand, we get as input the distance and angle towards the next checkpoint.
The distance is easy to compute with the given inputs (unlike the speed, for example). The angle is useless with bronze written rules (if the 15° rotation limit is still in use, it’s not written in the rules).

An easy way out of the dilemma of dumb vs intimidating inputs could be to have the AI send a string, prior to any input, stating what input it expects.
It could also solve the problem of making lower-league AIs compatible with the next-level ruleset…

1 Like

the rotation limit is 18

The pod will pivot to face the destination point by a maximum of 18 degrees 
per turn and will then accelerate in that direction.

but how do u think, could’ve full inputs of CSB contest scared some newbie players in the very easy wood league? i think no

Still not written in the bronze rules, unless I’m mistaken.

[quote]but how do u think, could’ve full inputs of CSB contest scared some newbie players in the very easy wood league? i think no
[/quote]
Full inputs in the wood league could have complicated the thing because it is really easy, but starting in the bronze league, I think such concerns are unwarranted.

that’s written in the ol’ CSB contest rules