[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/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 idea concerning killer robot ants

It is currently Sat Apr 21, 2018 11:47 am Advanced search

Game idea concerning killer robot ants

Topics about starter packages, visualizer or any other third party tools.
Please submit new language requests in the Language Request Forum.

Game idea concerning killer robot ants

Postby Mistmanov » Fri Dec 03, 2010 12:52 pm

I propose an idea for a new game, inspired by lifeforms like ants and bees. It would be played on a symmetrical 2 dimmensional map of fixed size, which is either continous or divided into a grid . The terrain itself has no features, besides randomly (and symmetrically) distributed resources. Let's call it spice.

What we would be coding is the AI of a kind of worker drone. Each player starts with 1 or a small number of drones, and each of your drones runs an identical but seperate copy of the code - there's no direct sharing of information between them. The tasks of the drones are to harvest spice, build new copies of itself using the spice, and find and destroy enemy drones. The player that has the most drones at the end of the game (after x turns or x seconds) wins.

The drones have a limited view of the map - they can see everything that's within a certain radius, but nothing outside of it. Each drone has an outwards appearance (let's say a colour or scent), that they can change once per turn/timestep into one of a small number of discrete states (10 at most). This can be used to communicate in a limited manner with the other drones. If drone 1 sees an enemy that's outside of the field of view of it's ally drone 2, drone 1 might change it colour to red in order to signal "enemy sighted, come help me!".

If a drone is on a piece of terrain containing spice, it will automatically harvest the spice (which takes a small number of turns). It can then move the spice to a new/better location (e.g. a central location where multiple harvesters bring their stuff for better defense). Once the drone has found the "ideal" spot (which for the starter package bot would probably just be the spot where it found the spice), it can relatively quickly construct an egg (1 egg per unit of spice. Possibly drones should be allowed to harvest/carry multiple units of spice at a time). The egg then needs to hatch over a relatively long period of time, during which the worker drone who constructed it is free to go do something else. Once the egg is a hatched, a fully functioning new drone emerges. But as long as it isn't hatched, enemy drones can come along to destroy it, and the eggs have no defenses besides any friendly drones that may be around.

combat is initiated when drones from different parties are near each other / on each other (disabling collisions between the various drones/objects would make pathfinding etc a lot simpler I think, so that's to be preferred). It can be handled in the planetwars way, where combat just kills an equal number of each competitor, but I'm personally leaning to a hitpoint system. Every drone has 3-5 hitpoints, and during combat each drone deals out 1 damage to the weakest enemy drone per turn. This allows for more interesting tactics, but also complicates the game. The hitpoint system would mean that 2 drones moving as a pair will always destroy a lone drone without taking any losses (while in the planetwars system, 1 of the pair would also be destroyed). This makes the value of sticking together (e.g. building nurseries where all the eggs are build close together and defended by a group) much higher.

I think that's enough to already make an interesting game. In addition, we may allow drones to build walls, structures that enemy drones can't walk through and that are quick/cheap to construct and that have a few hitpoints. Adding walls would allow for the construction of well defended fortresses (awesome!), but would also require bots to get pathfinding capabilities (less awesome. Or at least, pretty complicated.)

The starter package bot would require the following:

1. It should produce a list of all the objects that are in the field of view of the drone, including the relative location to the current drone, the outward appearance of other drones, the number of turns left before eggs hatch, etc.

2. It should include at least a rudementary "move to object x" function. If the map has continous coordinates, this would just make the bot move in a straight line towards the object. If the map is on a grid, there are multiple fastest paths, and this function should just pick one of them in a predictable manner (e.g. always start the movement with the diagonal component)

3. It should include the "change colour to.." and "build egg here" functions.

And that's it I guess. With those elements in place, you can already build a (really dumb) starter bot.

The parameters that need a value (and that might be changed to balance the game better):

Turns required to harvest spice = 3
turns required to build egg = 3
turns required to hatch egg = 15
hitpoints of egg = 5
hitpoints of drone = 5
movement rate of drone (number of squares you can traverse per turn) = totally dependent on map size
view radius: 4-5 x movement rate. The lower, the more it's necessary to scout against incoming enemy raiding parties.

(feel free to just state "your idea sucks". I had fun just thinking about it =))
gameidea.jpg
gameidea.jpg (61.11 KiB) Viewed 2781 times
Last edited by Mistmanov on Fri Dec 03, 2010 4:10 pm, edited 3 times in total.
Mistmanov
Colonel
 
Posts: 70
Joined: Fri Sep 24, 2010 6:50 pm

Re: Game idea

Postby amstan » Fri Dec 03, 2010 1:00 pm

I really like the idea, it sounds cool. It's similar to the minecraft(2d, rts like) like ideas i had too(to be posted soon).
What's wrong with infinite maps though?

I imagine the programs will be pretty short. But it still shows AI.
Alexandru M. Stan
Contest Organizer
User avatar
amstan
Contest Organizer
 
Posts: 691
Joined: Sun Jan 31, 2010 4:02 am
Location: Stoney Creek, Ontario

Re: Game idea concerning killer robot ants

Postby Mistmanov » Fri Dec 03, 2010 1:21 pm

infinite maps and finite field of view seem like a bad combination to me. Depending on the movement speed / distance between starting points, you're going to get a lot of games where the two enemies never encounter each other (or where only a few scouts happen to run into each other). That's undesirable imho.
Mistmanov
Colonel
 
Posts: 70
Joined: Fri Sep 24, 2010 6:50 pm

Re: Game idea concerning killer robot ants

Postby meneky » Fri Dec 03, 2010 3:07 pm

Great game idea. It looks very interesting, and although i have a very weak AI background i think that this game will give us the chance of experimenting with emergent behavious from very simple rules (due to having very restricted the communications between the drones and the restricted field of view). I really like it.
meneky
Cadet
 
Posts: 5
Joined: Sun Oct 24, 2010 7:29 pm

Re: Game idea concerning killer robot ants

Postby mleise » Fri Dec 03, 2010 3:32 pm

Hey, nice idea. I hope you don't mind if I link in a post of me where I propose something very similar, Mistmanov. I was thinking of the old game that worked pretty well and spawned a lot of new strategies over the years when it was popular:
Do you need a mascot for your idea?:
Image
mleise
Lieutenant-Colonel
 
Posts: 42
Joined: Mon Sep 27, 2010 6:18 pm

Re: Game idea concerning killer robot ants

Postby ZogStriP » Fri Dec 03, 2010 3:52 pm

Pretty neat idea!

I would love to write some AI for a 2d RTS and yours is quite excellent!
ZogStriP
Cadet
 
Posts: 7
Joined: Tue Nov 30, 2010 2:10 pm
Location: Paris, France

Re: Game idea concerning killer robot ants

Postby protocolocon » Fri Dec 03, 2010 4:51 pm

I like the idea of individual communicating instances of AI code, and this ant proposal seems very appropriate to me. I would simplify the problem as much as possible:

- Finite discrete symmetrical reduced maps: 32x32 would be enough (no wrapping)
- Finite instances: 10 (would be enough to maintain addiction and simplify the job to organizers). No egg hatching until 10th ant is dead. This besides will increase aggressiveness.
- Reduced states in each instance: 1 to 4 bits is enough to enable serial communication protocols between instances.
- Simplified battles proposal: any ant, at any time, could decide to explode destroying everything in a short radius (spice, enemy ants, friend ants, eggs, ...)
- Two players alone per match.
protocolocon
Cadet
 
Posts: 2
Joined: Thu Oct 21, 2010 3:59 pm

Re: Game idea concerning killer robot ants

Postby DaTwinkDaddy » Fri Dec 03, 2010 5:20 pm

I think going with something like RoboCom (or something already established) might be better, just so we don't run into situations where we've accidentally under-specified the game and get complaints when we "change the rules". Depending on where you got PlayGame.jar from, it didn't do correct battle resolution for a couple of weeks after we decided what correct battle resolution WAS, which wasn't until after the contest official started.

If there's some resistance to doing a "old" (a.k.a. established) game, there should be more time for fully-specifying the rules before the start of the next competition than was available for this competition. Yes, that was me volunteering to (help) write and test example AIs and the game engine.
User avatar
DaTwinkDaddy
Lieutenant
 
Posts: 16
Joined: Tue Nov 30, 2010 5:54 am
Location: Fayetteville, Arkansas, USA

Re: Game idea concerning killer robot ants

Postby lavalamp » Fri Dec 03, 2010 5:45 pm

lavalamp
Colonel
 
Posts: 56
Joined: Wed Oct 06, 2010 9:10 pm

Re: Game idea concerning killer robot ants

Postby Meatkat » Fri Dec 03, 2010 6:07 pm

Some ideas to simplify things a bit:

Food/HP/Eggs
All ants are born with 5 hp. They can then eat spice to increase this number up to 10. Laying an egg takes 5 hp and X turns. That way you don't have to worry about carrying spice, etc...

Time Limits and Game Storage
I think a global wall clock limit could be imposed again on each turn. As a programmer I then have to take into account the number of ants can be on the map when designing my code. Keeping with the 'you loose if everything's not done in a second' thing would provide a pretty strong incentive to stay within the time limit. Commands could still be written to the standard out from each program, which can't end up being too much larger than your average PW game (several hundred fleets for each player in the air simultaneously).

Sand boxing
Players provide the ant Object to the program. The program then keeps track of the ant Objects calling Ant.run() on each every turn - somehow making sure they don't communicate. Sounds like it's feasible... maybe?

Balance, attack incentive
Initially there are spice deposits across the map. However there are a very limited number of spice generators placed along the dividing line. Who controls the spice generators controls the universe! To reduce the number of ants, make spice consumption give less hp and/or take longer or increase the cost/hatch time of eggs. To increase the chances of head to head, increase the spice generation of the generators. I would be against a hard limit on the number of ants.

Communication
Communication is going to be the key to complexity here. 'Colors' or whatever will be have to used to convey scouted information, elect leaders, form groups, etc... I think that it would be appropriate to have at least 3 or 4 bits of information for 'coloring' purposes. Also it would be important to state that ants can only see the color from nearby ants from last turn.
EDIT: To spot communication from getting too out of control it could cost hp or something to send out a message, even a small amount would be enough to stop superfluousness communications from taking up too much computational time, say .05 per turn that you want to send out a message... or something like that.

Combat
I think the combat system should be reworked, it seems a bit... awkward at the moment. I believe something that 'locks' ants into combat might be appropriate (they are ants after all!). This stops a full hp ant from just crossing through your square to kill the eggs your are guarding. Though this brings up more challenges multiple-lock combats and/or who goes first to lock. To get around this maybe you could ask ants for the lock() move or whatever at the beginning of the turn, before movement. I'm not sure what's best here... sorry!

Anyway, hope some of that is worth adding in.
Last edited by Meatkat on Fri Dec 03, 2010 6:17 pm, edited 1 time in total.
Meatkat
Lieutenant
 
Posts: 14
Joined: Sun Oct 03, 2010 7:38 pm

Next

Return to Starter Packages & Tools

Who is online

Users browsing this forum: No registered users and 1 guest

cron