Artificial Intelligence Depot
Visiting guest. Why not sign in?
News, knowledge and discussion for the AI enthusiast.
FEATURES COMMUNITY KNOWLEDGE SEARCH  
First Steps in Game AI: Your Own Bot
Mixing Artificial Intelligence and First Person Shooters
 
• First Steps in Game AI: Your Own Bot

In tackling practical issues involved in creating game AI, this article demonstrates how First Person Shooters are ideal for developing Artificial Intelligence. Not only is this framework an ideal platform for modern technology, but it's also great fun!

Find the tutorial right here:
http://ai-depot.com/GameAI/Bot-Introduction.html

1019 posts.
Wednesday 24 October, 06:59
Reply
• 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!

1019 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.

1019 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.

1019 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.

1019 posts.
Friday 22 February, 04:21
Reply
• Accessing the screen

Hi,

Thanx for the great tutorial.
I would like to use some of the above games in my AI experiments.
Since currently I'm interested in visual preception, I'd like to do some visually driven AI. However, in order to do so, I have to access the rendered output (screen). Is there a way how to do it in any of the described games ?

1 posts.
Tuesday 13 May, 17:48
Reply
• A good AI workspace

Yes a very good article as it allows you to start with AI, and not spend time (as I did) to find a 3D engine or OpenGL code to have an AI workspace.

How get the files and starting a first bot are particularly good.

But why is it impossible to have the same without a game : is there no t any open engine that let you have some characters just moving & firing ? I mean I don't need wonderful graphics when I do AI, what for ? I just need the representation of a player, and NPC(s),collision detection, visibility fonction; the better would be an included Path Planning function (A* for ex).
I spend many many time to find it, and the only one is fly3D (
www.fly3d.com.br) but you still don't have an easy start to avoid you
spend some time for graphics.

Is some one have made one, or knows one ?

Thanks in advance.

PS : Bot epidemic link is dead and you are redirected elsewhere.

5 posts.
Wednesday 02 July, 05:55
Reply
• For corrections

it's me again !

I have found the famous epidemic bots :
you can found it here

http://www.cyd.liu.se/~bjoli035/botepidemic/

5 posts.
Wednesday 02 July, 08:41
Reply
• HL Bot Help

Ok, i went through this tutorial, and i must say that it was a great help, i learnt quiet a bit from it, although there at the End, with the HPB Bot, i was looking around, and trying to find the file that you were tlaking about. bot.cpp, i couldnt find it, so i was wondering if this was a file that i was supposed to make? Or was it one that was supposed to be included with the HPB Download?

Thanks for the great Thread, and for the Great Tutorial, I hope to see more from you in the future.

5 posts.
Saturday 05 July, 15:01
Reply