Questions

Hi,

Is there still no plan to include the maximum rounds in the state file?

We will look into adding it, progress can be tracked here

1 Like

Awesome, thanks.
Any idea when the new starter pack will be released?

The newest version will be released before the first weekend of June…in other words, this weekend! :smile:

1 Like

When will we be able to upload our bot for the first round?

1 Like

Hi @ArcRusty

Bot uploads are now open, let us know if you have any issues
https://forum.entelect.co.za/t/bot-uploads-for-codename-renegade/429/2

This is very weird with the new balance of the game, it’s better to balance on the edge of an advantage and let your energy income score more points that to go for the kill

I feel that in the round robins the total number of rounds should be used instead of scores…

I am just thinking, If my bot destroys most other bots by round 50 and another drags their matches out.

I would find it unfair if a tie breaker is determined by score as I honestly feel that speed is worth more than score when determining a winner. (In the case of a tie)

Because a better bot will kill faster. This is just my opinion though…

Well maybe but I told my bot what they are doing and he said this is the best way to play then,but if they change it I’ll pass it on to him.

“Bot did nothing too many consecutive rounds”

However, using the same game states as reported in the match logs and running matches locally seems to work just fine.
The server seems to assume that the bot has not played, despite it showing on local runs that it will absolutely play a move for that state.

I believe that the start-up time limit on the server is causing my bot to time-out.

This does happen occasionally for round zero locally.

Could this please be addressed?

The bot selects moves for most states, but on the server, it hits round 49 with having hardly made a move and accumulated over 250 energy.

From the server logs, out of 100 moves (50 rounds, zelig running as both players) only a single move was made :

Hi @creepyLANguy

Can you please confirm that your bot is timing out. To do this please check the ‘BotOutput.txt’ file in the ‘Console’ folder of any of the rounds, preferably the last couple, for the text: “Bot Timed Out.”

This file will also contain any exceptions that might have occurred when running your bot. If this is empty, then your bot ran fine, it just did nothing.

Maybe, just maybe this is the same…

I will play for wins though. Even if my logic is score based. I do force fastest kills.

But nothing will stick till playoffs…

Looks like we have a lively group this year. It will be hard… But I am aiming for 1st place…

Tried to build a monte carlo style logic and ended with a few billion simulations for 3 rounds simulated. So I needed to change my approach a little.

Need to leave room for future upgrades as well…

When do we get the game parameters for Operation Firestorm?

I cannot help myself…

Once they have been criticized

P.S. one of those days

1 Like

Now I am getting anxiety…
I am like a druggie on the forums, have to get my fix each day to see if the new rules have landed.

2 Likes

Come play codingame while you wait?

I am avoiding getting into another programming thing. My time is limited to this as an excuse to not see anyone. If I add in a few more “games” then it will not be well received. Guaranteed!

I am looking to set aside time to update the viewer. It takes way more time to get that together than to write a bot. So weekends I am trying to keep open to be able to update it so that I can put less time in closer to the crunch.

We will soon have a new starter pack release with all the new rules and additions to the game, maybe as soon as before the weekend :wink:

1 Like

I believe @Dries mentioned this in “Game runner error?”

With starter pack 2.0.1…
I am still worried that missiles across-the-board for both players A & B are being moved in order from left (Player-A’s side) to right (Player-B’s side)… instead of for each player having their missiles moved in-turn starting with the missiles furthest from their base and ending with those closest to their base…
i.e.
round1: A image B

next-round:
round2: A image B (move-order A to B)
as m1 hits E1, thus opening the way for m2 to hit E2 - which I think is wrong!

where-as:
round2: A image B (move-order B to A)
as m2 hits E1 and then m1 moves 2 spaces into the now empty cell - which I think is correct.

(If both A & B are the same and are processed from left to right then player-A may have more energy for the turn than player-B, thus giving him an unfair advantage of +3 energy (or in the case of attacking structures it could result in an extra missile for A as B’s tower is killed a turn earlier than A’s)…
ie
A image B
next turn ->
A image B)

Thus:
A’s missiles must be moved in-order from B’s-side to A’s-side, while
B’s missiles must be moved in-order from A’s-side to B’s-side

I don’t think GameEngine -> Core -> TowerDefenseRoundProcessor.java -> calculateMissileMovement() currently achives this… (please correct me if I’m wrong…)


private void calculateMissileMovement() {
    int maxMissileSpeed = towerDefenseGameMap.getMissiles().stream()
            .mapToInt(m -> m.getSpeed())
            .max().orElse(0);

    IntStream.rangeClosed(1, maxMissileSpeed)
            .forEach(i -> new ArrayList<>(towerDefenseGameMap.getMissiles()).stream()
                    .filter(m -> m.getUnprocessedMovement() > 0)
                    .forEach(missile -> towerDefenseGameMap.moveMissileSingleSpace(missile))
            );

    towerDefenseGameMap.getMissiles()
            .forEach(m -> m.resetUnprocessedMovement());
}
1 Like

The results you are getting was due to the version numbering errors before “Release 2.0.2”, therefore the runner used the older version of the game-engine to calculate these.

So the calculateMissileMovement() function aims to move every missile one cell forward, then repeats this and moves them one cell forward again, but only the missiles that still have movement distance to cover.

So the only oddness in this method is that if 2 missiles occupy the same cell, there would be no way to know which one will hit the building first…this doesn’t matter though as the only difference at that point is the missile id (used by the visualizers)

1 Like