Help - Search - Members - Calendar
Full Version: RCBot 2 for Windows and Linux (TF2, HL2:DM, DOD:S) v1.00 r473
RCBot Forums > RCBot 2 for HL2 > Nightc0re's build
Pages: 1, 2
Nightc0re
(This is the latest version, for older releases see this post)

RCBot 2 for Windows and Linux (TF2, HL2:DM, DOD:S) v1.00 r473

Information

After several weeks of hard work, I've managed it, to compile RCBot2 for Linux.
I've also fixed some bugs, and searched new offsets for TF2.
You can find a complete list of changes below.

I'm using the latest version 1.00 (revision 473) from the SVN repository, so this version might not be a stable release.
However, I've tested this version a lot, and I've not encountered any problems.

I've compiled the libraries for Windows and Linux (debug and release).
Which version should you choose?
  • The debug version contains symbols for debugging, and can give a developer a more detailed stack trace if the server is crashing.
    Bear in mind that the debug version is not optimized, so this version is slower than the release version.
    However, if you encounter some crashes, this version should be used to detect the problem.
Installation

This plugin needs MetaMod:Source (at least version 1.10.7).
You don't have to download it, because it's already included in this package.

1.) Download the complete package for your OS.
2.) Copy the "addons" folder to your "mod" folder.
3.) (Only for In-Game Servers) Add "-console -insecure" to your launch options in Steam.

For HL2:DM the folder structure is "hl2_server/hl2mp/addons/".
For DOD:S the folder structure is "dod_server/dod/addons/".
For TF2 the folder structure is "tf2_server/tf/addons/".

This is the complete folder structure for TF2.
QUOTE
tf2_server/tf/addons
├─ metamod
│   ├─ bin
│   │   ├─ metamod.2.tf2.so
│   │   ├─ server_i486.so
│   │   └─ server.so
│   ├─ metaplugins.ini
│   ├─ rcbot2.vdf
│   └─ README.txt
├─ metamod.vdf
└─ rcbot2
......├─ bin
......│   ├─ RCBot2MetaDebug_i486.so
......│   └─ RCBot2Meta_i486.so
......├─ config
......│   ├─ accessclients.ini
......│   ├─ attack_util.csv
......│   ├─ bot_mods.ini
......│   ├─ bot_quota.ini
......│   ├─ config.ini
......│   ├─ hookinfo.ini
......│   ├─ normal_util.csv
......│   └─ weapons.ini
......├─ launcher
......├─ manual
......├─ profiles
......└─ waypoints

Bot Quota
This version supports an automatic bot quota, based on the human players.

To enable "Auto Bot Quota" set the rcbot_bot_quota_interval to a value above 0 (e.g. 5) (unit is seconds).
This interval is used to check the human/bot player count.

For more information see config.ini.
QUOTE
rcbot_bot_quota_interval 5

For more information about the bot quota see bot_quota.ini.
QUOTE
# Bot Quota Settings
# To use this settings you have to enable rcbot_bot_quota_interval
# Bear in mind, that the bots also count towards the max_players setting

Humans "0" => Bots "0" # This is used for the default bot quota (empty server)
Humans "1" => Bots "3" # 1 Human => 3 Bots => 4 Total Players
Humans "2" => Bots "2" # 2 Humans => 2 Bots => 4 Total Players
Humans "3" => Bots "0" # etc.

You can also use the original bot quota settings.
But don't use them together with the above settings!
QUOTE
rcbotd config min_bots 5
rcbotd config max_bots 30

Troubleshooting
  • Edit bot_mods.ini (remove the '#' and edit the steamdir).
    You can find the steamdir name in the server log.
  • Edit accessclients.ini
    Use both steam-ids. ("STEAM_0:0:XXXXXX" and "[U:1:XXXXXX]")
    You can find your steam-id in the server log or on this website steamdb.info/calculator (enter your steam profile url).
  • Rename the waypoints folder in your config folder to your "steamdir" name.
    For example: "rcbot2/waypoints/team fortress 2" to "rcbot2/waypoints/tf2_server"
Changelog

.) Fixed bug in getNextRoutePoint, which destroyed bot aiming, because of invalid vLook.
.) Fixed reading of files with windows line ending (\r\n)
.) Fixed all offsets for Linux
.) Added "master offset" settings for TF2.
.) Fixed a typo while reading bot configs (visionticksclients -> visionticks_clients)
.) Fixed macro in bot_profile.cpp
.) Fixed consecutive use of "addbot"
.) Added debug messages in chat (rcbot debug chat 1)
.) Added automatic bot quota, based on human players.
.) You can now edit the path of where you have installed RCBot by writing it in the rcbot2.vdf (relative paths to the mod folder are also supported)

Credits
  • Cheeseh (Thank you very much for this plugin)
  • ted, bir3yk for linux compatibility
  • Nightc0re for bug fixes, linux compatibility and compiling
Downloads
  • Linux
    • RCBot2 Complete Package for Linux - Download
  • Windows
    • RCBot2 Complete Package for Windows - Download
  • Developers
    • RCBot2 SourceCode and Bug-Fixes r473 - Download
madmax2
Nice, Thankyou... And welcome to the RCbot forum... smile.gif
Nightc0re
QUOTE(madmax2 @ Jul 16 2015, 06:35 PM) *

Nice, Thankyou... And welcome to the RCbot forum... smile.gif

Thanks.
As I mentioned, it took several weeks to get a working version and I thought I should share my achievements.
I hope my effort will be useful for somebody smile.gif

Have a nice day.
Cheeseh
QUOTE(Nightc0re @ Jul 17 2015, 01:28 PM) *

Thanks.
As I mentioned, it took several weeks to get a working version and I thought I should share my achievements.
I hope my effort will be useful for somebody smile.gif

Have a nice day.


great work, though I don't think the metamod version is compatible with DOD:S or HL2 deathmatch at the moment because of the source hooks.
Nightc0re
QUOTE(Cheeseh @ Jul 20 2015, 03:21 AM) *

great work, though I don't think the metamod version is compatible with DOD:S or HL2 deathmatch at the moment because of the source hooks.

You're welcome.

I have tested DOD:S and HL2:DM, and they seem to be working fine. No error logs and the bots are not doing weird stuff, so I think it might work.
If you want, I can upload the modified Makefiles, and some formatted diff files, of my changes.

Best regards

Edit:
I can check the compatibility of the source hooks, if you tell me what I should test.
My Time
QUOTE(Nightc0re @ Jul 20 2015, 07:06 AM) *

You're welcome.

I have tested DOD:S and HL2:DM, and they seem to be working fine. No error logs and the bots are not doing weird stuff, so I think it might work.
If you want, I can upload the modified Makefiles, and some formatted diff files, of my changes.

Best regards

Edit:
I can check the compatibility of the source hooks, if you tell me what I should test.

Will this version work on a Dedicated server ? I have tried to set this up using the above instructions (Nicely done I might add ) but the bots wont load at all . Have tried both the home and non- home and I cant figure out what I am doing wrong. This is for DODS as I don't play TF2 (just too cartoony for me) . Have set up more than a few servers using .74r2 (for stability ) as any other versions just crash too much.
Nightc0re
QUOTE(My Time @ Aug 26 2015, 01:07 AM) *

Will this version work on a Dedicated server ? I have tried to set this up using the above instructions (Nicely done I might add ) but the bots wont load at all . Have tried both the home and non- home and I cant figure out what I am doing wrong. This is for DODS as I don't play TF2 (just too cartoony for me) . Have set up more than a few servers using .74r2 (for stability ) as any other versions just crash too much.

@Dedicated Server
I've tested it under Windows and Linux, with all three games (HL2:DM, DOD:S and TF2).
Yes, I was using dedicated servers (on Windows and Linux), downloaded with steamcmd (the latest version).
But it also works with "Listen Servers".

@Bots won't load
I've updated my DOD:S dedicated server today with the newest update, and tested it again.
It works flawlessly smile.gif

Without your server log, I can only make assumptions.

1.) First, check if metamod is running correctly.
Type "meta version":
QUOTE
meta version
Metamod:Source version 1.10.4
Built from: https://github.com/alliedmodders/metamod-so.../commit/e52d2fc
Build ID: 925:e52d2fc
Loaded As: Valve Server Plugin
Compiled on: Nov 25 2014
Plugin interface version: 15:14
SourceHook version: 5:5
http://www.metamodsource.net/

2.) Check if the rcbot meta plugin is loaded successfully (it should get loaded automatically, if you are using the *.vdf file).
Type "meta list":
QUOTE
meta list
Listing 3 plugins:
[01] RCBot2 (1.0.0.0) by Cheeseh
[02] SourceMod (1.7.2) by AlliedModders LLC
[03] SDK Tools (1.7.2) by AlliedModders LLC

3.) Check if other plugins are running correctly. For instance SourceMod.
Type "sm version":
QUOTE
sm version
SourceMod Version Information:
SourceMod Version: 1.7.2
SourcePawn Engine: SourcePawn 1.7, jit-x86 (build 1.7.2)
SourcePawn API: v1 = 4, v2 = 6
Compiled on: May 30 2015 05:08:16
Built from: https://github.com/alliedmodders/sourcemod/commit/255e2ef
Build ID: 5208:255e2ef
http://www.sourcemod.net/

4.) You can manually load the plugin if you are typing:
"meta load addons/rcbot2/HPB_bot2_meta"

5.) If everything is loaded successfully, you should get this server log:
QUOTE
server_srv.so loaded for "Day of Defeat"
maxplayers set to 24
Server logging enabled.
Server logging data to file logs/L0827002.log
L 08/27/2015 - 00:27:03: Log file started (file "logs/L0827002.log") (game "/home/chris/Documents/server/dod_server/dod") (version "2234230")
Unknown command "mat_bloom_scalefactor_scalar"
Network: IP 127.0.1.1, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
L 08/27/2015 - 00:27:03: [RCBOT2] Starting plugin.
[RCBot] rcbot_defrate 0.19
[RCBot] rcbot_skill 0.60
[RCBot] rcbot_anglespeed 0.25
[RCBot] rcbot_avoid_radius 80

6.) You have to edit the bot_mods.ini file. It is very likely that the default steamdir for your game is wrong.
I had to change it to this:
QUOTE
mod = DOD
steamdir = dod_server
gamedir = dod
bot = DOD

7.) You can check the loading of the bot dir, in your server logs:
QUOTE

[RCBot] HL2 MOD ID 10 (Steam Folder = dod_server) (Game Folder = dod) FOUND
[RCBot] Training DOD:S capture decision 'NN' ... hold on...
[RCBot] ... done!
L 08/27/2015 - 00:27:03: All hooks started!
[RCBot] Reading rcbot2 path from VDF...
[RCBot] Reading bot profile "rcbot2/profiles/1.ini"
[RCBot] m_KVs.push_back(name,[RCB]Emotional)
[RCBot] m_KVs.push_back(visionticks_clients,4)

8.) You can check the version of rcbot with this command: "rcbot_ver"
QUOTE
rcbot_ver
"rcbot_ver" = "TF2/HL2DM/DOD:S 0.98 META linux 470 (BUILD Jul 11 2015-00:31:57)"
replicated
- RCbot version

9.) Last but not least. Make sure you use the correct offsets from my first post, because this plugin is strictly using these offsets from the config.ini file.

@Stable
I was running the server for my master thesis, for about 2 weeks, without an single error.
Therefore I think the plugin is stable smile.gif

Best regards
My Time
Well its not loading or seeing the .vdf file . I tried both your version I downloaded from above and also tried making one from this thread http://rcbot.bots-united.com/forums/index.php?showtopic=1943 .under meta list I only show meta list
Listing 2 plugins:
[01] SourceMod (1.7.2) by AlliedModders LLC
[02] SDK Tools (1.7.2) by AlliedModders LLC
I have it installed in the folder like this C:\dod_server\dod\addons\metamod\ The files inside the metamod folder are "bin , metaplugins , rcbot2.vdf , readme , sourcemod.vdf . So I don't know why it wont find the VDF file . Everything else is installed right as well . rcbot2 files are in the dod_server folder . bot_mods folder has "mod = DOD , steamdir = dod_server , gamedir = dod ,bot =DOD . Changed the Day of defeat source waypoint folder to dod_server . Something I am missing ?
Nightc0re
QUOTE(My Time @ Aug 27 2015, 03:20 AM) *

Well its not loading or seeing the .vdf file . I tried both your version I downloaded from above and also tried making one from this thread http://rcbot.bots-united.com/forums/index.php?showtopic=1943 .under meta list I only show meta list
Listing 2 plugins:
[01] SourceMod (1.7.2) by AlliedModders LLC
[02] SDK Tools (1.7.2) by AlliedModders LLC
I have it installed in the folder like this C:\dod_server\dod\addons\metamod\ The files inside the metamod folder are "bin , metaplugins , rcbot2.vdf , readme , sourcemod.vdf . So I don't know why it wont find the VDF file . Everything else is installed right as well . rcbot2 files are in the dod_server folder . bot_mods folder has "mod = DOD , steamdir = dod_server , gamedir = dod ,bot =DOD . Changed the Day of defeat source waypoint folder to dod_server . Something I am missing ?

Do you have copied the plugin to the correct folder?

1.) You need to download this:
RCBot2 v0.98 (r468) - Download

2.) Then copy HPB_bot2_meta_i486.so to addons/rcbot2. (For Windows copy HPB_bot2_meta.dll)
QUOTE

dod_server/dod/addons
├── metamod
│ ├── bin
│ ├── metaplugins.ini
│ ├── rcbot2.vdf (copy)
│ ├── README.txt
│ └── sourcemod.vdf (optional)
├── metamod.vdf
├── rcbot2
│ └── HPB_bot2_meta_i486.so (copy)
└── sourcemod (optional)

3.) The plugin should get loaded automatically.
If it doesn't you can also write: "meta load addons/rcbot2/HPB_bot2_meta"
QUOTE
meta load addons/rcbot2/HPB_bot2_meta
Plugin "RCBot2" is already loaded as 1.

meta list
Listing 3 plugins:
[01] RCBot2 (1.0.0.0) by Cheeseh
[02] SourceMod (1.7.2) by AlliedModders LLC
[03] SDK Tools (1.7.2) by AlliedModders LLC

Best regards
My Time
Thanks for the time and quick reply's on helping me fix this. What end up working was switching the HPB_bot2_meta.dll in the rcbot2 folder .What helped figure it out was this in your reply. Quote "If it doesn't you can also write: "meta load addons/rcbot2/HPB_bot2_meta" unquote. In the downloads provided you list a Linux or windows folder . I have windows . Next choice is hl2mp or tf2_dods . I pick tf2_dods . Then you have folders Debug_home , Release_home or Release_non-home . As I was trying to use non-home , that is the .dll I was trying to use . Now by looking at the above quote you list it as "HPB_bot2_meta but the non-home folder has it as "HPB_bot2o_meta" . So I switched it to the home folders "HPB_bot2_meta" and bingo everything worked. Yes I have my rcbot2 files in the game directory , not in the user folder . It still works using the home .DLL .
Valera
QUOTE
After several weeks of hard work, I've managed it, to compile RCBot2 for Linux.
I've also fixed some bugs, and searched new offsets for TF2.
You can find a complete list of changes below.

Thank you! It's so awesome work!
God bless you...
Nightc0re
QUOTE(My Time @ Aug 28 2015, 03:46 AM) *

Thanks for the time and quick reply's on helping me fix this. What end up working was switching the HPB_bot2_meta.dll in the rcbot2 folder .What helped figure it out was this in your reply. Quote "If it doesn't you can also write: "meta load addons/rcbot2/HPB_bot2_meta" unquote. In the downloads provided you list a Linux or windows folder . I have windows . Next choice is hl2mp or tf2_dods . I pick tf2_dods . Then you have folders Debug_home , Release_home or Release_non-home . As I was trying to use non-home , that is the .dll I was trying to use . Now by looking at the above quote you list it as "HPB_bot2_meta but the non-home folder has it as "HPB_bot2o_meta" . So I switched it to the home folders "HPB_bot2_meta" and bingo everything worked. Yes I have my rcbot2 files in the game directory , not in the user folder . It still works using the home .DLL .

I'm sorry. It was my fault. What a stupid mistake ...
The file name of the rcbot plugin is used in the *.vdf file.

QUOTE
"Metamod Plugin"
{
"alias" "rcbot2"
"file" "addons/rcbot2/HPB_bot2_meta"
}

As you can see, the file name is incorrect, if you want to use the non-home version.
Completely my fault, I'm sorry for that. Thanks for testing, though smile.gif

QUOTE(Valera @ Aug 28 2015, 12:38 PM) *

Thank you! It's so awesome work!
God bless you...

Thanks smile.gif
I'm happy that my work is useful for some people smile.gif
My Time
I would like to thank you for the time and hard work you put into this as well. This forum has always been one of the most helpful places I have ever went to for help . To create , then put out here for all to enjoy for nothing , is just above and beyond what one would expect . I have donated before and should every time I use this wonderful software . It is about the one and only thing that brings me and my family (Me , Wife , Son , Grandkids and sometimes daughter all on Day of Defeat Source ) together as Gaming is a big part of our downtime . Again a great big "Thank You" to this whole community !
Nightc0re
QUOTE(My Time @ Aug 29 2015, 12:42 AM) *

I would like to thank you for the time and hard work you put into this as well. This forum has always been one of the most helpful places I have ever went to for help . To create , then put out here for all to enjoy for nothing , is just above and beyond what one would expect . I have donated before and should every time I use this wonderful software . It is about the one and only thing that brings me and my family (Me , Wife , Son , Grandkids and sometimes daughter all on Day of Defeat Source ) together as Gaming is a big part of our downtime . Again a great big "Thank You" to this whole community !

This post just made my day smile.gif
I'm glad that I'm a part of this community.

Have a nice day.
Liss Olefract
Hello,

I recently installed a dedicated Linux server, running centos 6 and I thought it would be nice to host my own DOD:S server, so I installed one using the cmdsteam(?) version. Anyway, after some misfires and some tweaking with my iptables based firewall, I have a server up and runing. I also installed source mod and meta mod and have full admin access. What I need are actual people playing on my server. So I was thinking that it would be nice to have some bots running around because that might help fill up the server. After some looking around and reading some fora, I stumbled across RCBot2. I installed it using the this excellent installing guide by NightCore (although I must say it took hard thinking but luckely I am not afraid of the Linux commandline.)

Long story short; the bloody thing doesn't work as it turns out I have libc.so.6 version 2.12 and the HPB_bot2_meta_i486.so file requires GLIB 2.15. I noticed on Sourgeforge that there are several builds. Is there a version that supports GLIB 2.12 and, if so, which one do I need or how can I find out myself?
Any help would be appreciated,

Liss
Nightc0re
QUOTE(Liss Olefract @ Sep 6 2015, 08:54 PM) *

Hello,

I recently installed a dedicated Linux server, running centos 6 and I thought it would be nice to host my own DOD:S server, so I installed one using the cmdsteam(?) version. Anyway, after some misfires and some tweaking with my iptables based firewall, I have a server up and runing. I also installed source mod and meta mod and have full admin access. What I need are actual people playing on my server. So I was thinking that it would be nice to have some bots running around because that might help fill up the server. After some looking around and reading some fora, I stumbled across RCBot2. I installed it using the this excellent installing guide by NightCore (although I must say it took hard thinking but luckely I am not afraid of the Linux commandline.)

Long story short; the bloody thing doesn't work as it turns out I have libc.so.6 version 2.12 and the HPB_bot2_meta_i486.so file requires GLIB 2.15. I noticed on Sourgeforge that there are several builds. Is there a version that supports GLIB 2.12 and, if so, which one do I need or how can I find out myself?
Any help would be appreciated,

Liss

Hi Liss,

Thanks for the kind words.

I've downloaded and installed CentOS 6.7 today (just for you).
I've tried to compile RCBot2 using glibc 2.12 on CentOS 6.7.

In order to achieve this, I need this library "libtier0_srv.so" (it comes with the valve dedicated server).
However, this library needs "GLIBCXX_3.4.15".

On CentOS 6.7 there are only these versions available:
CODE
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13

As you can see CentOS is using really old libraries. I've checked other distributions.
The glibc version there is 2.21 and the glibcxx is 3.4.21.
CentOS 6 is still using glibc 2.12, but this library is more than 5 years (!) old.

I've tried upgrading these libraries under CentOS, but with no success.
Maybe you should install a more recent Linux version.

For servers I recommend Debian LTS (Long Term Support).
If you want to stay in the Red Hat Distribution Line, you can also try CentOS 7, it has glibc 2.15.

I'm currently writing my Master's Thesis. Therefore I don't have time to investigate this problem further.
If you don't plan to switch to a newer Linux, I can try to fix your problem after the Sept. 24th.

Best regards
Liss Olefract
QUOTE(Nightc0re @ Sep 8 2015, 07:20 PM) *

Hi Liss,

Thanks for the kind words.

I've downloaded and installed CentOS 6.7 today (just for you).
I've tried to compile RCBot2 using glibc 2.12 on CentOS 6.7.

In order to achieve this, I need this library "libtier0_srv.so" (it comes with the valve dedicated server).
However, this library needs "GLIBCXX_3.4.15".

On CentOS 6.7 there are only these versions available:
CODE
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13

As you can see CentOS is using really old libraries. I've checked other distributions.
The glibc version there is 2.21 and the glibcxx is 3.4.21.
CentOS 6 is still using glibc 2.12, but this library is more than 5 years (!) old.

I've tried upgrading these libraries under CentOS, but with no success.
Maybe you should install a more recent Linux version.

For servers I recommend Debian LTS (Long Term Support).
If you want to stay in the Red Hat Distribution Line, you can also try CentOS 7, it has glibc 2.15.

I'm currently writing my Master's Thesis. Therefore I don't have time to investigate this problem further.
If you don't plan to switch to a newer Linux, I can try to fix your problem after the Sept. 24th.

Best regards


Hi Nightc0re,

Thank you so much for your reply, it's been really helpfull and you confirmed what I already thought: the OS running on my VPS is to old (well, the version of it that is biggrin.gif ), so I decided to upgrade it. My hosting party offers a host of operating systems, both free (Linux and FreeBSD) and not free (Windows). They also offer CentOS 7 so that might be the best choice for me. You say you are writing your Thesis. Whats it about if I may be so bold to ask?
I will start writing mine coming january (Business Administation)
Anyway, many thanks and good luck with the thesis. I will report back in if hit another snag.

regards

Nightc0re
QUOTE(Liss Olefract @ Sep 8 2015, 08:43 PM) *

Hi Nightc0re,

Thank you so much for your reply, it's been really helpfull and you confirmed what I already thought: the OS running on my VPS is to old (well, the version of it that is biggrin.gif ), so I decided to upgrade it. My hosting party offers a host of operating systems, both free (Linux and FreeBSD) and not free (Windows). They also offer CentOS 7 so that might be the best choice for me. You say you are writing your Thesis. Whats it about if I may be so bold to ask?
I will start writing mine coming january (Business Administation)
Anyway, many thanks and good luck with the thesis. I will report back in if hit another snag.

regards

Hi Liss,

Thanks for your feedback. Yeah I also think upgrading your OS is the best solution.
Good luck with that. I hope you don't lose too much of the work you've put into it.

My thesis is about "Server-Side Bot Detection In Multiplayer Games Using Artifical Neural Networks".
RCBot is one of the bots I've used during data recording.
This was also the reason why I have compiled this bot for Linux smile.gif

I will upload my thesis to the SourceMod forum.
Because the guys over there provided me with human data, and they would like to see the results.
I can also upload it here, if there is an interest in my work smile.gif

Best regards
Liss Olefract
QUOTE(Nightc0re @ Sep 8 2015, 10:25 PM) *

Hi Liss,

Thanks for your feedback. Yeah I also think upgrading your OS is the best solution.
Good luck with that. I hope you don't lose too much of the work you've put into it.

My thesis is about "Server-Side Bot Detection In Multiplayer Games Using Artifical Neural Networks".
RCBot is one of the bots I've used during data recording.
This was also the reason why I have compiled this bot for Linux smile.gif

I will upload my thesis to the SourceMod forum.
Because the guys over there provided me with human data, and they would like to see the results.
I can also upload it here, if there is an interest in my work smile.gif

Best regards


Hi Nightc0re,

Well, I am getting there, slowly but surely I am mastering the beast that is RCBots2. Its loads and I can actually load bots from the console. They don't do much because of some minor typo's I guess and I wonder if you could spare a little of your time to help me out a bit. I installed CentOS 7 and saved all the file from the previous installation and it works, so again, thank you so much. I've discovered that starting in debug mode can be very useful and it revealed the following:

QUOTE

Set motd from file 'cfg/motd_default.txt'. ('cfg/motd.txt' was not found.)
'cfg/motd_text.txt' not found; not loaded
Level "dod_Anzio" has been loaded
[RCBot] file not found/opening error 'rcbot2/waypoints/serverfiles/dod/dod_Anzio.rcw' mode rb
[RCBot] Trying to create folder 'rcbot2/' failed
[RCBot] Trying to create folder 'rcbot2/waypoints/' failed
[RCBot] Trying to create folder 'rcbot2/waypoints/serverfiles/' failed
[RCBot] Trying to create folder 'rcbot2/waypoints/serverfiles/dod/' failed
[RCBot] failed to make folders for rcbot2/waypoints/serverfiles/dod/dod_Anzio.rcw
Initializing Steam libraries for secure Internet server


The above seems to be pointing to a rxw issue. I tried to solve it (just to test it with a symlink (ln -s) but no avail. Could the problem by in bots.ini file?

QUOTE

<snip>
#
mod = DOD
steamdir = serverfiles
gamedir = dod
bot = DOD
#
</snip>


the filepath tot the installation is:

/home/dodserver/serverfiles
The tree beneath that is:
QUOTE

drwxrwxr-x 2 dodserver dodserver 4096 Sep 4 10:53 bin
drwxrwxr-x 12 dodserver dodserver 4096 Sep 3 23:44 dod
drwxrwxr-x 5 dodserver dodserver 4096 Aug 28 16:19 hl2
drwxrwxr-x 6 dodserver dodserver 114 Aug 28 16:19 platform
drwx------ 7 dodserver dodserver 78 Sep 6 19:41 rcbot2
-rwxrwxr-x 1 dodserver dodserver 6731 Aug 28 16:19 srcds_linux
-rwxrwxr-x 1 dodserver dodserver 9729 Aug 28 16:19 srcds_run
-rw-rw-r-- 1 dodserver dodserver 5 Sep 9 19:47 steam_appid.txt
drwxrwxr-x 4 dodserver dodserver 89 Aug 28 16:19 steamapps
-rwxrwxr-x 1 dodserver dodserver 47205 Aug 28 16:19 thirdpartylegalnotices.txt


Permissions:
QUOTE

drwx------ 2 dodserver dodserver 110 Sep 9 19:35 config
drwx------ 2 dodserver dodserver 58 Sep 6 19:41 launcher
drwx------ 4 dodserver dodserver 4096 Sep 6 19:41 manual
drwx------ 2 dodserver dodserver 4096 Sep 6 19:41 profiles

And again permissions:
QUOTE

drwx------ 3 dodserver dodserver 16 Sep 6 19:41 day of defeat source
drwx------ 3 dodserver dodserver 18 Sep 6 19:41 half-life 2 deathmatch
drwxrwxr-x 3 dodserver dodserver 16 Sep 9 19:36 serverfiles
drwx------ 3 dodserver dodserver 15 Sep 6 19:41 team fortress 2


Am I missing something here?
Nightc0re
QUOTE(Liss Olefract @ Sep 9 2015, 08:12 PM) *

Hi Nightc0re,

Well, I am getting there, slowly but surely I am mastering the beast that is RCBots2. Its loads and I can actually load bots from the console. They don't do much because of some minor typo's I guess and I wonder if you could spare a little of your time to help me out a bit. I installed CentOS 7 and saved all the file from the previous installation and it works, so again, thank you so much. I've discovered that starting in debug mode can be very useful and it revealed the following:
The above seems to be pointing to a rxw issue. I tried to solve it (just to test it with a symlink (ln -s) but no avail. Could the problem by in bots.ini file?
the filepath tot the installation is:

/home/dodserver/serverfiles
The tree beneath that is:
Permissions:

And again permissions:
Am I missing something here?

You don't need special permissions or symbolic links. You've done everything right.
Linux filenames are case-sensitive. All rcbot files are lower-case.
So you have to start the server with "dod_anzio" as map name.
Make sure you have copied all waypoint files to your 'rcbot2/waypoints/serverfiles/dod/' folder.

A small mistake. I'm sure you will be laughing right now (kind of ^^).
Best regards
n0nnie
Thank you for your compilework Nightc0re.

I got a problem with your version =(

If a player joins the server the server crashes instant. I tried to change rcbot_runplayer_cmd_dods but crashes still occur.

Game is Day of Defeat Source, OS is ubuntu12.04.

Would be very cool if you can give help to ge this working again =)

Thanks in Advance

Edit:

MMS Version:
14:03:26 Metamod:Source Version Information
Metamod:Source version 1.11.0-dev+990
Plugin interface version: 15:14
SourceHook version: 5:5
Loaded As: Valve Server Plugin
Compiled on: Sep 10 2015 15:24:21
Built from: https://github.com/alliedmodders/metamod-so.../commit/030706f
Build ID: 990:030706f
http://www.metamodsource.net/

Sourcemod:
14:03:44 SourceMod Version Information:
SourceMod Version: 1.7.3-dev+5253
SourcePawn Engine: SourcePawn 1.7, jit-x86 (build 1.7.3-dev+5253)
SourcePawn API: v1 = 4, v2 = 6
Compiled on: Sep 16 2015 16:38:09
Built from: https://github.com/alliedmodders/sourcemod/commit/68ac27e
Build ID: 5253:68ac27e
http://www.sourcemod.net/

I had to update MMS to newest Version because of crashing =(

What happens if a player joins with rcbotd addbot before is shown in attachement

Edit2
Attachement too big =( Will write it then:

[RCBot] Bot Command 'rcbot_move_dist 800' executed
L 09/17/2015 - 14:00:43 [RCBOT2] Hook_ClientActive(1, 0)
[RCBot] AccessClient: 'STEAM_ID_LAN','[U:1:27779097]'
L 09/17/2015 - 14:00:43 "Wolfun<2><[U:1:27779097]><>" entered the game
Uploading dump (in-process) [proxy '']
/tmp/dumps/crash_20150917140014_1.dmp
success = yes
response: Discarded=1
Segmentation fault (core dumped)

What jumped at me while writing this: Bot and Player seem to get the same Steamid?

Edit3:
I solved the crash on Botjoin issue:
rcbot_runplayer_cmd_dods has to be 417 (regarding to this post: http://rcbot.bots-united.com/forums/index....showtopic=1769)

Now to other errors occured: Server crashes if client leaves, and waypointfile for dod_donner is missing (console tells me)

Missing waypointfiles can be fixed I think but what about the crashes if client leaves?
Nightc0re
QUOTE(n0nnie @ Sep 17 2015, 01:38 PM) *
Now to other errors occured: Server crashes if client leaves, and waypointfile for dod_donner is missing (console tells me)
Missing waypointfiles can be fixed I think but what about the crashes if client leaves?

I was testing the bots today on DOD:S.

For me the server is not crashing with an offset of 417.
However, everything else isn't quite working.

I think the new update broke the sourcehooks.
Currently I have no time to look into this problem, because I'm writing my master thesis.

If the server is crashing you can start the server with these parameters.
QUOTE
-console -debug -game dod +log on

This will create a debug.log in your server folder, with lots of information.

You can also use the debug libraries from my package.
It contains the debug symbols, that are also used in the debug.log
n0nnie
I added -debug to startupline and nothing happend. I added -condebug and i got a whole console output. See atachement. Thank you for your reply and good luck with your master thesis

Nightc0re
QUOTE(n0nnie @ Sep 17 2015, 04:03 PM) *

I added -debug to startupline and nothing happend. I added -condebug and i got a whole console output. See atachement. Thank you for your reply and good luck with your master thesis

The debug.log gets only created if the server is crashing.
If there is no debug.log it means, the server was not crashing.

I suggest you leave the option "-debug" enabled, and the next time when you disconnect and the server crashes, you should get a debug.log with the stack traces.
Then we will know, which function of RCBot is causing the server crash, and we can fix it.

The general server log is useless, because it does not contain crash-reports (as in the debug.log).
However, thanks anyway.

Best regards
n0nnie
sad.gif sad.gif sad.gif sad.gif sad.gif

I added -debug to startupline:

QUOTE
screen -A -m -d -S dodfun ./srcds_run -console -debug -condebug -game dod -ip IPhere -port 27060 -tick 100 +log on +maxplayers 25 +map dod_donner


The server crashed several times and no log is created. I chmoded 777 the logfolder, I tried to let the server run as root (I know, not recommended, this way I was sure the creation was allowed), but no log is created.

I googled not creating debug.log and found nothing, seems I am the only one with this problem =(

On the other hand, console tells me that a crash dump is uploaded to steam, so there has to be such...

debug.log has to be located under /server/dod/logs or where core file also is? I only got the core file (315MB) but no debug.log

I try to help as much as I am able to, but this debug.log thing is really weird...
Nightc0re
QUOTE(n0nnie @ Sep 18 2015, 09:32 AM) *
debug.log has to be located under /server/dod/logs or where core file also is? I only got the core file (315MB) but no debug.log
I try to help as much as I am able to, but this debug.log thing is really weird...

Your startup command is correct.
The debug.log is not stored in /server/dod/logs.

It's directly under "server".
During the development of the linux version of rcbot, I got a lot of crashes, here is my folder tree.
QUOTE
dod_server
├── bin
├── core
├── debug.log
├── dod
├── hl2
├── platform
├── rcbot2
├── srcds_linux
├── srcds_run
├── steam_appid.txt
├── steamapps
└── thirdpartylegalnotices.txt

The debug.log should get created at the same time as the core dump.
Hope this helps.

Edit:
You can also give me the core dump. As plan B I can also analyze this core dump. It contains even more information than the debug.log.
https://developer.valvesoftware.com/wiki/De...ing_under_Linux

Best regards
n0nnie
here you have it:

http://www.uhu-minecraft.de/core

maybe this will take a while to download. It is 300+ MB large
Nightc0re
QUOTE(n0nnie @ Sep 19 2015, 01:32 AM) *
here you have it:
maybe this will take a while to download. It is 300+ MB large

Thanks for the help.
It took only 2 minutes to download it.

Here is a quick search for global variables, and the stack-trace:
QUOTE
(gdb) info stack
#0 0x00000000 in ?? ()
#1 0xeb1d6341 in CBotEvents::executeEvent(void*, eBotEventType) () from /server/dodtest/dod/addons/rcbot2/HPB_bot2_meta_i486.so
#2 0xeb24e187 in RCBotPluginMeta::FireGameEvent(IGameEvent*, bool) () from /server/dodtest/dod/addons/rcbot2/HPB_bot2_meta_i486.so
#3 0xecf584f0 in SourceMod::StringHashMap<SourceMod::IChangeableForward*>::retrieve(char const*, SourceMod::IChangeableForward**) () from /server/dodtest/dod/addons/sourcemod/bin/sourcemod.2.dods.so
#4 0xeb9ef370 in g_SMAPI () from /server/dodtest/dod/addons/rcbot2/HPB_bot2_meta_i486.so
#5 0x0c47ea98 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

(gdb) x/16xw 0xeb9edb00
0xeb9edb00 <rcbot_runplayercmd_dods>: 0xeb29e668 0xeb9edaa0 0x00000001 0xeb29a889
0xeb9edb10 <rcbot_runplayercmd_dods+16>: 0xeb29b948 0x00000000 0xeb29e6c0 0xeb9edb00
0xeb9edb20 <rcbot_runplayercmd_dods+32>: 0xeb29a885 0x0a0103e0 0x00000004 0x43d08000
0xeb9edb30 <rcbot_runplayercmd_dods+48>: 0x000001a1 0x00000000 0x00000000 0x00000000

As you can see, I have a working core dump. Thank you.
However, I don't have time to investigate it further until Sep. 24th.

We know that the error occurs somewhere below executeEvent(..), assumed that the stack trace was not currupted at this address.
I will look into it.

PS: If you want, you can delete your attachments now. I have everything I need smile.gif
My Time
Ok after installing the metamod bots they started crashing after about two map changes. Again while about 3 or 4 players join everything is fine. but if more join the server would crash right after the "so and so joined" . I added this to the start up command line "-console -debug -game dod +log on " and restarted . With in a hour it crashed. Look and see no debug file or core file created. Hmmm ok so the I load the debug .DLL after removing the home .DLL . Brings the server down to its knees . Everything is jumping like crazy but I have no loss or choke . Frame rates are above 150. Still I wait it out . After a little over a hour (4 map changes) it freeze's up like before. Again no debug or core files(yes I am looking in the right place.). So after a day and a half of messing with this I thought it might be related to how the bots leave or reinter a game as real players join. In my config I have "rcbotd config max_bots 20" then " rcbotd addbot" The server is a 24 man server so if I have 20 bots and 4 real players its all good. One more real player joins and a bot has to leave and that is where it crashes. So I remove the max_players command and replace it with "rcbotd config min_bots 15 " I then restart the server . NO MORE CRASHES smile.gif . It means only 9 real players can play at any time but in 30 hours and a bunch of map changes it has not crashed one time . If someone else would try this and report back that would be great. I would still like to be able to get a debug log but I am happy just to get them to run more than a hour with out a server restart.
n0nnie
QUOTE(My Time @ Sep 22 2015, 05:09 AM) *

Ok after installing the metamod bots they started crashing after about two map changes. Again while about 3 or 4 players join everything is fine. but if more join the server would crash right after the "so and so joined" . I added this to the start up command line "-console -debug -game dod +log on " and restarted . With in a hour it crashed. Look and see no debug file or core file created. Hmmm ok so the I load the debug .DLL after removing the home .DLL . Brings the server down to its knees . Everything is jumping like crazy but I have no loss or choke . Frame rates are above 150. Still I wait it out . After a little over a hour (4 map changes) it freeze's up like before. Again no debug or core files(yes I am looking in the right place.). So after a day and a half of messing with this I thought it might be related to how the bots leave or reinter a game as real players join. In my config I have "rcbotd config max_bots 20" then " rcbotd addbot" The server is a 24 man server so if I have 20 bots and 4 real players its all good. One more real player joins and a bot has to leave and that is where it crashes. So I remove the max_players command and replace it with "rcbotd config min_bots 15 " I then restart the server . NO MORE CRASHES smile.gif . It means only 9 real players can play at any time but in 30 hours and a bunch of map changes it has not crashed one time . If someone else would try this and report back that would be great. I would still like to be able to get a debug log but I am happy just to get them to run more than a hour with out a server restart.


I can confirm it is related to Bots joining / leaving.

I got rcbotd config min_bots 12 and rcbotd addbot in my config and the behaviour is:

If bots join after the first player, there is no crash till
a) next player joins
cool.gif first player leaves or is kicked
Also bots seem to not have working waypoints, they are running around like chickens in spawn

If bots are in the server already (for example typed rcbotd addbot and joined after that) the server crashes instant.
Nightc0re
Thanks for the feedback guys. I will have a look at it, after Sep. 24th smile.gif
n0nnie
Any news nightcore?
Nightc0re
QUOTE(n0nnie @ Sep 30 2015, 02:20 PM) *
Any news nightcore?

I currently have a full-time job, and I have to prepare for the master exam in the next weeks.
But, I will try to find some time, to look into this problem smile.gif

The first task will be fixing the waypoint loading problem.
genmac
Wow awesome work Nightcore! This will surely help the linux users to finally get rcbots running well on their linux box.
Nightc0re
(Legacy Version)

RCBot 2 for Windows and Linux (TF2, HL2MP, DOD:S) v0.98 r468

Information

After several weeks of hard work, I've managed it, to compile RCBot2 for Linux.
I've also fixed some bugs, and searched new offsets for TF2.
You can find a complete list of changes below.

I'm using the latest version 0.98 (revision 468) from the SVN repository, so this version might not be a stable release.
However, I've tested this version a lot, and I've not encountered any problems.

I've compiled the libraries for Windows and Linux (debug and release, with home folder and without home folder).
Which version should you choose?
  • The debug version contains symbols for debugging, and can give a developer a more detailed stack trace if the server is crashing.
    Bear in mind that the debug version is not optimized, so this version is slower than the release version.
    However, if you encounter some crashes, this version should be used to detect the problem.
  • There are also 2 different versions for the config location.
    If you are using the "home" version, the plugin is searching your config folder in your home folder.
    If you are using the "non home" version, the plugin is searching your config folder in your server folder.
Installation

This plugin needs MetaMod:Source (at least version 1.10.4). You can get it here.
After you have successfully installed MetaMod:Source you have to create a folder for rcbot2.

Copy rcbot2.vdf to addons/metamod.
Copy HPB_bot2_meta_i486.so to addons/rcbot2. (For Windows copy HPB_bot2_meta.dll)

This is the folder structure.
QUOTE

tf2_server/tf/addons
├── metamod
│ ├── bin
│ ├── metaplugins.ini
│ ├── rcbot2.vdf (copy)
│ ├── README.txt
│ └── sourcemod.vdf (optional)
├── metamod.vdf
├── rcbot2
│ └── HPB_bot2_meta_i486.so (copy)
└── sourcemod (optional)

If you are using the "non home" version, copy the config folder "rcbot2" to your server directory.
If you are using the "home" version, copy this folder to /home/username/ (for Linux) or C:\Users\UserName\ (for Windows).

Here is the folder structure for the "non home" version.
QUOTE

tf2_server
├── bin
├── hl2
├── platform
├── rcbot2
│ ├── config
│ ├── launcher
│ ├── manual
│ ├── profiles
│ └── waypoints
├── srcds_linux
├── srcds_run
├── steam_appid.txt
├── steamapps
├── tf
│ ├── addons
│ ├── ...

Troubleshooting
  • Edit bot_mods.ini (remove the '#' and edit the steamdir).
    You can find the steamdir name in the server log.
  • Edit accessclients.ini
    You can find your steamid in the server log.
  • Rename the waypoints folder in your config folder to your "steamdir" name.
    For example: "rcbot2/waypoints/team fortress 2" to "rcbot2/waypoints/tf2_server"
Changelog

.) Bugfix for HL2MP during getNextRoutePoint, which destroyed bot aiming, because of invalid vLook.
.) Fixed reading of files with windows line ending (\r\n)
.) Fixed offset bug (runplayercmd offsets for dods weren't used)
.) Fixed another offset bug (offsets were used before they were loaded from config)
.) Fixed a typo while reading bot configs (visionticksclients -> visionticks_clients)
.) Fixed macro in bot_profile.cpp

Credits
  • Cheeseh (Thank you very much for this plugin)
  • bir3yk for linux compatibility
  • Nightc0re for bug fixes, linux compatibility and compiling
Downloads
  • Linux and Windows
  • Linux
    • RCBot2 Config and Offsets for Linux - Download
  • Windows
    • RCBot2 Config and Offsets for Windows - Download
  • Developers
    • RCBot2 SourceCode and Bug-Fixes r468 - Download
Nightc0re
New Linux and Windows Version!
For more information look here.
Cheeseh
QUOTE(Nightc0re @ Sep 10 2015, 01:26 PM) *

You don't need special permissions or symbolic links. You've done everything right.
Linux filenames are case-sensitive. All rcbot files are lower-case.
So you have to start the server with "dod_anzio" as map name.
Make sure you have copied all waypoint files to your 'rcbot2/waypoints/serverfiles/dod/' folder.

A small mistake. I'm sure you will be laughing right now (kind of ^^).
Best regards


great improvements.let me know of any changes i can make to the Windows version to fix some bugs
n0nnie
Thank you for your work nightcore biggrin.gif

Waypoints and Profiles are working. Sorry I hadn't time to test it till now (also busy at work =( )

BUT:
Server still crashes if someone is leaving (disconnecting) and a bot has to replace him. Here is the core dump:

http://www.uhu-minecraft.de/core
Nightc0re
QUOTE(n0nnie @ Oct 23 2015, 12:20 PM) *
BUT:
Server still crashes if someone is leaving (disconnecting) and a bot has to replace him. Here is the core dump:

Thanks for the core dump. I will look into this problem smile.gif
Deathreus
Plans on integrating the latest SVN build? 474 has some good changes
Nightc0re
QUOTE(n0nnie @ Oct 23 2015, 11:20 AM) *
Thank you for your work nightcore biggrin.gif
Waypoints and Profiles are working. Sorry I hadn't time to test it till now (also busy at work =( )

BUT:
Server still crashes if someone is leaving (disconnecting) and a bot has to replace him. Here is the core dump:

I cannot reproduce your bug, but I tried to fix it. Please test this version.
Please edit your rcbot2.vdf file, so that it is using the "Debug version".
If you are using the "Release version" it is very hard for me to debug this problem.

Your rcbot2.vdf file should look like this:
QUOTE
"Metamod Plugin"
{
"alias" "rcbot2"
"file" "addons/rcbot2/bin/RCBot2MetaDebug"
"rcbot2path" "addons/rcbot2/"
}

QUOTE(Deathreus @ Oct 24 2015, 03:04 AM) *
Plans on integrating the latest SVN build? 474 has some good changes

You can get the new release here.
n0nnie
QUOTE
I cannot reproduce your bug, but I tried to fix it. Please test this version.
Please edit your rcbot2.vdf file, so that it is using the "Debug version".
If you are using the "Release version" it is very hard for me to debug this problem.


New crash, same procedure: Server crashes as soon as someone is leaving a team or the server

http://www.uhu-minecraft.de/core
vintage
Same problem here...
But I have no access to startup commands lines (provider). So impossible to launch debug mod.
Server runs ok but changing team or random time server is crashing...
Best time was 30 minutes....
sad.gif
Because those bots are realy awesome as metamod plugin...

Thks so many times for yor job !

Hope you'll find a stable version ! All are waiting for !
Not to have server full but to have fun with those really cheating guys-bots ! biggrin.gif

They camp, throw grenades, take flags ! hohohoho Really cool to play DoD:S with !
laugh.gif

Another time thks for @ll !

NB: changing profiles seems to give more stability to server... 'a little time'
Our server is linux based. Debian 7
Nightc0re
QUOTE(n0nnie @ Nov 4 2015, 01:54 PM) *
New crash, same procedure: Server crashes as soon as someone is leaving a team or the server

I've already looked into this problem (it's the same by the way).
I will try to make a more verbose version of this function, so I can clearly see where it is crashing.

Unfortunately I cannot reproduce your problem, therefore I completely rely on your feedback smile.gif
vintage
QUOTE(vintage @ Nov 8 2015, 10:40 PM) *

Same problem here...
But I have no access to startup commands lines (provider). So impossible to launch debug mod.


I just have access to global console.log
http://www.lesgrosvilains.fr/temporaire/console.log

Don't know if this can help....
bkf1
I have tryed r473 on DoDS v3029837 and when I click on "Create Server" and then on "Start" it CRASH without any error message sad.gif
Nightc0re
QUOTE(n0nnie @ Nov 4 2015, 01:54 PM) *
New crash, same procedure: Server crashes as soon as someone is leaving a team or the server

Try this version.
I hopefully fixed it in this version, and if not, I have a really detailed stack-trace, if it happens again.

QUOTE(bkf1 @ Nov 14 2015, 01:24 PM) *
I have tryed r473 on DoDS v3029837 and when I click on "Create Server" and then on "Start" it CRASH without any error message sad.gif

Also try the above version.
You can also try to use the hookinfo from this post.

Your rcbot2.vdf file should look like this:
QUOTE
"Metamod Plugin"
{
"alias" "rcbot2"
"file" "addons/rcbot2/bin/RCBot2MetaDebug"
"rcbot2path" "addons/rcbot2/"
}
bkf1
QUOTE(Nightc0re @ Nov 17 2015, 10:02 AM) *

Also try the above version.

Thanks but I have Windows 7 not Linux smile.gif
Nightc0re
QUOTE(bkf1 @ Nov 17 2015, 12:04 PM) *
Thanks but I have Windows 7 not Linux smile.gif

I will provide a nightly build this week (for Windows and Linux), in the mean time you can use Cheeseh's nightly build here.
n0nnie
Same crash again =(

www.uhu-minecraft.de/core

I tried this Version

http://www.mediafire.com/download/ikyay9t8...1.0_r480_fix.7z
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-2019 Invision Power Services, Inc.