Options

Google AI Challenge

CmdPromptCmdPrompt Registered User regular
OP shamelessly stolen from SA
I was going to post this in the programming thread but I think it's interesting enough to warrant it's own topic.

The Google AI Challenge is a contest where the objective is to make a bot that will fight against other bots in a game of Planet Wars. You are ranked based on how well your bot does.

What is Planet Wars?
Planet Wars is a strategy game set in outer space. The objective is to take over all the planets on the map, or altenatively eliminate all of your opponents ships.

Example of AIs playing
More interesting examples can be found on the site.

Planet Wars is inspired by Galcon, a popular iPhone and desktop strategy game. A huge thank-you goes out to the creator of Galcon, Phil Hassey, for letting us use his idea. You can play Galcon online against other people for free here.

The game is turn-based. Your bot is a function that takes a list of planets and a list of fleets, and outputs some orders.

When a fleet arrives at its destination planet, one of two things can happen. If the destination planet belongs to your bot, the ships from the fleet land on the planet as reinforcements. If your bot does not own the destination planet, the ships from the fleet are subtracted from the ships that currently occupy the planet. If the result is less than zero, then your bot gains control of the planet. If the result is exactly zero, then control of the planet does not change hands.

Getting Started
There is a 5 minute quick start guide located here.

There are official starter packs for different languages:
There are also other languages (Haskell, Lisp, etc.) available on the forums with unofficial starter packs.

Timeline
  • September 1, 2010: programming materials released to the public.
  • Friday Sept 10, 2010: official start date. You will be able to create an account and see your ranking.
  • Saturday Nov 27, 2010: submission deadline. No submissions will be accepted after 11:59 PM.
  • Wednesday Dec 1, 2010: official results and final rankings will be released. Who will be the winner? Will it be you?!

Community
The AI Challenge has forums located here and they are available on IRC at irc.freenode.net/#aichallenge

Useful things
Code for all of the backend
Alternate Python kit, which some useful functions
Unofficial server for testing (small and generally more skilled player base, faster matches)
Strategy guide

PA Entrants
CmdPrompt
Phyphor
The_Anonymous

GxewS.png
CmdPrompt on
«134

Posts

  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    Wow this actually sounds pretty fun to do. You guys should do a PA team.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    Mojo_JojoMojo_Jojo We are only now beginning to understand the full power and ramifications of sexual intercourse Registered User regular
    edited September 2010
    What is the prize?

    Mojo_Jojo on
    Homogeneous distribution of your varieties of amuse-gueule
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    They don't know yet.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    CmdPromptCmdPrompt Registered User regular
    edited September 2010
    Mojo_Jojo wrote: »
    What is the prize?
    Question: Are there any prizes?

    Answer: Maybe. We're working on that. There is of course the glory and bragging rights that come with doing well in the best programming contest ever made.
    "Placed nth in Google AI Challenge" sounds pretty good on your resume!

    CmdPrompt on
    GxewS.png
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Dammit, Civ 5 or coding... Civ 5 or coding...

    Phyphor on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    Minecraft or coding...

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Hmm well I seem to have broken the top 200 finally. Still a lot of stuff to implement though

    Phyphor on
  • Options
    ZeonZeon Registered User regular
    edited September 2010
    Oh man im so gonna try this when i get home. There used to be a game like this back in like... 1999-2000? It was little bugs you could program, and theyd run around this arena with other little bugs and kill them depending on their code. I had so much fun with that.

    Zeon on
    btworbanner.jpg
    Check out my band, click the banner.
  • Options
    kdrudykdrudy Registered User regular
    edited September 2010
    I really like the sound of this, I'm taking a look now. Mario AI didn't go that great for me, but I've been doing more game programming lately so hopefully this will work out better.

    kdrudy on
    tvsfrank.jpg
  • Options
    The AnonymousThe Anonymous Uh, uh, uhhhhhh... Uh, uh.Registered User regular
    edited September 2010
    Just submitted my third revision, am dying to see how it'll fare against other bots...

    The Anonymous on
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Bah, compile errors with no error output. Time to guess what GCC doesn't like...

    Phyphor on
  • Options
    HalibutHalibut Passion Fish Swimming in obscurity.Registered User regular
    edited September 2010
    Whoa, this is awesome!

    I've entered, now it's time to implement some strategy.

    I haven't delved too deep yet, but do you know if your bot can "see" the commands that the opponent has issued? I mean, once they have launched their ships, can you tell what planet they are leaving from and where they are going?

    Halibut on
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Yes, you get a complete game state, including enemy ships/planets. Your info will be a turn old since you have to issue orders for turn N before seeing the results in N+1

    Phyphor on
  • Options
    HalibutHalibut Passion Fish Swimming in obscurity.Registered User regular
    edited September 2010
    Yeah, that makes sense.

    I typed up a big long description of what my overall strategy is going to be, but I deleted it because I don't want to reveal too much yet. Maybe if it moves me up on the leaderboards...

    Halibut on
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Bah, they flag warnings as errors.

    Phyphor on
  • Options
    HalibutHalibut Passion Fish Swimming in obscurity.Registered User regular
    edited September 2010
    The online visualizer thing is awesome. You can really tell the difference between some of the top bots and the ones that are in the middle of the pack.

    After watching a few matches you can start to pick up on the strategies used by each bot. I imagine that in the top 100 or so there is a kind of crazy metagame of tailoring your bot to beat a range of the most successful competitors.

    Halibut on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    I'd imagine the top 10 or so would be a really nice set of complex AI functions written by AI programmers on staff at NASA or something.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    seabassseabass Doctor MassachusettsRegistered User regular
    edited September 2010
    Halibut wrote: »
    . I imagine that in the top 100 or so there is a kind of crazy metagame of tailoring your bot to beat a range of the most successful competitors.

    I dunno, most modern papers on game playing say that opponent modelling is difficult and really not beneficial. Most players either assume that the opponent thinks exactly like you do and assumes the opponent always does the most advantageous thing, or they just hallucinate a bunch of random games very quickly and take the first move that is most likely to lead towards a win for them.

    There are games where you actually need to model your opponent to do well, rock paper scissors being the simplest example, but my impression is that this is the exception and not the rule.

    seabass on
    Run you pigeons, it's Robert Frost!
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    The visualizer is great and pretty much required to get a feel for how its performing.

    There's a huge difference in ability once you climb the ranks. My bot is currently absolutely horrible at long range, open maps and mid to late game in general. In this game I grab an early lead but my barely worked on at all midgame combat routines don't keep up well at all.

    I don't think they specifically target for individual bots though, since one of the rules is to not attempt to determine if you're playing a specific bot and act accordingly. You can adjust to general strategy, but not specific opponents.

    Phyphor on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    Hm. That's a pretty neat game.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Oh it is. It's also given me fantastic opportunities to yell at my bot. For example, I have no idea why it was trying to constantly take the leftmost planet even as I was getting picked apart in this game

    Phyphor on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    :^: that was funny.

    Seems like the trick is getting land early and determining if your rival is going after large or small land masses.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Partially, each planet has its own growth rate from 0-5 ships/turn, so you pay an initial investment of N ships for R ships/turn. I generally calculate an ROI of N/R and if that's small enough and a bunch of other conditions are met I colonize it. Colonization distance and relative distance between friendly and enemy planets is also important since you have to wait before you get growth and at least protect the planet for long enough so you don't come out with a loss so that also gets factored in.

    Phyphor on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    Yeah it seems like a neat trick is to find out what their best ROI planets are and systematically pick them off, while simultaneously finding expansion areas. Man I am so tempted to do this.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    ForarForar #432 Toronto, Ontario, CanadaRegistered User regular
    edited September 2010
    So... Google is branching off into asking people to test AI stuff.

    Seems that "Don't be evil" really is just a cover.

    Guys, they're building Skynet!

    But seriously, this sounds pretty cool. I'm not a programmer, but I'm interested in how things turn out.

    Forar on
    First they came for the Muslims, and we said NOT TODAY, MOTHERFUCKER!
  • Options
    InfidelInfidel Heretic Registered User regular
    edited September 2010
    I think I'm going to throw my hat in the ring.

    Infidel on
    OrokosPA.png
  • Options
    InfidelInfidel Heretic Registered User regular
    edited September 2010
    I see Phyphor is #4 currently for Canadians.

    That will be my benchmark now, beating Phyphor at least. :lol:

    Nice job, btw.

    Infidel on
    OrokosPA.png
  • Options
    CmdPromptCmdPrompt Registered User regular
    edited September 2010
    Phyphor wrote: »
    Partially, each planet has its own growth rate from 0-5 ships/turn
    Just a note though, only the center planet can have 0 growth -- home worlds are +5, rest are between 1 and 5.


    Also if you're competing and would like to share, post a link to your profile and I'll put it in the OP.

    CmdPrompt on
    GxewS.png
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Thanks! I didn't check the per-country rankings, didn't expect to be that high. But, I have one of those University of Waterloo students above me... this will not stand. I must make up for the sad showing from my school :D

    Phyphor on
  • Options
    InfidelInfidel Heretic Registered User regular
    edited September 2010
    Phyphor wrote: »
    Thanks! I didn't check the per-country rankings, didn't expect to be that high. But, I have one of those University of Waterloo students above me... this will not stand. I must make up for the sad showing from my school :D

    Haha, which school is yours?

    Infidel on
    OrokosPA.png
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Infidel wrote: »
    Phyphor wrote: »
    Thanks! I didn't check the per-country rankings, didn't expect to be that high. But, I have one of those University of Waterloo students above me... this will not stand. I must make up for the sad showing from my school :D

    Haha, which school is yours?

    MUN, no entrants yet

    Phyphor on
  • Options
    The AnonymousThe Anonymous Uh, uh, uhhhhhh... Uh, uh.Registered User regular
    edited September 2010
    The Anonymous on
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited September 2010
    Ah, the zerg. It will work, sometimes

    I think this is by far my favourite match, ever



    edit: Actuall,y I fought this guy earlier who uses a modified zerg, so you can actually go fairly far with it. I remember a couple of top bots also have a very zerg-like behaviour

    Phyphor on
  • Options
    Lux782Lux782 Registered User regular
    edited September 2010
    I'm in. Time too read up on this crap

    Lux782 on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010

    See this is what I imagined. I imagined that there'd be three possible scenarios, a zerg, a moderate expansion, and a "wait until I get huge numbers and fuck your shit." Seems he went after the huge ROI planets and just waited you out.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    The AnonymousThe Anonymous Uh, uh, uhhhhhh... Uh, uh.Registered User regular
    edited September 2010
    bowen wrote: »

    See this is what I imagined. I imagined that there'd be three possible scenarios, a zerg, a moderate expansion, and a "wait until I get huge numbers and fuck your shit." Seems he went after the huge ROI planets and just waited you out.
    Well, the current state of my bot is "gimped". I'm still working on the new version that wasn't there when I posted that link. (read: WHERE THE FUCK IS THAT DEBUGGER!?)

    The Anonymous on
  • Options
    CmdPromptCmdPrompt Registered User regular
    edited September 2010
    Man, I can't imagine using C# when you're stuck with .Net 2.0, and no linq, lambda, etc.

    CmdPrompt on
    GxewS.png
  • Options
    bowenbowen How you doin'? Registered User regular
    edited September 2010
    I have very rarely used linq. I have found maybe 2 practical applications of it. I can't say for certain a practical use of a lambda at the moment. I haven't had the ability to upgrade our client code to .NET3 yet because we still have some legacy system on win2k.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    CmdPromptCmdPrompt Registered User regular
    edited September 2010
    Most AI work (as far as I know) is done using functional programming, which is why it's important here.

    CmdPrompt on
    GxewS.png
  • Options
    MonoxideMonoxide Registered User, ClubPA regular
    edited September 2010
    I like linq a lot but I probably wouldn't use it for this specific application

    what I will use is Python, because I miss coding in Python. I'll post my stuff up once I get something going.

    Monoxide on
Sign In or Register to comment.