YaBT - Implementation and Design


(Modzilla) #1

Ok, this is Yet another Bot Thread. I have seen from looking around the forums that there are a few bot threads but this one is different. I am looking to add a single player side to WolfET.

My plan is to have it start up another server minus the sockets and network features. Then there will be some bots added.

Now, I was looking through the ET source when I noticed the folder “botai”. I sneaked a peek and some of the files look like there is already a bot implementation in WolfET. Its been a while sinse I have played WolfET but I know it doesn’t have bots. So I was wondering if anyone wants to comment on these files? Before I start analysing them…

I was wondering how alan (The one behind Ubot) was planning to implement his bots. I was especially interested in the fact it worked on all mods - something I would like to acheive. I went to test his bots but couldn’t find a working download, anyone else got a link for it?

I’m a C++ coder that has worked on a few open source projects but never anything to do with game programming. Is there any resources out there specifically for AI and bots?

Thanks in advance!
-Moddy


(Calzonzin) #2

You might have troulbe starting ET without the network, I think that is all done via the engine, whose particular implementation for ET has not been released. Maybe you can get by using 127.0.0.1 ? You’d still need to start a server process and a client process.

As for Ubot, it will be implemented as a “wedge”: IIRC, the bot dll/so is specified to ET as the mod to run, and the bot dll/so proxies the calls ET (or the real mod) makes to the engine, and viceversa, inserting the bot stuff as it proxies the calls. There was thread on here with more info about this approach…


(kamikazee) #3

You can allso accomplish this by starting a listening server. (like you create by using /map or host game without setting your server as dedicated)


(Calzonzin) #4

Ah! true… forgot about that altogether…


(Jaquboss) #5

if you are interested in working on AI code I can point alan here…


(DrEvil) #6

Alternately you can use the Omni-bot SDK to get right to implementing your AI, and worry less about interfacing with the game. Or depending on what you want to do you could probably script alot of the behavior and avoid much of the C++ programming altogether.

http://www.omni-bot.com/

You can contact me personally if you want more info.


(Modzilla) #7

DrEvil: This is one thing I am dreading. I am going to look at it as it may help me out. Thanks for the suggestion, Your creation?

Jaquboss: Could you please? Alan might have some suggestions. I know he done Ubot, which done an amazing job from what I read.

Ill keep you posted. I have “designed” my ideas. (Flowcharts and the like) I am now diving into the world of coding it! :smiley:


(DrEvil) #8

Yes, Omni-bot has been in development for a little over a year now. If you’re interested you can download the SDK that will allow you to have a functional bot very quickly. All the ET implementation of Omni-bots are available in the SDK too, as well as the interface code to ET itself. If nothing else it can give you a head start into your own bot with examples of how to interface with ET. Or you could go all out and use it to create a bot by extending it. There are examples of extending it for various games in the SDK as well.


(Calzonzin) #9

Do you guys have a rudimentary implementation of the AI done as well?


(Modzilla) #10

Ok, I have just done a few simple tasks today, as I haven’t had alot of time. I want to start the big coding jobs when I have long periods of time at the PC. So far I have just added a menu entry, made a new menu that displays all maps as a button. (So you select which one, see a description in a box next to it then decide to play or not) It goes like this:
1.Loops through all files in the directory of .pk3 type. (Maps are pk3, I think)
2.Does a button for each one.
3.User selects map
4.Loops through a .txt file with a description of that map inside. Outputs its contents to screen.

I will probably run into problems soon… so be waiting! :wink:

DrEvil: Great! I’ll be looking at it soon!


(Calzonzin) #11

You would be better off looping through the pk3 files and looking for .bsp files in the /scripts/ directory… Not all pk3 are maps, nor does the name of the pk3 have anything to do with the map name. The .bsp files are the actual “maps”, and the root name is the map name that matters to ET.


(kamikazee) #12

.bsp files are only to be found in the maps directory in and outside pk3’s as far I was aware. :wink:


(Calzonzin) #13

oops! Did I get it wrong? I totally remember it being in the /scripts/ directory, but I’m probably wrong… I don’t have access to ET here so I cannot check. Sorry if I misstated the directory name.

EDIT: Yes, .bsp files are indeed in the /maps/ directory, I pologize for the misinformation


(DrEvil) #14

All the 3rd party maps I’ve downloaded go in the etmain folder, because within the pk3 file it has the maps folder, scripts folder, sometimes other folders. You still need to parse the pk3s in the etmain/mod folder if you are trying to find all the maps. I’m not sure if the game would still find them of the pk3 was in the map folder.

What do you mean by this exactly? The SDK comes with the full source for the ET, & ETF implementations, providing plenty of examples of how it’s done. It also has a Skeleton implementation which is basically a bare bones start to a bot implementation.


(Modzilla) #15

Im still working on this incase anyone thought I forgot. Im researching the maps and so on. If anyone has ideas about this I am open to suggestions.


(Nothus) #16

Dr. Evil: where is your SDK? I went to your site and searched all over but couldn’t find it. I’d also like to include a bot in my server mod I’m making for a friend of mine.


(Magik) #17

Register at our site and send a message to DrEvil or me. Currently the SDK is only available for beta testers but it’s gonna be available to the public, soon.


(Nothus) #18

Magik: OK, I’ll do that. :slight_smile: