Friday, January 13, 2017

Scrimmage Server Idea

The Current Setup

Currently the way the scrimmage server is setup for Battlecode teams can upload a bot they have written and test it against other teams in either ranked or unranked matches. The resulting rank of the teams is used for placement into the first tournament. Only teams who fight each other, and the game moderators, can watch these matches. Anytime two bots fight each other only the most recently uploaded versions actually fight.

The Problems With This

What ends up happening due to this setup is teams often only fight or accept ranked matches if they believe they may win. This helps them to gain a higher ranking.

Teams will often not allow unranked matches either because they don't want to give away their bot's strategy by letting those who spar with it see the replay.

When teams do allow fighting they almost never upload and play with their newest latest and greatest bot.

Unless the developers and moderators have another way of viewing bots that each team is working on, they won't see the most current and advanced versions of code teams are working with. Meaning they may not see many useful and interesting matches.

The Idea For Next Year

I think it would be super cool to setup the scrimmage server in a different way. I think there should be a prize or reward of some kind for staying at the top of the rankings the longest during the few weeks of the competition. This will give the teams an incentive to place highly.

Next, I think teams should be able to post as many bots as they like. They can have their main bot containing the best of everything they have come up with so far and then other versions, spin-offs and strategies as separate bots.

When a team uploads a new bot or updates one of their existing ones on the scrimmage server it should automatically fight against all other bots on the server. All fights should automatically be ranked and as soon as those fights are processed the over all team rankings should reflect the results.

In this way, being able to repeat fights and change rankings due to the number of matches would not be possible. Rankings would solely be based on how well the bots did in one match opposing each existing bot on every existing map.

The way to keep from freely giving away each team's strategies to every other team is simple. Instead of choosing teams to run a match against, as is done now, teams would choose to view a match that has run. By choosing to view the match that team is approving the opposing team access to also view the match.

If, and only if, both teams choose to approve viewing of the match will it open up for either to see. Also both teams should have the option to make the match public. In the case that both teams allow public viewing of the match, it will appear for any other teams, and anyone on the internet actually, to view.

In Summary

If this idea was used the developers would have a much better view of what teams were actually up to, if they don't already. Teams would be more motivated to place all their best strategies on the scrimmage server. Teams would also have a better view of how different strategies play out with a more realistic ranking and knowing when they won/lost, even if they weren't allowed to watch the playback and know exactly what happened. The biggest downside is the tournament results wouldn't be as exciting since the change from scrimmaging to tournament may not be as big of a leap.