26

Re: [SUGGESTION] How to make the bots more intelligent ?

right now bots are brain-dead siting ducks

i think someone should give it the ability to swing a hammer that would make it a movable/destructible improvised damage tile for the unfortunate tee who lands on it

my name is NOT clasic_traveller_die its CLASIC_TRAVELLER_DIEHARD classic traveller is a si-fi rpg from the same era as dungens and dragons lookit up on wikipedia smile

27

Re: [SUGGESTION] How to make the bots more intelligent ?

I think there should be a target practice mode where the bots move either left and right or up and down.

No, that is not me; it's just a figment of your imagination.

28 (edited by clasic_traveller_diehard 2008-03-07 21:28:29)

Re: [SUGGESTION] How to make the bots more intelligent ?

i'm not the guy who started this thread but i'm guessing he started it for the benefit of those people interested in the application of bot

if you don't want bots don't post here

that being said heres a use for bots as they now stand

destructible walls and structures just have them spawn in stacks on top of each other remove hands and feet from their skins and make the body look like a building block(when you get movement working they could even take the form of gates and doors)

my name is NOT clasic_traveller_die its CLASIC_TRAVELLER_DIEHARD classic traveller is a si-fi rpg from the same era as dungens and dragons lookit up on wikipedia smile

29

Re: [SUGGESTION] How to make the bots more intelligent ?

I've always been a fan of finite state machines. Of course, it would be possible to tweak it into something more complex -- or to simply stuff them all together into one loop. I think a finite state machine would work better in this instance because of how it blocks everything out nicely. There are always hooks back to a "core" behavior.

As for pathfinding, I'm only familiar with A*, but I know there are numerous other ways of doing it. I know for my autonomous critters I've created, I generally make them stupid: they move until they run into something, at which point they try to go around it. You can see a slightly more intelligent version of this here: http://www.red3d.com/cwr/steer/Obstacle.html and http://www.red3d.com/cwr/steer/Unaligned.html

I think a hook calculation would be relatively easy to factor in. We'd need formulas for how the hook extends based on distance and velocity, but from that it's a pretty trivial calculation to figure out where we're going to end up (retraction of it is based on velocity, so at a high enough speed the retraction factor is small enough to be negligible, and at other speeds it could be factored in, but it might not have to be). A possible way of programming this behavior is that if a bot chooses a target above itself, it looks to see if there's an edge nearby. If there is, plot a path at puts the bot within hook range of the edge, hook it, and spin around, then continue path. Ideally, this sort of behavior would be exhibited naturally by describing ranges of motion and allowing the bot to string them together.

One also has to factor in which weapon to use. Generally speaking, the hammer should be used only as a last resort (if all ammo is gone), with the one exception of all ammo gone except for the rocket. This way we wouldn't have to worry about the bot blowing itself up. Of course, if the bot is given a short term memory of sorts, it could take a gamble -- if it thinks the target is weak enough and the bot is healthy enough, shoot a rocket at the target in close range. If the target is within a certain range, prefer the shotgun to the pistol, especially if the target and/or the bot is moving. If one or both are stationary, the rocket may be a better choice.

30

Re: [SUGGESTION] How to make the bots more intelligent ?

the hammer suggestion was something i thought the bots could do in the near future since the bot doesn't really have to aim up or down to get a hit

my name is NOT clasic_traveller_die its CLASIC_TRAVELLER_DIEHARD classic traveller is a si-fi rpg from the same era as dungens and dragons lookit up on wikipedia smile

31 (edited by willou 2008-03-10 19:15:04)

Re: [SUGGESTION] How to make the bots more intelligent ?

@nikoPSK, clasic_traveller_diehard
If I am not mistaken, you want (even dumb) bots in order to train at aiming.
I think that this kind of bot won't permit a good training (or maybe for very beginners) if you can anticipate their moves and if you don't have to avoid projectiles.
Besides, I am much more interested in the creation of "clever" bots than brainless moving targets. Of course the first versions could be used as you describe, but it should not be the final objective.
What do you think ?

@GSD
We definitely have different approaches, but that's interesting ! I like not to tell the computer exactly what to do, but just give a hint and let it find out. For example, considering the weapon choice, once the bot knows how to use each one, I was thinking of doing the following (roughly):
- Choose some relevant (or not) informations (target's proximity, target's speed, target's direction, target's health estimation, edges between me and the target, the bot's munitions and skill for each weapon, the bot's health, the bot's speed and direction)
- Create processes taking this information in parameter like Neural Networks or with a fuzzy logic system that the bot could tune by changing some coefficients.
- Let the bots compete with reinforcement learning and natural selection, first with each other, and then online

The main advantage of this approach is that you could, with no efforts, end with a lot of several bots that players could not get used to (or bored of).

32

Re: [SUGGESTION] How to make the bots more intelligent ?

@willou
i don't want target dummies i want building blocks and land mines (actually it would better compared to a booby trap)

my name is NOT clasic_traveller_die its CLASIC_TRAVELLER_DIEHARD classic traveller is a si-fi rpg from the same era as dungens and dragons lookit up on wikipedia smile

33

Re: [SUGGESTION] How to make the bots more intelligent ?

The major problem I see with a neural net is that it takes time to train it. Players don't want to wait for their bots to "learn" how to play -- they just want them to get up and _go._

I suppose it would be possible to ship a certain number of pre-defined bots, and let the players grow their own, as it were. I'm also wary of how a neural net might get confused, or latch on to a behavior which is a poor idea. Still, some form of individuality in the bots, whether through a genetic algorithm, neural nets, fuzzy logic, or any other piece of AI jargon you want to throw up, is always a good thing.

34

Re: [SUGGESTION] How to make the bots more intelligent ?

right now, bots at all will be positive. Let a bot coder develop them for the future.

35

Re: [SUGGESTION] How to make the bots more intelligent ?

@CLASIC_TRAVELLER_DIEHARD
Either I did not get it or it is off-topic in my opinion.

@GSD
I was not thinking of releasing blank bots smile

@raph
What do you mean by "bot coder" ? smile
Anyway you're right about the fact that the first thing is to have a bot, even dumb, than can interact with environment.

Does anyone had time to study the source and found something relevant ? I did not have time to try anything yet...

36

Re: [SUGGESTION] How to make the bots more intelligent ?

There are no bots in the code. Just dummies that are spawned to aid debugging.

37

Re: [SUGGESTION] How to make the bots more intelligent ?

willou wrote:

@CLASIC_TRAVELLER_DIEHARD
Either I did not get it or it is off-topic in my opinion.

let me explain
a "landmine" is a bot programed to sit around and swing a hammer and is then spawned in inconvenient locations (such as the bottom of a pit) with the hope of a tee landing on it it also has the advantage of being move able(via hook) and destructable

a "building block" is is just the dummies matricks described spawned in stacked formations (example: pyramid) and through out the battle the structure would be destroyed or the block harvested by players for their own fortifications

my name is NOT clasic_traveller_die its CLASIC_TRAVELLER_DIEHARD classic traveller is a si-fi rpg from the same era as dungens and dragons lookit up on wikipedia smile

38

Re: [SUGGESTION] How to make the bots more intelligent ?

willou wrote:

@raph
What do you mean by "bot coder" ? smile
Anyway you're right about the fact that the first thing is to have a bot, even dumb, than can interact with environment.

I mean, a developer in the TeeWars dev team who specialises in bots. CPMA had Qrealka and Damont, and Quake 3 had Tim Willits (afaik).

39

Re: [SUGGESTION] How to make the bots more intelligent ?

This is indeed a challenging aspect. And my main concept would involve a Ray-Tracer in mutiple directions. Tracing not only from within the current position, but rather from several units above us ,too. Looping through all current enemys on the screen, evaluateing possibilities of pursuit or retreat..yeah that could be fun. I [i]could[i] contribute parts of my client-side aimbot, rocket-bot and autohook, though i have written this in Delphi. But then again i see how this can be dangerously abused, so i'll better pass on this one.

I saw plannings of neural networks and implementation of very complex AIs here. Is it that necessary? Well, someone could write a bachelor thesis about this doing this properly.
I guess it is a bit overkill for this game and would be only good for a proof of concept, but hey, you never know what comes around in these projects.

Anyone seriously on to this?

var
  gMe: ^Pobj_player_character = Ptr($00473CCC);

40

Re: [SUGGESTION] How to make the bots more intelligent ?

People have written thesis on these. Lots and lots of them.

Anyway, I'm seriously in on this. I don't know how much actual code I can contribute, because I haven't written a line of C++ in years, but I can contribute concepts, pseudocode, and other assorted help. If I need to, I can pick up coding again pretty quickly.

I think this is entirely feasible, and I don't think it'd be too terribly hard to make this work. At least once we have the groundwork done.

41

Re: [SUGGESTION] How to make the bots more intelligent ?

GSD: I would recommend you get crackin'. We don't exactly have a closet full of spare C++ coders around, so the more, the merrier.

42

Re: [SUGGESTION] How to make the bots more intelligent ?

I am seriously in on this as well.
I should code some C++ even if I'm not that skilled in hacking and optimizations of code. I have a background in Operationnal Research. Though I don't know much about graphics and some part of the source are obscure to me. It also won't be easy for me to analyze the maps.

@DeepBlueSea
I think that your work could be a great start, what is your approach to make this work ?
I can see what you are worrying for, and since I discovered the game I had the same fear. I would like a developer's hint on that:

How do you prevent anyone to make his own client (with unfair modifications like aim assistance) and play with the others on servers ?
Do you make the server check the MD5 of some critical files ?

So let's start ?

My guess on the first thing is
- to make a modified client
- have a protected server where we can debug the bot without annoying players (and being annoyed). My macbook is sleeping at home all day so I could run a server on it permanently. I think that we will have some schedule problems since you posted at the middle of the night smile. where do you live ? I'm in Paris (GMT+1)
- There's so many topics out there, maybe we could set up a entire forum dedicated to this ? I can do it if you think it would be useful.

43

Re: [SUGGESTION] How to make the bots more intelligent ?

I'm in the US -- CST (GMT - 6). Alas, my days are only going to get busier for a while, but I'll still do what I can. I'll start working on some C++ stuff this weekend.

From a perspective of hacking things, there's a _potential_ it could be abused, but I think if it's coded properly we wouldn't have to worry about it. Simply sending commands to a server saying "shoot with rocket" or "aim hook here" won't be enormously useful to people.

It might be better to set up a Google Code project, because of all the tools it gives us.

44

Re: [SUGGESTION] How to make the bots more intelligent ?

GSD wrote:

I'm in the US -- CST (GMT - 6). Alas, my days are only going to get busier for a while, but I'll still do what I can. I'll start working on some C++ stuff this weekend.

From a perspective of hacking things, there's a _potential_ it could be abused, but I think if it's coded properly we wouldn't have to worry about it. Simply sending commands to a server saying "shoot with rocket" or "aim hook here" won't be enormously useful to people.

It might be better to set up a Google Code project, because of all the tools it gives us.

What does Google Code offer that we don't already have?

45

Re: [SUGGESTION] How to make the bots more intelligent ?

I meant we should set up a Google Code project instead of creating an entirely new forum. If he meant on a forum on the Teewars site, that might work, but Google Code has the central repository, forums/news feeds, that sort of thing. The hosted projects are designed to house these sorts of collaborative projects.

46

Re: [SUGGESTION] How to make the bots more intelligent ?

GSD wrote:

I meant we should set up a Google Code project instead of creating an entirely new forum. If he meant on a forum on the Teewars site, that might work, but Google Code has the central repository, forums/news feeds, that sort of thing. The hosted projects are designed to house these sorts of collaborative projects.

Perhaps you have missed the trac smile http://trac.teewars.com
Gonna be more integrated into the website later on.

47

Re: [SUGGESTION] How to make the bots more intelligent ?

Why do u need bots?
Play against real players!

48

Re: [SUGGESTION] How to make the bots more intelligent ?

matricks wrote:

Perhaps you have missed the trac smile http://trac.teewars.com
Gonna be more integrated into the website later on.

I most certainly did.

49

Re: [SUGGESTION] How to make the bots more intelligent ?

So what's our next move ?
Should we plug into the teewars trac ? how ?

50

Re: [SUGGESTION] How to make the bots more intelligent ?

Xaller wrote:

Why do u need bots?
Play against real players!

I often find that there are no populated servers, or that the populated servers have a very high ping. Bots are also useful for when you are not able for some reason to connect to the internet and improving your skills.