Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (491)
Games in Android Showcase (112)
games submitted by our members
Games in WIP (556)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  What do you think of an AI contest?  (Read 10133 times)
0 Members and 1 Guest are viewing this topic.
Offline misterX

Junior Member




java forever!


« Posted 2004-10-03 09:56:03 »

hi guys!

Some time ago, i was toying around a new game, and it turned out that making the AI was a real challenge. I tried some simple stuff but the results were pretty poor and i feel there is much potential on developping AI. So i thought, it would be even more interesting to focus only on the AI and make a contest out of it!

...As you can see, it is very vague now. On the other hand, i can't say more so that the contest could take place "correctly", unvailing the details to everyone at the same time. The only thing i can say now is that it has much potential and can be implemented with a variety of techniques. ...And it's not that easy. ...And the AI's will compete against each other. ...It'll be fun, you'll see!

If there is enough people wanting to take part of such a contest, then i'll make a small framework to build the AI on the top of it and to visualize how it performs or "quick-testing" it. Then start dates and deadlines will be set and details unveiled.

What do you think of this?

PS: I promise it'll be interesting  Grin
Offline darkprophet

Senior Member




Go Go Gadget Arms


« Reply #1 - Posted 2004-10-03 17:27:32 »

that would be cool. What im thinking is that someone builds a game of some sort, and we have no players, just AI involved. And we see which AI wins  Smiley

But the thing is, if someone does it in jME then jME accustomed users will have an advantage over Xith3D ones as they can optimise for things....etc. And the opposite is true.

Thus the underlying technology MUST not be revealed.

What kind of game? fighting seems a pretty nice challenge Like tekken3 or something?

DP

Friends don't let friends make MMORPGs.

Blog | Volatile-Engine
Offline Malohkan

Senior Member




while (true) System.out.println("WOO!!!!");


« Reply #2 - Posted 2004-10-03 18:54:19 »

I like it!  I'd take part in a contest like that

Admin and Game Developer at
GameLizard.com
Play Rimscape!    |    Play Conquer!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline misterX

Junior Member




java forever!


« Reply #3 - Posted 2004-10-03 19:02:58 »

cool!  Wink

It's exactly what you meant, what i'll provide is a simple game skeleton where AI players compete against each other. However, i can't tell the sort of game now. No evolved libs will be used, just plain standart java2D, so that there is no need to install libs nor compatibility issues. Then you'll use some interfaces acting as a layer between the game and the AI.
Offline ap_kelly

Junior Member




Java rocks!


« Reply #4 - Posted 2004-10-03 21:18:26 »

I see the Robocode project being the ideal framework for this competition.

http://robocode.alphaworks.ibm.com/home/home.html

They even have leagues setup and demo bots that you can test your code against. It seems silly to invent a new framework, and the robocode stuff is already written in Java!

The hard part of any competition like this is the judging, how do you decide a winner? It's easy if your AI is testing skills like fighting, the last bot standing wins, but how do you test other routines? If the test is path finding then things like A* have already been developed and are widely seen as being the best they can be for given situations.

Andy.

Offline jherber

Junior Member




Java games rock!


« Reply #5 - Posted 2004-10-03 22:50:39 »

sounds like fun, but robot wars has been around since the days of the appleII.  maybe we should shoot for something that looks at other ai application dynamics.

how about:

- each player gets to control n number of bots

- winner determined by team that destroys the other team's base first.

- optional twist could be adding landscape factors where  bots could get trapped, slowed, or damaged if not careful.

- another optional twist might be to allow the agents to modify the environment (blow up barriers, create barriers kinda thing.)  

- bots should be resource bound.  no bot should be able to fire an infinite amount of rounds, etc...

- scoring system would take into number of bots you had left when you won.  it should also be a time-limited event with a slight penalty for draws to prevent sand-bagging strategies.

- implementation of the framework might best be done by providing a bot battle ground server where your bot proxy is controlled by issuing bot commands.  all queued up bot commands that are received are played out based on timestamp for a given game unit timeslice.  controlling clients are free to send their bots commands as often as they like, but each command type should have an effective window of completion.  additional commands received while performing an uncomplete task for a particular resource system of the bot is ignored.  for example if client A sends 100 fire commands in 5 ms and we deem firing to take 10ms, then the bot will only fire once.   but, you could send a fire command and a move command 1 ms apart and have them execute immediately because they involve two separate resource systems of the bot (locomotion system and weapons system.)

just a few thoughts...



Offline Malohkan

Senior Member




while (true) System.out.println("WOO!!!!");


« Reply #6 - Posted 2004-10-04 01:13:05 »

Hey that sounds like a fun game, I wanna play it! Smiley

Admin and Game Developer at
GameLizard.com
Play Rimscape!    |    Play Conquer!
Offline misterX

Junior Member




java forever!


« Reply #7 - Posted 2004-10-04 12:40:26 »

yeah, robocode is a nice cool app... however, this was a proposal for an alternative challenge. Making such an improved robocode would be out of my capabilities anyway and way to much coding.  Lips Sealed
Offline darkprophet

Senior Member




Go Go Gadget Arms


« Reply #8 - Posted 2004-10-04 13:09:51 »

this has progressed from something managable to something that has to be done by a trillion developers. In other words, it doesn't need to be that complex.

I have created a nice little AISystem that sits on top of jME. All it does is fire events for each entity (or global events), set agent actions (for each entity), send messages to other entities (or globally too) and obtain entitites from collisions. I think this is the ideal framework to get started on. Its managable and every extendable. Its only meant to provide a consistant frameowork and not meant to be a complete AI solution to all AI problems. But I did write it, so I might have an advantage...Any other ideas?

Ok, idea.  Grin
Has anyone played Worms? You know, the little worms that kill other worm using different gun methods? why not that, but with AI. It could only be used as starters. No pathfinding is completely necessary, just testing routines and effectiveness...last surviving wins  Smiley
What ya think?

DP

Friends don't let friends make MMORPGs.

Blog | Volatile-Engine
Offline ap_kelly

Junior Member




Java rocks!


« Reply #9 - Posted 2004-10-04 21:30:53 »

I thought this was supposed to be a poll on having an AI contest. It seems now that you're having to write your own framework to run the contest before you've even started to design/build the agents that are to be compared.

Thats why I suggested Robocode, the framework is already written, people can start writing the agents straight away, it's a level playing field since no-one here (I presume) wrote Robocode.

Is this a contest for developing AI agents or see who can write the best AI framework environment?

Keep it simple and more people will enter. If you want to do more than Robocode provides, extend Robocode, the source is available, why start from scratch?

Andy.

PS: I'm in no way affiliated with Robocode. I just don't see the benefit in writing a new framework for this contest, and then debugging that framework during a contest.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline jherber

Junior Member




Java games rock!


« Reply #10 - Posted 2004-10-05 00:21:44 »

Quote
Is this a contest for developing AI agents or see who can write the best AI framework environment?


it is neither.  it is a solicititation for interest in an ai contest.
Offline misterX

Junior Member




java forever!


« Reply #11 - Posted 2004-10-05 06:19:48 »

yeah, this discussion is going in every direction...
To state it again: if enough people are motivated i can work and provide a simple framework and the contest would be to write the best agent AIs.
...but i don't feel enough people will take part.
Offline jherber

Junior Member




Java games rock!


« Reply #12 - Posted 2004-10-05 11:28:59 »

Quote
yeah, this discussion is going in every direction...
To state it again: if enough people are motivated i can work and provide a simple framework and the contest would be to write the best agent AIs.
...but i don't feel enough people will take part.


i think you are right.  seems, we are all more excited about writing or proposing such a framework than providing the ai for it!  maybe we should have an ai plug-in framework writing contest?  or maybe we need an ai agent contest that has cash prizes?  on a related frontier, there are some pokerbot writers that are doing pretty well these days.  
Offline darkprophet

Senior Member




Go Go Gadget Arms


« Reply #13 - Posted 2004-10-05 16:05:23 »

the thing is, if I start coding an AI into a framework that I dont feel secure enough with, i will most definetly do badly because im having to go around every limitation of that framework. But some people might feel comfortable with the framework, hence they get an advantage.

I suppose that will be true for which ever framework anyone sets out....

But I do think its a good idea. I feel that this contest should be game related, rather than "let see which snail gets more leaves!"

DP

Friends don't let friends make MMORPGs.

Blog | Volatile-Engine
Offline kevglass

JGO Kernel


Medals: 159
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #14 - Posted 2004-10-06 05:33:53 »

-- You probably don't care since I know very very little about AI but...

If you make it game related hows it going to be judged purely on the AI? Other factors will become prevalant.

Forcing your AIs to solve the same problem in the same environment is surely the only way to actually have a contest of AI programming.

I have a feeling plenty of people would take part if someone gave them a simple agreed upon framework in which to write their AI.

Whoever produces that framework is instantly ruled out of competing. If the framework is done correctly it shouldn't actually matter what the rendering technology is, infact it might be a good task for the developer of the framework to produce renderers in other technologies while the contest goes on. So, if we were to take MisterX's idea..

He writes a framework to support the AI contest. The initial renderer is written in Java 2D. This means that every competitor can get up and running without needing to understand yet another rendering library. Then while the competitors write their AI plugins MX can continue to write any renderer that the competitors have mentione (JME just for dp Wink)

The other thing that seems pretty important is to keep the framework closed source. Otherwise unscrupulus types like me will just look at the source and work out a way to "fix" the contest or simply to cheat Smiley

-- Kev

Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #15 - Posted 2004-10-06 09:16:50 »

There's a lot of work involved to prevent cheating.
I suggest you look at MUD development and read all the tricks and tactics to prevent malicious code screwing things up - e.g. counting of how long code has been inside a loop in order to decide whether it's hung, etc.

Also look at JRobots and ask them for advice / help.

NB: JRobots has had massive problems keeping more than a tiny handful of people interested enough to code regularly. Such competitions keep dying, then being ieresurrected, then dieing again.

Part of the problem is that it's usually f****ing lots of work to get a bot that does reasonably well instead of being completely crapped on by the compeition Sad. IMHO that is largely due to the design of JRobots etc - they have arenas that are too small for a start.

With my genetic programming hat on, I'd say that they tend to be binary success: you win or you die. You need a game where success is much more analogue, i.e. you will tend to rack up a lot of points before dieing; perhaps use a large arena and seed it with targets that can be shot at for points, or something like that - anything so that most entrants don't just get "you killed 0 enemies, for a score of 0".

malloc will be first against the wall when the revolution comes...
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #16 - Posted 2004-10-06 09:18:22 »

PS if it goes ahead I'll do a GP plugin that plays it Grin. A friend is just finishing his PhD and he's released the distributed evolutionary framework (using RMI, but nobody's perfect Tongue) as open source, so I'm keen to put it into action  Cool

malloc will be first against the wall when the revolution comes...
Offline jherber

Junior Member




Java games rock!


« Reply #17 - Posted 2004-10-06 12:58:34 »

a gp approach would be interesting (given that bots are programs in and of themselves), but i have yet to see any research that correlates the complexity of the problem space to the degree of structure necessary within the resultant gp, thus providing some hint about the number of generations and the computational feasibility of the approach.  
Offline jherber

Junior Member




Java games rock!


« Reply #18 - Posted 2004-10-06 13:01:00 »

Quote
With my genetic programming hat on, I'd say that they tend to be binary success: you win or you die. You need a game where success is much more analogue, i.e. you will tend to rack up a lot of points before dieing; perhaps use a large arena and seed it with targets that can be shot at for points, or something like that - anything so that most entrants don't just get "you killed 0 enemies, for a score of 0".


good insight.  every adaptive system requires good feedback in order to successfully evolve.
Offline Giddy

Senior Newbie




Java games rock!


« Reply #19 - Posted 2004-10-06 18:55:55 »

Somebody mentioned JRobots.

IBM has created something similar called Robocode and two other programming games (a racing game and a strategy game).

http://alphaworks.ibm.com/keywords/game

might be worth checking out before you start coding your own AI coding arena.


Edit: Doh, I need to go to bed and get some sleep. I see now that RoboCode already has been mentioned.
Offline ap_kelly

Junior Member




Java rocks!


« Reply #20 - Posted 2004-10-07 02:01:54 »

I've mentioned before that I think Robocode is the way forward for this contest, but it seems to be we're taking a different route, so I suggest the following.

Someone should come up with an interface, a set of commands that each bot can use to determine something about it's environment.

getArenaWidth()
getArenaHeight()
getNumberOfBots()
etc

along with all the useful methods like

getVectorToClosestBot()
moveLeft()
moveRight()
fire()
etc

Then we the contestants can then write our own arena and bots, as long as the contract defined in the interface is maintained, I should be able to then place my bot into anyone elses arena and have it work straight away. No possibility of cheating here since I only know of the published api for determining information about my environment.

If someone who has plenty of time on their hands wants to write a fancy arena, which renders the action in real-time using LWJGL then so be it.

So in summary:-

1) Define the problem that we're trying to solve (last bot standing wins or find all carrots in a field in quickest time etc).
2) Start to define an interface that we can use to support this contest so that each bot works on the same set of actions and information.
3) Give us a dates for interface finalisation (we can all contribute ideas) and contest day!

Andy.

Offline Malohkan

Senior Member




while (true) System.out.println("WOO!!!!");


« Reply #21 - Posted 2004-10-07 02:48:17 »

I totally agree with that.  If we have only certain methods that let us access the game itself in order to control our bots, then that makes the contest very fair as well.  Then you know the contest is about making smart AI and not "who can make the most complicated framework to outline and handle hoardes of features"

Admin and Game Developer at
GameLizard.com
Play Rimscape!    |    Play Conquer!
Offline weston

Junior Member





« Reply #22 - Posted 2004-10-07 03:48:21 »

I used to play this a couple years ago, its quite good and seems pretty similar to what you guys are talking about, may be worth a look:

http://botbattle.com/botbattle/default.php

for(int i = 1; i > 0; i++)
{
System.out.println(i+" cups of java downed");
}
Offline ap_kelly

Junior Member




Java rocks!


« Reply #23 - Posted 2004-10-07 07:31:06 »

Robocode, Botbattle etc are are very similar and unless this contest is trying to solve/show off other AI problems I think these would be ideal frameworks to use as the basis for the contest.

It'd be good to hear from someone what the actual goals would be should the contest actually go ahead, then we could at least look around for existing frameworks that would meet those needs.

The interface I mentioned previously is exactly the principal behind how Robocode works.

So I ask, what AI problem will this contest be asking use to compete in solving?

Andy.

Offline Malohkan

Senior Member




while (true) System.out.println("WOO!!!!");


« Reply #24 - Posted 2004-10-07 12:25:38 »

I just woke up from dreaming about coding for the contest.  I think I'm gonna win Wink

Admin and Game Developer at
GameLizard.com
Play Rimscape!    |    Play Conquer!
Offline jherber

Junior Member




Java games rock!


« Reply #25 - Posted 2004-10-07 13:47:47 »

Quote
So I ask, what AI problem will this contest be asking use to compete in solving?



seems to me our choices are:

agent vs agent
agent vs agents
agent team vs agent team
agent vs environment
agents vs environment
agent team vs environment
+ permutations and combinations

if people want agent vs. agent then robocode should be fine.  some of the other choices seem more interesting to me...
Offline ap_kelly

Junior Member




Java rocks!


« Reply #26 - Posted 2004-10-12 08:40:55 »

So I was thinking some more about this contest, what we need is a few guidelines for submitting ideas on what aspects of AI the contest should be testing.

I came up with this list, that should be submitted with each idea.

1) A brief overview of the idea.
2) Describe the idea.
3) How can/does this apply to AI in games.
4) How do you rank/rate competeing agents to determine the best.

Here is a simple example:-

Idea 1
1) An agent that plays minesweaper.
2) AI that determines the next best move in a random world where the next move could be death.
3) Chossing the next move in a world where death is possible and undesirable, chosing moves that don't result in death are better.
4) Play 100 games of minesweaper, the agent that wins the most games, or dies the least is the winner.

I look forward to seeing some better ideas soon.

Andy


Offline z.e.r.o

Junior Member




Java games rock!


« Reply #27 - Posted 2004-10-26 03:54:10 »

Count me in, I'm with you Smiley

Matteo Anelli
.brain - http://www.dot-brain.com
Offline jnellis

Innocent Bystander




Java games rock!


« Reply #28 - Posted 2004-11-09 14:14:48 »

Hi, first time poster here but I am interested in this idea.

First I would like to mention the APT tool which comes with 1.5.  It allows for preprocessing of source code marked with annotations.  Instead of some custom security manager at runtime, I would think this would possibly allow for code violations to be checked at compile time.

I am curious as to if you think there should be a cost to actual instructions.  I'm new to this but it seems to be fair that each agent should get equal cpu time slices.  I'm not sure how this is done accurately.  Consider though that each function that the game arena calls on the agent has a predetermined cost or energy usage which is determined at compile time using the APT.  This way a fine tuning database could be constructed which will have different cost values for different library calls.  Math.trig calls might cost 4 points, + - / * might be worth 1 point, any paranthesis might be a point.  A recursive call might be 10 points.
Offline K.I.L.E.R

Senior Member




Java games rock!


« Reply #29 - Posted 2005-02-24 14:45:06 »

Provide the framework, explain the rules, and I'm in.

Vorax:
Is there a name for a "redneck" programmer?

Jeff:
Unemployed. Wink
Pages: [1] 2
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Nickropheliac (15 views)
2014-08-31 22:59:12

TehJavaDev (23 views)
2014-08-28 18:26:30

CopyableCougar4 (29 views)
2014-08-22 19:31:30

atombrot (41 views)
2014-08-19 09:29:53

Tekkerue (38 views)
2014-08-16 06:45:27

Tekkerue (35 views)
2014-08-16 06:22:17

Tekkerue (25 views)
2014-08-16 06:20:21

Tekkerue (35 views)
2014-08-16 06:12:11

Rayexar (72 views)
2014-08-11 02:49:23

BurntPizza (48 views)
2014-08-09 21:09:32
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!