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:

  • Supports NS 3.2 and 3.3
  • Linux and Windows binaries included.
  • Full support for bot marines and aliens.
  • Full support for commander mode, including placing structures, researching, upgrading, dropping equipment and sieging.
  • All alien life-forms are supported, including proper flight mechanics for Lerk.
  • Supports regular and combat game modes.
  • Marine and aliens will attempt to play strategically, focusing on securing empty hives and resource nodes. Lerks will use hit-and-run tactics etc.
  • Aliens can use all of their abilities except for gorge web.
  • Aliens will build all hives and chambers.
  • All official maps supported except ns_nothing as of v1.0.
  • Automatic modes allow dedicated servers to dynamically add/remove bots to keep teams balanced and at certain sizes.

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:

Github.com

Post article RSS Articles

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!

EditorView

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.

WelderUsage

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!

Add file RSS Files
Evobot v1.21 (Patch)

Evobot v1.21 (Patch)

Patch

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...

Evobot v1.21

Evobot v1.21

Full Version

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...

Evobot v1.2 (Patch)

Evobot v1.2 (Patch)

Patch

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.

Evobot v1.2

Evobot v1.2

Full Version 1 comment

This is the full version of Evobot v1.2 for fresh installs.

Evobot v1.1.1 Hotfix (Patch)

Evobot v1.1.1 Hotfix (Patch)

Patch

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

Evobot v1.1.1 Hotfix

Evobot v1.1.1 Hotfix

Full Version

This is v1.1.1 of Evobot, designed to fix an issue with weapon collection in NS 3.3 beta 5

Post comment Comments  (0 - 10 of 15)
Guest
Guest - - 689,752 comments

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.

Reply Good karma Bad karma+1 vote
Neoptolemus Creator
Neoptolemus - - 13 comments

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.

Reply Good karma+1 vote
Guest
Guest - - 689,752 comments

This comment is currently awaiting admin approval, join now to view.

Metawawa
Metawawa - - 1 comments

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 :)

Reply Good karma Bad karma+2 votes
Neoptolemus Creator
Neoptolemus - - 13 comments

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 :)

Reply Good karma+1 vote
taakuu
taakuu - - 289 comments

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!

Reply Good karma Bad karma+2 votes
Neoptolemus Creator
Neoptolemus - - 13 comments

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.

Reply Good karma+2 votes
Botmancod
Botmancod - - 53 comments

Nice idea !

Reply Good karma Bad karma+1 vote
HiBARERA
HiBARERA - - 2 comments

how to fix Fatal error ''SOLID_BSP without MOVETYPE_PUSH'' its always crash in the middle game

Reply Good karma Bad karma+1 vote
Neoptolemus Creator
Neoptolemus - - 13 comments

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.

Reply Good karma+2 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X