[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/bbcode.php on line 112: 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 112: 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 - Game mechanics question answered!

It is currently Sun Jul 22, 2018 4:48 pm Advanced search

Game mechanics question answered!

Share and discuss ideas for your entries here.

Game mechanics question answered!

Postby DanielVonFange » Mon Sep 13, 2010 12:26 am

The awesome jmcarthur has written up detailed specs on the gameplay and bot protocol. Find it here:

http://ai-contest.com/specification.php
DanielVonFange
Brigadier-General
 
Posts: 149
Joined: Wed Sep 08, 2010 1:15 pm

Re: Game mechanics question answered!

Postby codeRage » Thu Sep 16, 2010 2:47 pm

Could you please sticky this (maybe with a different title)? I see a lot of people that ask the same neutral+2fleet question over and over.
codeRage
Major
 
Posts: 30
Joined: Sat Sep 11, 2010 6:13 pm

Re: Game mechanics question answered!

Postby jmcarthur » Thu Sep 16, 2010 5:26 pm

Well, it is linked from the front page.
jmcarthur
Colonel
 
Posts: 80
Joined: Fri Feb 05, 2010 3:41 pm

Re: Game mechanics question answered!

Postby voidptr » Fri Sep 17, 2010 4:25 am

(1) Are we now guaranteed that the game will last 200 turns, and the winner is the one with the most ships at the end of the 200th turn? This had been still under debate last time I checked the forums. If it's really set in stone now, that's awesome. If it's not yet set in stone, then the spec is currently lying.

(2) Are all the maps set up so as to guarantee correct rounding of floating-point arithmetic when computing distances? If planet A is at (0.1,0.1) and planet B is at (3.1,4.1), then some implementations might compute the distance between them as (int)5.0001 == 5, while some compute it as (int)4.9999 == 4. Perhaps the random map generator should be set up to reject any maps with pairwise distances that are within 0.00001 of an integer. (N.B.: This is a serious issue! Floating-point math is tricky, and any claims that precise distances don't matter won't earn any points from serious competitors.)

(3) What is the maximum distance between planets on the map? This is very important for any player who uses lookahead. Clearly, in a game of only 200 turns, a map with diameter 500 requires a very different strategy from a map with diameter 3.

(4) What is the maximum growth rate? I'm sure most players assume that it's 5.

(5) What is the minimum growth rate? I'm sure many players assume that it's 1, but there have been rumors of planets with growth rate 0 in the maps directory. Can a planet have a negative growth rate? I would hope not.

(6) What is the starting setup? I'm sure most players assume that each player starts with a "homeworld" of growth rate 5 and initial population 100. Changing the starting setup will assuredly break most of the interesting bots, so it's important to set this in stone.

(7) Can bot orders contain #comments? It's very strange that the bot's *input* can contain #comments but its *output* can't. However, I don't mind, since I just send my #comment output to stderr instead of stdout and then it's all good.

(8) Is there a difference between "losing" a game, "forfeiting" a game, and "being disqualified from" a game? I would tend to interpret those all as synonyms, but the Endgame Conditions appear to be trying to exploit some undefined difference between them: "A bot exceeds the time limit ... and is disqualified. This ... may change in the future to simply be a forfeit." If a bot is "disqualified", does that mean that the player is notified via email with a link to the offending game, and the offending bot is removed from the rankings?

(9) Can a bot be disqualified for sending an order such as "0 1 -1", where the number of ships in the fleet is negative? I would hope so. Likewise, "-1 0 1" and "0 -1 1" (negative or out-of-range planet indices) should result in disqualification.

(10) Can a bot be disqualified for sending an order such as "0 1 0", where the number of ships in the fleet is zero? I would hope so, but this REALLY needs to be clarified, because other people may already be relying on the ability to send fleets of size zero.
voidptr
Brigadier-General
 
Posts: 139
Joined: Sun Sep 12, 2010 7:22 pm

Re: Game mechanics question answered!

Postby voidptr » Fri Sep 17, 2010 4:37 am

EDIT: removed my old #11; it actually makes sense the way it is, and I'm going to comment on . Renumbered 12->11 and 13->12 below:

(11) Can the distance between two planets be 0? (Again, please no handwaving about how unlikely that would be; I'd like to see it be either explicitly allowed or explicitly prohibited. Preferably prohibited.)

(12) And is there any particular minimum distance between the two players' starting planets? My current bot has some sneaky code that handles the case where the opponent launches a whole bunch of ships on the first turn, leaving his homeworld undefended, in which case we can hold back a medium-sized force to launch against his homeworld on turn 2; but this trick is only really worthwhile if the starting planets are within 3 or 4 units of each other, and this never seems to happen on the default maps.
voidptr
Brigadier-General
 
Posts: 139
Joined: Sun Sep 12, 2010 7:22 pm

Re: Game mechanics question answered!

Postby Boojum_ » Fri Sep 17, 2010 6:28 pm

Boojum_
Cadet
 
Posts: 3
Joined: Fri Sep 17, 2010 6:21 pm

Re: Game mechanics question answered!

Postby Terr » Fri Sep 17, 2010 6:34 pm

On the other hand, 0-sized fleets are really easy to ignore and skip.

The real spam problem is going to be sending 50 fleets individually of size 1 along the same path in the same turn. You can't just ignore those, you need to de-dupe and collapse them into a single fleet of size 50. The server/game-engine should be responsible for this kind of de-dupe at the time that it parses incoming orders.
Terr
Brigadier-General
 
Posts: 155
Joined: Mon Sep 13, 2010 9:19 pm

Re: Game mechanics question answered!

Postby voidptr » Fri Sep 17, 2010 8:15 pm

voidptr
Brigadier-General
 
Posts: 139
Joined: Sun Sep 12, 2010 7:22 pm

Re: Game mechanics question answered!

Postby temp_dummy » Sat Sep 18, 2010 11:18 am

I will adopt the Best/Worst principle.

Give it your best, expect the worst.

Worst: I'll implement de-duping in my bot, it's easy and the cost is negligible.
If the server starts de-duping it's even less.

Best : I'll be a good sport man and I will not dupe my commands explicitly.
If my bot decides to send a few duplicate due to the decision making , so be it.
If I notice this takes on a spamming behaviour, I'll implement de-duping in issue command.

And now just hope everyone else does the same.
Last edited by temp_dummy on Sat Sep 18, 2010 1:27 pm, edited 1 time in total.
temp_dummy
Colonel
 
Posts: 87
Joined: Sat Sep 11, 2010 6:00 pm

Re: Game mechanics question answered!

Postby DanielVonFange » Sat Sep 18, 2010 1:01 pm

FYI: The server is already merging fleets.
DanielVonFange
Brigadier-General
 
Posts: 149
Joined: Wed Sep 08, 2010 1:15 pm

Next

Return to Strategy

Who is online

Users browsing this forum: No registered users and 1 guest

cron