Terminal Game Q&A

ELO is a commonly used metric for ranking a lot of games use. Essentially more you win the higher it gets and it takes into account the ELO of the enemy as well. So if you beat someone with a high ELO you gain a lot of ELO.

1 Like

@jafioti
TL;DR: your algo starts with 1500 ELO points. You face other algos with similar ELO. The winner will take ELO from the loser.

1 Like

Did something break? Global leaderboard matches are ending in crashes left and right. I’m sitting here watching all the ELO’s drop like stones, haha.
Just watched 4 replays in a row where both mine and the opponent algo crashed on Turn 0… yet nothing has been changed or recompiled since its been working well for a few days.

1 Like

It seems that now it’s working again. At least, after three crashed matches, my last match went correctly; so I guess everything is going well now.

1 Like

@KauffK, @salanueva

We deployed a hotfix around 6pm EST today, and some of our services were desynchronized during that process (The server that runs ranked games and some data it depends on).

One of them updated about 10 minutes before the other, and during that time ranked games would crash when started. This issue has been resolved, and we will be working on our update process to make things smoother in the future.

1 Like

What is the good way to play adaptive in defense?

One way to do this is to save gamestate from previous turn before combat phase and compare with actual turn to get the list of destoroied firewalls and guess that if u lost a health points and firewalls at given location that means that u need more defense around this location.

But this solution is time consuming. Did i miss something? Is there any easy way to get information about what units did my opponent deploy last turn and if/ where did they hit me?

1 Like

If you look into the algocore, you can see how the engine and game communicate, and get data about action phase frames. Its a fairly small hint, but hopefully it helps a little! Like any programming goal there are lots of ways to accomplish this, its up to you to find the best one

3 Likes

Here’s a question. For the CodeBullet challenge, it does not seem to allow me to select an algo. Whenever I choose any of my algos from the drop-down menu, after refreshing the page, the selection has changed back to “Pick my best algo”. Is there something I’m missing about how this works?

1 Like

@KauffK - Did you look at your row in the player table to see if it updated your algo choice there?

1 Like

Interesting. It does remain updated in the table after refreshing.

1 Like

oh no you are in the codebullet competition, there goes my winning chance :grimacing:

2 Likes

To be fair, if everyone that’s signed up turns in an algo, isn’t like 2/3 of the global player base technically in the codebullet competition? :stuck_out_tongue:

1 Like

yeah but that means people have to actually put in their algo, which only about 160 people did :stuck_out_tongue:

1 Like

By default anyone who clicks the ‘join’ button will have their highest Elo algo chosen when we run the competition, so long as they have at least one algo uploaded. I believe an engineer was working on a fix for that ‘My best algo’ drop down last week, I would imagine it will be deployed sometime next week.

As an aside since we are talking about CB, i’ll be streaming the top 8 thursday night, ill make a forum post with the exact time and a twitch link.

4 Likes

Will that fix be implemented before the CB tournament due date? If not, I guess I could delete all my other algos and just leave the one I want to compete with.

2 Likes

Sorry if I was unclear!

Selecting your algo DOES work, it just isn’t communicated at all. If you select an algo from the drop down, instead of the dropdown changing to your algo, it will still read ‘Choose your best algo’ or whatever the default is. If you refresh the page and check your competition entry, you will see that your submitted algo is the one selected in the drop down.

2 Likes

Oh I see. Thanks for clearing that up!

1 Like

What are the specifics of Python algorithms?

  • Matches on your servers use python 3.7, right?
  • Any plans of supporting PyPy or something? That would speed algorithms up considerably, and would be nice for adaptive algos.
  • Is multithreading supported?
1 Like

is there a way to see what decisions the opponent made last turn, specifically the locations they placed their information units? i looked in gamelib but couldn’t find anything about that.

1 Like

Short answer: There is a way that you can do it, but it isn’t built in, and you have to modify the code to do so.

Long answer:

You need to modify AlgoCore to get this information. A thread that discusses how to do this in more detail is: https://forum.c1games.com/t/how-to-find-where-my-or-my-enemys-information-units-scored/240/8. However, this thread discusses breach information, while you are looking for spawn information.

To do this, first go to game_state.py. When I did this, I added a line in the GameState.__init__ where I created an array to store all information units on the board. I called this self.units. I then modified the __create_parsed_units function. At the very end, add the lines

if not is_stationary(unit_type):
<indent>self.units.append(unit)

This will fill the array self.units with all of the information units that existed in that frame. In the parse_action_phase function (detailed in earlier link), you will only want to go through everything if it is the first frame of the aciton phase. You can then go through the list of units, take the ones that belong to your opponent, and store the relevant information.

Note: I likely made several mistakes in my explanation. If I was unclear at any point, just ask me to clarify.

2 Likes