Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Updated Makefile for compatibility & optimisations #31

Open
wants to merge 90 commits into
base: master
Choose a base branch
from

Conversation

APGRoboCop
Copy link

Hopefully those flag adjustments will work well for Linux RealBot

APGRoboCop and others added 2 commits October 1, 2019 15:40
@stefanhendriks
Copy link
Collaborator

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?

- so we won't consider stuck when we move slower, we give the bot a bit
more time (just like ducking)
- Also when a bot has another bot in front of him, he will try to
unstuck (strafe right) for only the time given to move to the node,
after that the 'normal' unstuck logic also kicks in. Else the bots will
remain stuck at each other forever... :/
- it looked like the testing on as_oilrig showed other causes for the
weird navigation: reason being that from CT spawn to the slope downwards
there are connections and bots did not know they couldnt get over/under
the bar between.

- I ran test with a single bot, it learned the connections where bad,
then re-adding multiple bots and the behavior was good again.

- With the other changes where bots getting stuck will still kick off
(after a certain time) the unstuck mechanism also helped a lot

- Another thing: the mechanism creating connections should be smarter so
instead of 'unlearning' it should also prevent creating bad connections
in the first place.
@APGRoboCop
Copy link
Author

APGRoboCop commented Oct 2, 2019

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

@APGRoboCop
Copy link
Author

Did some optimisations, reduced redundancy and add missing parameters recently to your RealBot

@APGRoboCop
Copy link
Author

APGRoboCop commented May 7, 2022

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.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants