Evobot is a metamod plugin for the original Natural Selection mod for HL1. It provides AI players to fill out online listen or dedicated servers, or allow for single-player experiences entirely offline.
Current features:
The readme file contains full instructions on how to install and configure the bot to your liking. Have fun!
The bot is fully open-source, and can be found here:
Hi!
It's been a while since my previous release, so I thought I would provide an update on what I've been working on over the last couple of months to give you an idea on what the next version of Evobot will be capable of.
Long-Range Off-Mesh Connections
I have successfully modified the Recast and Detour libraries the bot's navigation is based on to allow for dynamic, long-range connections of arbitrary distance. Previously, the editor required connections to be placed in neighbouring tiles, but now they can be placed anywhere on the map. This was a key enabler for lift usage. Here is an example of a lift connection being placed in the editor. It's as simple as that!
Improved Tactical Awareness
Reachability for structures, hives and resource nodes are now calculated dynamically for each player class, so the bot now understands that it can, for example, reach a res node or structure as a skulk, but not as an Onos. Previously, the bot would not have that nuance: either it could reach it or not. These reachabilities are also updated when the map changes (e.g. doors are welded open/shut), so the bots now better understand when a structure they could previously reach is now blocked off.
More Sophisticated Trigger Understanding
Bots now have a much deeper understanding on how to activate doors and platforms. Previously, they would just look for any func_button or trigger that would target a door. Now, they understand how env_global, multi_manager and other entities work. They also understand when a trigger is active, or when it is dependent on something else, e.g. they have to weld a panel first before a button becomes useable. This means they can open the doors in ns_askr, or ns_weldsiege. All of this is determined by the bot itself, so nothing has to be done in the nav editor.
Awareness of Weldable Targets
Previously, the bot only used welders to repair friendly structures and allied marines. Now they understand they can weld open doors, or remove weldable obstacles if they have one equipped. Again, this is all determined by the bot: the nav editor doesn't have to do anything. Bots with welders now also understand that they can take shortcuts that they can't without one.
Dynamic Movement Capability
Bots keep an eye on their movement capabilities and will recalculate paths if they change. For example, if a marine picks up a welder (or sees one on the ground), it will recalculate its path taking the welder into account. This means a marine bot might start taking the long route to its destination, then spot a welder and grab it, then take a shortcut instead using its new welder.
Lifts and Moving Platforms
Bots now can use elevators and moving platforms, meaning that ns_nothing is now fully playable with the bot, and new options have opened up in other maps (e.g. the moving platform in ns_machina near marine start).
I hope to have this next version with these features out by Christmas!
This is a patch containing just the binaries, for those already running v1.2 of Evobot. If you do not already have Evobot installed, or are running a...
This is the full release of v1.21 of Evobot. Download this if you do not already have Evobot (full instructions in the readme), or if you're running a...
This is the patch for Evobot v1.2 for those upgrading from an earlier version. You will need to overwrite the existing files in your Evobot directory.
This a patch (binaries only) for v1.1.1 of Evobot, designed to fix an issue with weapon collection in NS 3.3 beta 5
This is v1.1.1 of Evobot, designed to fix an issue with weapon collection in NS 3.3 beta 5
These bots are great! Sometimes I forget they're not real people. I do have a question. The Marines can see through cloaking from 50+ feet away, even if the cloaking bar is maxed, is this intended? I checked through the text files but I couldn't find anything about this.
Hi there!
Yeah, cloaking is a tricky one. Basically, how cloaked you are isn't actually controlled by the server: every player runs their own checks to see how cloaked a player should be, which makes it really hard to track the cloaked amount from a plugin.
So far, the best I've managed to do is check to see if the player appears on the minimap or not, which it not really a reliable way to do it.
Im working on an integrated version of the bot which is part of NS itself (will be in a new version of NS in the near future), which will then allow me to have full access and properly track the cloak status of a player.
Sorry about that! I appreciate cloak is kind of useless at the moment.
This comment is currently awaiting admin approval, join now to view.
Just signed up to say how incredibly impressive it is, I don't think I've ever seen something ever close to your bots back in the day (of any games).
Of course the bots often get stuck, but the workaround and the general basic strategies applied by the bots makes the game very close to how the matches played back in the day.
I took a trip down nostalgy lane and I want to thank you for it. Kudos to you for making it done.
Edit : also if you ever find the time to cover ns_nothing it'd be awesome :)
You're welcome! I'm glad you're enjoying it.
I've been working on adding lift support, so the bots will fully support ns_nothing as well. In my WIP build, the bots can use all lifts in ns_nothing and they use the moving platform in ns_machina.
I'll write an update on this for everyone soon so people can see it in action :)
thank you very much Neo! be playing with my friends on version 2.0 (won), can you make the Evobot addon compatible with version NS2.0? It would be great to have backwards compatibility!
I'll see if I can get a version of 2.0 and 1.04 working. I know there is a Steam version of both knocking about but they won't work for me unfortunately (fails to load the client.dll). Without an original HL CD, I actually have no idea how to get older versions working.
Nice idea !
how to fix Fatal error ''SOLID_BSP without MOVETYPE_PUSH'' its always crash in the middle game
Hi! This is a bug for NS 3.3 versions up to and including beta 4. If you patch to the latest (beta 6) then it won't crash any more:
Github.com
Its unfortunately caused by the inventory spilling code for marines so cannot be fixed in the bot plugin.