[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4586: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3765)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4588: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3765)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4589: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3765)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4590: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3765)
AI Challenge Forums • View topic - Please add a brief TCP Server description

It is currently Tue Jan 23, 2018 12:30 am Advanced search

Please add a brief TCP Server description

Ideas for the Future

Please add a brief TCP Server description

Postby KonaEarth » Mon Nov 28, 2011 7:40 pm

I have written computer network code since before the Internet (literally). I worked at Cisco, helping to create the Internet (ok, a slight exaggeration, I'm not Al Gore or anything). I have worked at EA and other game companies as a lead programmer and have written the network code for several different games. I mention all that to say that I know a bit about TCP. Yet as familiar as I am with making computers play together, the purpose and importance of the TCP servers was not obvious to me. For more details, see this forum post:


I propose that a brief description be added to this and future AI Challenge websites. For example, on the Quickstart Guide, step 6 could be amended as follows:


Since you've submitted an entry, your name will soon appear on the global leaderboard. It can take up to an hour for your name to appear, but usually only takes a few minutes. Alternatively, check out the unofficial TCP servers to play in a scrimmage match.


The unofficial TCP servers link can go to a page with a slightly better description, such as:


To play in an official match, you must upload your source code to the contest server. Your code will automatically be compiled and tested. Assuming all goes well, it will then be added to the queue and matched against other bots.

When your turn arrives, the server runs your bot against one or more other bots, each in its own thread. Communication is through standard text I/O (see game specification for more details.) The server carefully controls the run-time environment to ensure fairness and prevent cheating. Results of the match are then added to the official leader board. This process is designed to ensure balanced matches and is not always fast. Alternatively, you can play on an unofficial TCP server.

What is a TCP server?
A TCP server is an independent server that emulates the contest but is not officially affiliated with the Google AI Challenge. Matches run on a TCP server do not affect your official ranking. TCP servers may use different settings, outdated maps or follow a completely different set of rules. Since they are independent, the Google AI Challenge does not endorse any specific TCP server.

Why use a TCP server?
TCP servers are great for development. Their biggest advantage is speed. Matches usually happen much more often then on the official server. There are many different TCP servers to choose from, some private and some open to the public. If you wanted to, you could even run your own TCP server for you and your friends, coworkers or classmates.

How does a TCP server work?
Since TCP servers are not officially endorsed, each one is different and you will need to visit the forums or github for more information. On a basic level, they all function similarly. Rather than uploading your source code and communicating with the server via standard I/O, your bot is run on your local machine and communicates with the server via TCP. Some mechanism, often a Python script, allows your bot to download input data from the server then upload output commands back to the server. This has advantages and disadvantages.

The primary advantage is speed. Computation time is shared by many computers which allows matches to be run much more quickly. Rather than waiting hours for your next match, the wait time can be only a few minutes or less. This is great for development. There is no need to upload your source code, you can make changes as often as you'd like, you could even use real-time debugging if you wanted to. Your bot is running on your local machine so you can use whatever tools you'd like and the only limit on memory usage and hard drive space is whatever your computer can handle.

The primary disadvantage is fairness. Internet latency means you may occasionally experience lag and timeout even though your bot is running fine. Since every bot is running on a different machine, the server has no way to prevent cheating. For all you know, that enemy bot could be running on a very fast computer or even a whole network of computers working together. With the right real-time tools, it would even be possible to give a bot live human guidance. Of course such things will not work on the official contest server.

Where do I sign up?
Since TCP servers are unofficial, there is no one place to sign up. Your best bet is to check the forums for the latest news. Each TCP server may be different with its own set of rules and procedures. Most will have a "How To" page with instructions on how to communicate with the server. Below is an unofficial list of some popular servers. Use at your own risk, the Google AI Challenge does not endorse any of the following:
<insert list here>


Of course the links would have to be fixed to actually work and those last few sentences could be removed if the AI Challenge doesn't want to support any TCP servers. Mentioning a few TCP servers sure would be helpful though. It would be great to have one place where a handful of well-run TCP servers could be advertised.

I think TCP servers are a natural part of development. In fact, before discovering them I was disappointed that there wasn't such a thing. The AI Challenge became much more exciting once I discovered all the active development that was occurring on the TCP servers. In a sense, that is where all the action is. I feel that not knowing about the TCP servers puts new competitors at a serious disadvantage. Therefore I feel that it is vital for the official website to include at least a brief mention of the TCP servers.

My description may be flawed as I am only guessing at the actual implementations. Any corrections and comments are welcome.
KonaEarth
Major
 
Posts: 33
Joined: Thu Nov 25, 2010 1:51 am

Re: Please add a brief TCP Server description

Postby pguillory » Wed Nov 30, 2011 12:25 am

Yeah, this would have been pretty useful. The official servers aren't really viable for development purposes. Which they can't be, really, when it takes like 20 minutes of server time to run a game. I imagine that would get pretty expensive.
pguillory
Lieutenant
 
Posts: 10
Joined: Thu Nov 17, 2011 7:39 pm

Re: Please add a brief TCP Server description

Postby rohanag » Fri Dec 16, 2011 2:01 pm

i agree, waiting an hour for your turn is a very very long time :) especially when u'v started out very late :P
rohanag
Lieutenant
 
Posts: 11
Joined: Wed Dec 07, 2011 9:10 pm


Return to Suggestions

Who is online

Users browsing this forum: No registered users and 6 guests

cron