Visiting guest. Why not sign in?
|
| ||||||||||||||||||
| 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: |
|
|
• 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. |
|
|
• 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! |
|
|
• 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 |
|
|
• 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. |
|
|
• 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 |
|
|
• 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. |
|
|
• 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! |
|
|
• 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. |
|
|
• Accessing the screen
Hi, Thanx for the great tutorial. |
|
|
• 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). Is some one have made one, or knows one ? Thanks in advance. PS : Bot epidemic link is dead and you are redirected elsewhere. |
|
|
• For corrections
it's me again ! I have found the famous epidemic bots : http://www.cyd.liu.se/~bjoli035/botepidemic/ |
|
|
• 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. |
|

