AI Tournament/Research

hey,

we should start up a Tournament or death match where we create our own AI.

most of our community thinks good AI is tuff to make, through this, we will learn to make simple and efficent AI.

we could have rulez, like…
-Arena size
-AI max speed
-AI size (easy/hard to hit)
-number of hits (say 10)
-no Z axis movment
-max projectile speed
-max projectile rate

we can either append the 2 bots together or use the new LAN idea. The LAN idea works by saving data from one file and loading it into another. This way you would not need to append. you could have a “fake body” move around by taking info from another blend, which is your opponent. when your AI shoots the fake body, it changes a health property which is saved to a file and transfered to the other .blend

i think this would be a good idea cuz it would make the community more “intellegent” hopefully we will be able to make AI as good as Goldeneye 64 or maybe even Unreal Tournament.

Hey, do u still have that halloween game… I’ve been trying to reach u.

I can make some ai’s for you.
I am good at it :slight_smile: .

that sounds like a good idea, though i take it that it would be done in python. I know most people slag commmunity ideas but I think this would work.

I have made many AI’s with out pyton.I cant pyton so well :frowning: .

yea… i still have my halloween game, its really old and unefficient. there werent any “visible”/“invisible” actuators and i didnt know much about lighting/shading back then. i can send it to u on msn. [email protected] with 2 “_” things

you dont need python to make good AI, the AI in my halloween game and Dr Doom are done entirely with logic bricks, except their inaccuracy script.

The save load script is not that hard to use either, and dont know anything about python. u just need to change a few object names and creating a few properties.

Hehehe
This is gonna be fun. Be ready to bow before me as my ai tramples all in its path!! Mwuhahaha!!!

BTW the AI must be time based and not frame based or else it will run funny on different computers. Or we could limit the fps to 30.

For the battles i think they should be recorded, i have a python script that will save gameplay to bunch of .jpgs and another program to turn that into an avi or mpeg. That way we can see exactly how the battle went.

are you saying like:
http://robocode.alphaworks.ibm.com/home/home.html

(except in blender and using python)
it is a cool idea
but there would be some problems:
what limits does the ai have?
will you let it:
[/list]

  • use dloc in a motion actuator
  • set the object position
  • set the object’s size to be really small
    [/list]

the list would go on

also, how will you determine the winner, will each object have a predetermined physics settings (and mesh) and each author is only allowed to add to it (the gamelogic wiring), and run one python script.

this is all not that clear, it could be cool but I don’t know what you mean


edit

I forgot to mention that a lot of the ai challenges (pathfinding, …?) require precalculated data to run at reaosable speeds. Is this out of the question?

and something like this was done with maya I believe, can somebody tell me about the way that worked?

I find this to be a brilliant idea! A chanllenge to the python programmers, and the logic_brick gurus…

I would love to see some funky battle videos :smiley:

As for the rules, i think that z3r0 d’s got a point… maybe we should all tip in with what we consider should be limited… in the end, we would end up having a humongous list of rules… :smiley: … complikated… but fun! :smiley:

Ok, to begin each competior should, to make things even, be built on top of the same dynamic object. This object should have a mass and a size, and doesn’t have a reason to float (fh force) or align with the terrain (fh rot). I guess the default settings, but made a dynamic actor would be fine. Also each object would need to have the same mesh, but probably a different color (to tell them apart). This is possible with objcolor faces.

Next there would be some logicbricks that all competiors have to determine if they win or not. As I don’t know of a good way to compete yet I will ramble on other topics till I come up with an idea.

Each competior can add any logic brick and sensor, and controller. The result of this is that an object can use a motion actuator to move anywhere at any speed. I don’t think there is much of a way to prevent this, I think it would be better to have a competion where moving under absolute control is an advantage.
(a person can also directly set the position of their object, but I think this should be banned. I guess a general rule of thumb is that passing through walls is illegal. This is difficult to enforce…)
Now then, a pushing contest wouldn’t be very interesting if objects could use dloc or whatever to go where they want so that is out of the question.

A racing competion could be possible, except that each object can not have an xy plane acceration faster than a given value (which could be caught by the perdetermined logicbrick setup). That would be a challenge, be useful for blender and (until the competion gets too good, or we decide to give humans an advantage) fun. (oh, and vertical acceration can’t exceed gravity (unless on the ground), to forbid flying)

for some competions (like a racing one) certain actuators

The trouble with a shooting like competion is that if you can move infinitely fast (or thereabouts) non-instant weaponry is useless. Also a python script in blender can have the significant advantage of knowing what is nearby and where. How can we control this to be interesting? I am a bit stumped.

I guess the accerlation controls similar to the racing situation would be in order, and the standard object setup would be changed to have another object, which would be the gun and would shoot a projectile that takes time to travel (more of a rocket than bullet). It can only be shot at a predetermined speed (times/second). Maybe a competior only knows when hit? I guess this would make it a lot like robocode.

this one would keep my mom interested. SHEEP HERDING. seriously it is an intersting challenge. The sheep usually clump together (and by fences if you let them), and run away. But the direction they run, how close the competior [dog] is for them to run, and how likely they are to stay together is very much under their control. How well can you make a dog that controls the sheep through a predetermined course? What about different sheep?

For all of these situations it would become really interesting if the worlds the simulations take place in could be modified by the user, and the competiors reacted accordingly. I would guess the first frame is the best place to do the calculations that would consider this (the pathfinding calculations…).

This is some interesting stuff now. Tempting to work on it

I think this is a really cool idea! Yeah, but we could have like a hand to hand combat match with punching, reload times for punching, maximum triangle count, and stuff! :smiley: SOUNDS GOOD!

:o :smiley: :stuck_out_tongue: , lol. Hmm, I just came upon this post when I was searching for something else. This is a cool idea, but what happened to it? Did this idea actually take off or was it left in the dust?

If it still wasn’t done yet, hmm, the guy who holds the next game contest, this might be something to think about. Just think Blender wars on AI. Would be cool to see how the 2 objects interact with each other and if it was recorded, we can all see how the battle went.

Jason Lin

Yep can be possible. TO get it to work:

  • Use a lot of Python inside blender
  • Properties and logic bricks.
    When this thread came up, Nor.J and I created a lot AI’s that could, jump when they saw objects in there way, fly trough the air, use of not invisible walls and could move without using detection of walls and stay on a plane without falling off. And a lot more, like Nor.J did in his strategy game test that turned out very cool but because of another problems is was canceled. :x

NOR.J u Rule :smiley: lol Go J :smiley: i like this idea and too i can make ai cough not cough lol i suck :(.

This tournament is still a good idea. It should be revived after the halloween contest, when more people’ll be able to work on it.

Here’s some ideas for possible rules.

  1. The base model, with physics, would be available for download at the start of the contest. Modification of this object’s physics is not allowed. Any logic bricks already on the base object can not be modified or changed.

  2. Any arenas will also be available for download, so people can make waypoints if their AI requires them.

  3. Additional objects can be parented to the base model, as long as they don’t interfere with bullets hitting the AI.

  4. Reading from files is allowed, so waypoints or complex data structures can be stored that way.

  5. AIs will not be allowed to go above a certain speed, go through walls, fly, etc. The fights will be monitored for cheating.

Some additional ideas:

  • Each AI can be identified by an icon, which is just a textured halo face positioned above the model.

  • Arenas should have enough obstacles that even if the AI knows exactly where it’s opponent is, it won’t be able to just go in a straight line to get to it.

  • Fights should be best two out of three, to cut down on the chances of someone winning through blind luck.

That’s all I can think of now, obviously such a complex contest requires lots of planning to make sure it’s as fair as possible.

Ok, I didn’t bother reading that monsterpost by z3r0 d…

Well, I think it’s a great idea.

There should also be a non-python league :slight_smile: Should be fun… and funny.

One cool idea would be a contest for a labyrinth AI. No much restrictions and stuff. Just a certain max speed and some more.


Jimbo