Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Tiny AI contest  (Read 4035 times)
0 Members and 1 Guest are viewing this topic.
Offline malberts

Junior Member





« Posted 2008-05-02 21:51:23 »

This forum always seems to liven up when there's a contest going on. So I thought about this for an AI contest:

A specific boardgame like chess or checkers is chosen.
A GUI is made to allow you to play on it and test the AI while developing.
The GUI will feature pluggable AI libraries so that different people's AI libraries can be played off against each other.
The GUI makes calls to the AI libraries which only have the following method available:
 - compute() which sends the game state to the lib and returns the move chosen.

A tournament will be held where the different AI libraries play off against each other.
The aim of the competition is to see who can write the smallest AI library (like the 4k contest) but also to see who wins the tournament.

The matches will be played and the moves will be exported so that people can watch them.

There will be no way to cheat because the GUI will test for valid moves and the only way the AI lib can do anything is when it is called on by the GUI.

How does this sound? Would anyone be interested in this?

In space no-one can hear you System.out.println()
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #1 - Posted 2008-05-02 22:19:12 »

Hm... then the code should run in a Thread that is stop()ed after N milliseconds... as it's extremely easy to write a perfect AI without a time constraint.


Further, the goal should be relatively easy (yet hard to master), like some bot with certain extremely basic sensors, like feeling depth in a certain direction or heat / radiation. The environment should only feed those sensors with information, and the 'bots' should have limited output to control themselves.
You might be given an array or sensors and controllers and place them on a simple geometry shape programmatically at initialisation time.


Maybe...? Oh... and who is going to program the environment Smiley


Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 70
Projects: 15


★★★★★


« Reply #2 - Posted 2008-05-02 22:34:13 »

sounds like a nice idea.

Already environments available for things like this, e.g.
http://robocode.sourceforge.net/
where you code robot behavior to battle each other.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #3 - Posted 2008-05-02 22:43:37 »

Robocode is way too highlevel! Who needs a visual representation of the world when you have values in your arrays! Wink

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline malberts

Junior Member





« Reply #4 - Posted 2008-05-02 23:25:41 »

I could pretty much code a chess environment myself. The only thing my code would need to do is to test for validity in moves. The rest is up to the bots/players.

About the timing:
If it's chess then each bot will have say between 5-60 minutes per game. So you can think as much as you want per move but you have to make a trade-off bettween time and depth.

There won't be any real graphics updating between moves, except the clock running out. But that's only necessery if you want to watch the bots play real-time. Otherwise the bots can just pass moves back and forth until the game flags a checkmate or whatever withing the game time limit. In this way threads won't be necessery.

The compute() method will only supply an array with the board state and the time remaining. The way you work out the move doesn't matter.

I want the AI library to be done like the 4k competition. I want to see who can put the best AI in the smallest package. I don't know what a maximum filesize would be for a bot but ulfjack made a chess game with AI for the 4k competition.

RoboCode seems interesting but I'm not sure if its exactly what I had in mind. RoboCode already has leagues so if you wanted to do a bot there then you could do it without this competition. But I'll keep this in the back of my mind.

In space no-one can hear you System.out.println()
Offline malberts

Junior Member





« Reply #5 - Posted 2008-05-03 11:24:56 »

Here's another simpler idea:
A sokoban enivronment which has a lot less rules than chess, only 4 movements with collisions.

Then we see who can make the fastest but smallest solver for any challenge thrown at it.

In space no-one can hear you System.out.println()
Offline kevglass

JGO Kernel


Medals: 85
Projects: 25


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #6 - Posted 2008-05-03 12:01:20 »

That sounds pretty interesting, I'd like to have a play at that. More interesting that chess.

Kev

Offline malberts

Junior Member





« Reply #7 - Posted 2008-05-03 12:27:17 »

Yes I agree, it's more interesting than chess and you don't require an opponent.

I'll get to work coding the framework this weekend.

Outline:
* playing field consists of a byte array with (possibly):
  - 0 = walkable block
  - 1 = wall
  - 2 = pushable box
  - 3 = target
  - 4 = player
* possible movements:
  - 0 = give up
  - 1 = up
  - 2 = right
  - 3 = down
  - 4 = left

The best bot will be determined by:
- filesize (with a maximim limit)
- number of moves
- time taken to compute everything

In space no-one can hear you System.out.println()
Offline kevglass

JGO Kernel


Medals: 85
Projects: 25


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #8 - Posted 2008-05-03 12:59:34 »

You need target squares as well.

Kev

Offline SluX

Junior Member





« Reply #9 - Posted 2008-05-09 14:39:18 »

Have u ever seen coderally ? http://www.alphaworks.ibm.com/tech/coderally
You must code AI for rally cars which can shoot tires Smiley

"Intelligence is the most beautiful gift and the greatest temptation which one life can receive from the gods."Me Cheesy
Play strategic football
Pages: [1]
  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.

xsi3rr4x (55 views)
2014-04-15 18:08:23

BurntPizza (53 views)
2014-04-15 03:46:01

UprightPath (66 views)
2014-04-14 17:39:50

UprightPath (49 views)
2014-04-14 17:35:47

Porlus (66 views)
2014-04-14 15:48:38

tom_mai78101 (90 views)
2014-04-10 04:04:31

BurntPizza (151 views)
2014-04-08 23:06:04

tom_mai78101 (247 views)
2014-04-05 13:34:39

trollwarrior1 (204 views)
2014-04-04 12:06:45

CJLetsGame (211 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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!