Help - Search - Members - Calendar
Full Version: Age of Chivalry
RCBot Forums > RCBot 2 for HL2 > Source
Enra
I have started to evaluate RCBot2 to see if we can use it as a bot for Age of Chivalry. So far it looks very promising, I used the TF2 code baseline and added a new bot type and got them to spawn and wander around.

For us to use Rcbot2 as our main bot we also need to control the deployment. We want to bundle a standard, tested version of the bot with our releases.
I only looked briefly at the waypoint and ini files and they are stored relative to the steam and mod folder, is there some support to select another folder that is relative to the addons folder?

We also need to have a Linux version, what are the status for Linux builds?

The GPL license makes the source code handling a bit special, how should we handle that? I need to have the code within our own repo for daily work but then we should make it publicly avaiable at releases, should we update the Rcbot2 repo or is sufficient just to create a zip file of the code and publish that?

Cheeseh
All the files use the filename building code in "CBotGlobals :: buildFileName"

I'd guess you'd want to change this code:

CODE

    strcat(szOutput,"..");
    addDirectoryDelimiter(szOutput);
    strcat(szOutput,BOT_FOLDER);
    addDirectoryDelimiter(szOutput);


to something like

CODE

    addDirectoryDelimiter(szOutput);
    strcat(szOutput,"addons");
    addDirectoryDelimiter(szOutput);

though, not sure.

I haven't tried any linux development with the bot, that's really up to anyone with the hardware and the knowledge to be able to try it out, and make it compatible, as its open source.

with regard to GPL, Any way of displaying the source with your changes is appropriate, although it is best to use SVN or something similar since this does it for you.
Enra
For the GPL part I think we will start with just publishing a zip file with our changes. Giving public access to our SVN repo is not something I would like to do right now.

I fixed all the problems with Linux so now it runs fine on a dedicated server as well.

To make it possible to bundle with a specific mod I also started to add some compile-time settings to simplify deployment. Setting up the bots_mod.ini file was a bitch as I needed to add 6 entries that pointed to our mod to cover all paths so I removed the need to have a bots_mod.ini .ini files for the case when you compile it for a specific mod.

Looking good so far biggrin.gif
Cheeseh
For the purpose of only one mod , you can just remove the bot mod stuff and just keep one mod in the code which is for your own mod.
Enra
QUOTE(Cheeseh @ Apr 29 2009, 09:19 PM) *

For the purpose of only one mod , you can just remove the bot mod stuff and just keep one mod in the code which is for your own mod.

I started out with the ambition to keep our bot code compatible with TF2 but the more I dig into the code the harder it gets. Some parts of the base classes are very entangled with functions only available in TF2. So I am going to do as you suggest and remove or disable the TF2 stuff.

What about naming and license? Can we rename it freely to say "AOC_Bot" and remove the console license printout about HPB bot?
Cheeseh
QUOTE(Enra @ May 18 2009, 06:29 PM) *

I started out with the ambition to keep our bot code compatible with TF2 but the more I dig into the code the harder it gets. Some parts of the base classes are very entangled with functions only available in TF2. So I am going to do as you suggest and remove or disable the TF2 stuff.

What about naming and license? Can we rename it freely to say "AOC_Bot" and remove the console license printout about HPB bot?


I would keep the print out as that is a requirement of any GPL mod.

I thought you would just need to create a new bot class called "class AOCBot : public CBot" which overrides the bot stuff and make a new AOCBot array in CBots::init ?

CODE

CBots::init()
{

    m_Bots = (CBot**)malloc(sizeof(CBot*) * MAX_PLAYERS);

    for ( i = 0; i < MAX_PLAYERS; i ++ )
    {
        // THIS IS AOC SO ALWAYS MAKE AOCBot
            m_Bots[i] = new AOCBot();
        
        }
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.