Golden Goal Blitz -- Feedback, Bugs

isn’t it this? I use these parameters because these are the ones in the editor
Screenshot 2025-12-17 09.41.11

See? You know the answer :slight_smile:

I feel like there’s something wrong with the mirroring or maybe it’s just his code, but watch this match: CodeCombat - Coding games to learn Python and JavaScript | CodeCombat that’s me playing as blue, now this is me playing as red: CodeCombat - Coding games to learn Python and JavaScript | CodeCombat I think the goalkeepers are not on the same y coordinates at the same time

1 Like

I found match ball velocities become NaN.

-------- Aborting simulation due to NaN velocities corrupting collision system. (Internal CodeCombat coding error.) --------

his code breaks match and simulation. @Bryukh

1 Like

Thanks. This one fixed

1 Like

Thanks. Need to investigate, not ready to answer quickly

The position of keepers is fully synchronized by force, but still those matches are not mirrored. Im afraid its again collision system. As you can see about 3.6 seconds the bouncing happens different. I will think what we can do here but not sure I can do something in time there

Your code’s good, k_k_javascript, I’m trying to get a better defensive system, if you have any tips I’d like to hear them, but if you dont want to share them you dont have to, maybe after the arena ends

Are the balls supposed to rebound when they hit each other, it messes up my code in this one, I can make it not affect me, but I was wondering if it was supposed to do that:

CodeCombat - Coding games to learn Python and JavaScript | CodeCombat

There is a bug in this game against sultanEdi, the screen just stops in a tie randomly and it messed up my simulations: Golden Goal - CodeCombat | CodeCombat

Thanks! Fixed. Was the opponent code error – added conditions to auto lose on such error

it’s good idea. tricky strategies may be countered and clever code will survive. the real game starts now.
but, i consider about unfairness due to changing end time.

so, how about display changed info in ladder page? at least this text should be changed. @Bryukh

Global AI League ends at 2026-01-01T06:59:00Z

Yes, good point and its already “in update” but need to wait deploy for that.

1 Like

Yes, we should be better, but right now AI League is a project without good monetization. For shools and partners our 20+ arenas cover more than enough. Also in this year the team changes and we just don’t have people to support AI League without Venneth.

@Bryukh There is a problem with this simulation, I win 6-5 but get a loss

        if (h.score >= h.requiredScore && h._opponent.score != h.score) { 

this on line 672 of the editor should be

        if (h.score >= h.requiredScore && h._opponent.score < h.score) {

so when the score reaches 6-5 the win requirements are only met for the player that is winning rather than both

1 Like

Yep. Thanks! Silly bug.

I can almost beat you, buddeycc, I used to be able to, but those days are over​:rofl::rofl: Your defense is really good, I have trouble with defense, figuring out what’s the best way from getting your opponent to not make it through!

I have 1595 lines of code so it sometimes goes slow when I play you and some other people. Most of that code is commented out so I didn’t lose it if I tried a new code and it didn’t work as well. I just haven’t gotten around to deleting it all. I also have some tests just to see if I can build obstacles depending solely on where the ball is (it didn’t work so well). This is one of those:
`
hero.build(“hole”, 40, 65);
hero.build(“rock”, 35, 50);
hero.build(“rock”, 35, 80);
hero.build(“ice”, 30, 40);
hero.build(“ice”, 30, 90);
hero.build(“rock”, 45, 45);
hero.build(“rock”, 45, 85);

while (true) {
let defensePositions = [
{type: “rock”, x: 25, y: 35}, {type: “rock”, x: 25, y: 95},
{type: “ice”, x: 30, y: 30}, {type: “ice”, x: 30, y: 70},
{type: “hole”, x: 35, y: 40}, {type: “hole”, x: 35, y: 90},
{type: “rock”, x: 40, y: 55}, {type: “rock”, x: 35, y: 75},
{type: “ice”, x: 45, y: 35}, {type: “ice”, x: 45, y: 95},
{type: “rock”, x: 50, y: 30}, {type: “rock”, x: 50, y: 65},
{type: “ice”, x: 55, y: 40}, {type: “ice”, x: 55, y: 90}
];

for (let pos of defensePositions) {
if (hero.canBuild(pos.x, pos.y)) {
hero.build(pos.type, pos.x, pos.y);
}
}

if (hero.opponentBall && hero.opponentBall.x < 70) {
let blockX = hero.opponentBall.x - 10;
let blockY = hero.opponentBall.y < 90 ? hero.opponenBall.y + 8 : hero.opponentBall.y - 8;
if (hero.canBuild(blockX, blockY)) {
if (hero.random() > 0.5) {
hero.build(“ice”, blockX, blockY);
} else {
hero.build(“rock”, blockX, blockY);
}
}
}
}
`

I have about 400 lines of actual code