Artificial Intelligence Depot
Visiting guest. Why not sign in?
News, knowledge and discussion for the AI enthusiast.
FEATURES COMMUNITY KNOWLEDGE SEARCH  
Robot Building for Beginners
Not only does this book assist you in understanding component parts of robot development, but also it prepares you with techniques to learn new discoveries on your own.
More information at Amazon US UK

Reply to Message

Not registered yet?

The AI Depot has a focused community of friendly users. Rather than let anyone abuse the site at the brink of promiscuity, we prefer to let only those with an active interest participate... this simply requires registering.

Why not sign up!

Joining the site's community is completely free. You can then post messages freely, and customise your personal profile at will. Specific privileges will also be granted to you, like being able to access printer-friendly articles without restrictions. So, why not register?

Username:
Password:
Subject:
Email me when someone replies.
Body:

Parent Message

More info ?

Hi

Great Article. I am primarily interested in the Half life area as I am a Counter-strike junkie :-). What bugged me was that you never described what the inputs BotThink function has, what information is provided to the Bot.

One last question: If you were to approach this using GAs, would you go for a GP approach, or a GA around internal rules? I am aware that the latter allows continuous learning, but possibly isnt as flexible as it is constraint by the flexibility of the rule system.

11 posts.
Thursday 25 October, 08:46
Reply
Technical Details

True, the article only covered the theory behind the information provided (entities and level structure), without going into the technical details. It was intended that way as any more information would have pushed the tutorial beyond its scope.

Since you're intereted in HL, you should take a look at the source code provided with the HPB Bot. You'll notice the level structure is acquired by a trace function. This is basically a 3D search, that tells you what it found. Also, the entities are stored as global variables, which you can access freely. The entities include clients (other players and bots), and items. It's been a while since I looked into HL in detail so I can't be anymore specific... Q2 does the job for me!

The source is well documented though, and skimming through that will give you a great insight (search for trace and entity for example).

As for Genetic Programming, stay away. It's a lot of hassle (grammar checking being the worst), and doesn't work all that well. The search spaces are huge, and you'll have trouble doing anything of reasonable size.

Genetic Algorithms on the other hand are well suited to this. But beware, you need to think of a good way of representing your bot's parameters (controlling the AI) before you decide to optimise them with genetic algorithms!

Anyway, good luck!

935 posts.
Thursday 25 October, 10:19
Reply
re Q2BotCore

Hi Alex I'm having difficulty compiling the q2botcore source. Do you have a working project for MSVC++ 6.0 you could send me?

I'd really appreciate it as I was getting all excited about having a go at coding a bot and all my dreams have been dashed!

thanks

8 posts.
Thursday 21 February, 20:30
Reply
Compiling the Q2 Bot Core

I don't have a working project anymore. I tested it out before writing the tutorial, and it worked fine so I removed it. My work is based on a server side approach, so I don't need it.

If you let us know more specifically what the problem is, someone may be able to help you.

935 posts.
Friday 22 February, 03:37
Reply
bots

So how did you learn how to interface with the code running a server side bot? Do you have a link to any useful resources(I've never been able to find any) or any pointers?

thanks

ps. I managed to compile q2botcore in the end

8 posts.
Friday 22 February, 03:41
Reply
Learning by Example

I downloaded some source code, learnt from it by modifying it. I ended up reimplementing everything to make sure I understood everything that was going on, but don't do that at first!

There's a site with a list of most Q2 Bots right here -- Bot Epidemic.

935 posts.
Friday 22 February, 03:55
Reply
source code

So how come you chose to spend the hours going server side Alex?

I'm curious because this is a project I'd like to spend some time on but I don't want to waste effort with the q2botcore if it's going to be limiting my possibilities.

I tried bot epidemic a while ago but I couldn't find any help on how to interface with the ID code at all. In fact there seems to be little information about this topic at all (for programmers) and I received no help whatsoever from the half dozen or so bot authors I wrote to(all q2). All I can assume is that the authors keep their knowledge close to their chests!

8 posts.
Friday 22 February, 04:06
Reply
Justifications

I went server side because I needed the ability to speed up the game for fast learning, for the ability to get a bot playing in single player, for random things I wanted to reimplement (like a good camera) and I wanted to modify other little settings parameters.

A client side bot is a good option, but doing the distance sensors in the same way I did can be a problem; you don't have access to the physics of the engine.

As for the code, people are generally quite open. Eraser bot, Gladiator bot are mostly fully public (only the navigation bit is a library -- for commercial reasons). You should have no trouble finding code from Bot Epidemic.

935 posts.
Friday 22 February, 04:21
Reply

Back to the Artificial Intelligence Depot.