RealBot
RealBot copied to clipboard
Updated Makefile for compatibility & optimisations
Hopefully those flag adjustments will work well for Linux RealBot
I'm testing this and i noticed on my machine (macOS) that there is no such thing as g++-4.5. When changing that into g++ it seems to compile fine.
One way to deal with this is to make changes around this part:
ifeq ($(UNAME_S),Linux)
SO_SUFFIX = so
endif
ifeq ($(UNAME_S),Darwin)
SO_SUFFIX = dylib
endif
so you put within ifeq( linux) part the gcc++-4.5, or perhaps better is to create a symlink on y our machine pointing gcc++ to this version?
Not sure but Apple will make macOS support for RealBot and maybe HLDS die, no thanks to Catalina. So I thought it is pointless and I've never compiled for macOS before.
Another reason why I've used G++-4.8 is due to some outdated dependencies provided by SteamCMD that contains 'CXXABI_1.3.9'. Also me and SandBot dev realised some issues using newer compilers using the libstdc++.6 and came with this error using G++ 6 or higher:-
./libstdc++.so.6: version 'CXXABI_1.3.9' not found
You may want to look this up as I do know that newer GCCs appears to not allow compiled bots to work for HLDS Linux.
http://forums.bots-united.com/showthread.php?t=10041&page=8
Did some optimisations, reduced redundancy and add missing parameters recently to your RealBot
Made some recent changes
I agree, let Catalina rest/die. I'll take a look later.
Those 'Experimental Tweaks' I've made today may have some side effects, as I'm not very familiar with RealBot, and I've added more comments for the TODOs, for you to maybe explain?
The bots personalities will have lower spammy chat/radio rates, WalkWithKnife and average reaction rates. However, the HelpTeammate, has been increased for bots to cooperate more. And the NodeMachine header appears to be muddled. Plus some missing declarations and implementations are newly added.
Chat/Radio rate reduced further. bot_func readjusted for bots to avoid too expensive weapons and shields, but consider on buying the MP5 for an affordable price. "is_neighbour_node, FUNC_TakeCover, FUNC_FindFarWaypoint, and FUNC_GiveHostage" defined, but still more to come.
Whew well after over 100s of changes to RealBot since v4.0.1 let me list some changelogs and todos:-
Changelog:-
» Reduced Redundant coding » Optimised and modernised coding » Improved floating point precision » Added C++14 support for both Linux and Windows builds » Fixed TMP-45 Primary Weapon typo by Aoi Kagase » AMBuild Compiling support added by Aoi Kagase » Adjusted bot's personality and weapons preferences, to avoid lame weapons and overpriced weapons. » Bot's radio/chat rate reduced to avoid too many spammy chat from flooding. » Bots should now cooperate better with their teammates to avoid being abandoned and overwhelmed » Node boundaries adjusted for wider node gaps for optimisation and to reduce the risk of redundant nodes » bot_func readjusted for bots to avoid too expensive weapons and shields, but need to consider buying the MP5 for an affordable price. » "is_neighbour_node, FUNC_TakeCover, FUNC_FindFarWaypoint, and FUNC_GiveHostage" defined, but still more to come. » Bots should now vault on to ledges slightly better » Added precompiled nodes and experience files using Bsp2Rbn for 3475 maps! » Plus I've added experimental FindBreakable, CheckForBombPlanted and FindCover definitions/implementations etc found from bot_func.h » NodeMachine improved slightly to avoid bots from getting stuck in a cluster, however, RealBots will need time and exp to gradually learn and learn how to crawl in vents as well as Duck-Jump to vault onto crates, edges and ledges.
Todo:
- Bots may not camp when last in team (or second last?)
- Bots should know when others are near its waypoint, so it won't run into each other - Done but not fully tested!
- Bots should have better knowledge about goals (mainly for investigating which bomb site got the live C4 in and hostages)
- Improve pathfinder by properly removing excessive connections, especially on ones that have blocked pathways - Not fully tested!
- Allow bots to duck jump for vaulting upon crates or ledges, cs_italy, de_nuke and de_inferno are good examples - Almost done!
- Improve the way bots walk path and decide it is a bad connection
- Improve 'unstucking'... when not stuck by hostages and how to attack glass or vent grills in order to proceed.
- Allow bots to autovacate for human players
- Prevent bots from Team Killing when a player joins T in CZ
- Find an automated solution for removing redundant or excessive nodes that can make the connections less messy (if it doesn't already exist?)
- To add a cvar to toggle Reallog.txt on or off to reduce printing too many texts in the console and to prevent that txt file building up
So there you have it, but I think I need to rest and put this improvement project on hold for a long while.