This forum is for all things Hold 'Em, including bot strategy, bug reports, and anything else.
In the documentation on the Hold 'Em competition, some security and resource restrictions are mentioned, for instance memory restrictions and execution time restrictions. However i can't seem to find any mention of the actual numbers. How much memory is the maximum allowed, and how long per turn can the bot execute before being terminated?
Also, is it possible to make webservice calls from the Bot? I don't think the security restrictions would prohibit it, but i can imagine the box running the games might not have full internet access.
We’re still fine-tuning the details of resource restrictions, but for the Hold ‘Em competition they’re currently set at:
These resource restrictions are not intended to make it hard to write a good bot, but rather to cut off malbots that get stuck in loops, sleep for long periods, hog memory, etc. If there’s a reasonable case for expanding any of these, please let us know and we’ll do our best to keep things fair.
As for the permissions sandbox, we only include the Execute permission for bot AppDomains. There isn’t really a good explanation of what’s included in this permission except that it allows for everything that doesn’t require additional permissions. For example, accessing the network for Web service calls would require additional permissions, so that functionality is unavailable. Since the documentation isn’t always thorough regarding what permissions are required, the easiest way to test your bot is to run it in the Windows test client, which includes the same permission set as the production tournament environment.
We're very open to any feedback on these restrictions, so please let us know. Also, if you're aware of a security risk or other issue that impacts competition quality, please don't hesitate to post or email us at email@example.com.
Thanks for the detailed explanation Ed. I seem to have come across a bug in the test client of some sort. When creating an odd calculation algorithm, i seemed to be getting TimedOut problems for my bot. At first the algorithm was indeed way too slow and not fitting into 10 seconds for even one call. But now i dumbed it down a bit and it completes far faster, easily under a second. But still the TimedOut message appears in the test client log files the very first time the algorithm gets called.
Is it possible the test client shows this message for any other reason?
TimedOut shows up when the bot times out or the engine thinks it has violated one of the resource restrictions. If the time elapsed before the TimedOut occurs is clearly less than 10 seconds of execution, then it’s almost surely due to a resource issue. If it seems like the engine is being too aggressive and you have some code we could use to repro, feel free to send it over to firstname.lastname@example.org and we’ll look into it. It doesn’t need to be your bot’s logic, but even something generic that triggers the TimedOut.