Jump to content

A3EAI - Roaming/Vehicle AI Patrols - Discontinued


Face

Recommended Posts

Depending on how many AI-spawning addons you have, your server performance can suffer since AI are resource-hungry. Also Arma is very poorly multithreaded so it performs better with fewer fast cores rather than many slower cores - your server CPU's 2.6GHz max speed is probably a limiting factor. A 4-core (8 threads with HT) CPU with higher clock speed would give your server better performance.

Link to comment
Share on other sites

@Face I'n not sure if you read my last post... I added you AI scripts to my live server on Sat and whilst it works great (as scripted), the performance of my server plummets!

 

Hyper-threading seems to stop working (correctly anyway) and CPS seems to sit at about 15/20 under load. I removed it last night and the server is now back at 47+ FPS with 56 players online.

 

What performance impact have you seen and how are other hosters finding it with more that 40+ players on?

 

My servers spec (per epcoh server):

 

Processor - Intel®Xeon® E5-2630 v3

Speed - 8 Cores (HT) x 2.4 GHz(2.6 GHz Turbo Boost)

RAM - 64 GB DDR4 ECC

HDD - (2 x 240 GB SSD) Intel® S3500

Bandwidth - 1 Gbit/s

 

Nice work again.

 

Mike.

With the way Arma3 is 'optimised' I wouldn't be surprised if a G3258 didn't outperform your E5-2630 v3.

Link to comment
Share on other sites

Depending on how many AI-spawning addons you have, your server performance can suffer since AI are resource-hungry. Also Arma is very poorly multithreaded so it performs better with fewer fast cores rather than many slower cores - your server CPU's 2.6GHz max speed is probably a limiting factor. A 4-core (8 threads with HT) CPU with higher clock speed would give your server better performance.

 

Thank you for getting back to me however I'm not sure you read my post fully, once I removed your script(s) the server runs great 47 FPS/36 CPS with over 50 players on. What's more  based on BIs 1.36 (I think) update multicore support has seen a massive improvement.

 

mission.jpg

 

I moved from an 8 core to 16 (logical) and wow the difference is night and day! I'm using the -enableHT perimeter with -exThreads=7 and I have perfect thread/core offloading.

 

The question was (sorry if it was unclear) has this been tested under load and what are the results.

 

Thanks,

 

Mike.

Link to comment
Share on other sites

I tried again using a fresh install of A3EAI straight from Github. Tried debug level 0 and 2, enabled A3EAI_loadCustomFile, used your custom def file and I still wasn't able to replicate your problem.

 

At this point, you should check that the files you're editing are actually the files your server is using. If you have to, wipe out every trace of A3EAI on your server and start over.

 

Sqf files can't affect other sqfs, but it's possible to overwrite any global functions. A3EAI uses compileFinal to avoid accidental/intentional function overwrites, but this only works if nothing is loaded before A3EAI that uses the same function name as one of A3AI's functions. All of the functions that A3EAI uses are prefixed with A3EAI_ so the chance of an accidental overwrite is slim to none.

 

If you want to add a chance to add spawns, just wrap the spawn line with this:

if (0.5 call A3EAI_chance) then {INSERT YOUR SPAWN LINE HERE}; //0.5 chance to call your spawn

The A3EAI_chance function saves you the hassle of doing the whole "floor random" thing and reduces the probability of mistakes.

 

Alright I'll well I found out when I was trying out my version with floor random etc. the problem occured until I completley removed the @epochhive and used a new one. using a different custom defs file didn't work. my array looked like this 

["Military Base Guards1",ranmili,300,4,3,true,1800] call A3EAI_createCustomInfantryQueue;

so maybe this destroys the whole @epochhive or parts of it because it can't read the ranmili variable. Btw. I declared the variable before the A3EAI mod calls the custom spawns.

 

edit: got another problem: I have Ai spawning in cities and airfields etc. but I disabled static, random and dynamic... is there another type of ai ?

edit2: alright it was my fault, I made a mistake in the config file and I didn't see the 

"[A3EAI] Error found in variable A3EAI_Variables, resetting to default value."

messages in the RPT. They didn't load because I forgot a ; in the config file. That would explain why they spawned :)

Link to comment
Share on other sites

@lowrey I did read your post thoroughly. The fact of the matter is that Arma uses a single thread to process all AI related calculations, meaning every single unit shares processing time within a single thread. Whether you have a 4 core CPU or a 50 core behemoth won't change this fact. The 50 core may even perform worse since it would have a lower clock speed per core.

Link to comment
Share on other sites

@lowrey I did read your post thoroughly. The fact of the matter is that Arma uses a single thread to process all AI related calculations, meaning every single unit shares processing time within a single thread. Whether you have a 4 core CPU or a 50 core behemoth won't change this fact. The 50 core may even perform worse since it would have a lower clock speed per core.

 

That I didn't know. Thanks!

Link to comment
Share on other sites

Preliminary work on HC support has already begun, but serious work on it will start when a A3 fixes the issue of AI not being transferred between server and clients properly. Right now my main focus is fixing existing problems and making sure I have a stable code base before I go forward with something as adventurous as headless clients. I'm also working on a new feature that I think many people will like, it's in the final stages of testing at the moment.

 

To be honest, there is a lot for me to learn about headless clients since I completely ignored the concept back when I was working on DZAI (HC support was terrible then). Early HC support will be bugs galore, just so you all know. Unless you consider yourself an experienced admin that knows how to set up a headless client using existing guides online, I suggest you stay well away from the early versions of A3EAI HC.

Link to comment
Share on other sites

Preliminary work on HC support has already begun, but serious work on it will start when a A3 fixes the issue of AI not being transferred between server and clients properly. Right now my main focus is fixing existing problems and making sure I have a stable code base before I go forward with something as adventurous as headless clients. I'm also working on a new feature that I think many people will like, it's in the final stages of testing at the moment.

 

To be honest, there is a lot for me to learn about headless clients since I completely ignored the concept back when I was working on DZAI (HC support was terrible then). Early HC support will be bugs galore, just so you all know. Unless you consider yourself an experienced admin that knows how to set up a headless client using existing guides online, I suggest you stay well away from the early versions of A3EAI HC.

 

DZAI was the nuts! So i'm really looking forward to where this goes...

 

You have my support whichever way you go!

 

M.

Link to comment
Share on other sites

Hey. I need a bit of help with the vehicle patrols, I'm not sure if there is something that I am over looking but I cant get the vehicle patrols to spawn in.  The Infantry/Survivor spawns are working fine.

 

Here is what I have in the config.

A3EAI_maxLandPatrols = 15;
A3EAI_vehList = [
	["B_MRAP_01_F",3],
	["B_G_Offroad_01_armed_F",3],
	["B_G_Quadbike_01_F",1],
	["O_MRAP_02_F",3],
	["O_Truck_02_covered_F",1],
	["O_G_Offroad_01_armed_F",3],
	["I_MRAP_03_F",3],
	["I_G_Offroad_01_armed_F",3]
];

This is all I have changed, I did actually have it working once but the server died, after I reinstalled it and added A3EAI back on I cant seem to get it to work

Link to comment
Share on other sites

@Cerb: You will need to check your server RPT logs for more details. I can't do anything without them because I already know the vehicle spawning works.

 

Edit: I tried out your vehicle list and I found no problems on server startup. The only potential issues I see is that a few of the vehicles have color randomization built-in, which would cause BE kicks unless you've added filter exceptions for them. The MRAP vehicles seemed to spawn in and patrol just fine.

Link to comment
Share on other sites

@Havoc I'll need to know more about these situations, such as which types of buildings and map (I assume Altis), and if possible what type of spawn they are (static/dynamic/random/custom)

 

Your situation is strange because AI spawns (static/dynamic/random) are canceled if players are within ~125m of a player position and AI are set to 10 seconds non-hostility if they somehow spawn 100m within a player unit, which should make "instant killing" impossible.

Link to comment
Share on other sites

Hmm interesting. Ok I'll detail the situation a little better.

 

Yeah got more details out of the player. Seems it may just be that they walked through an Epoch wall.

 

He did reporting two AI spawning directly in front of him when he was looting a car though, he actually saw them spawn.

 

Yes it was on Altis.

 

Rather than a 10 second non-action is it possible simply to teleport them 100m away with findsafepos?

 

And yes they were dynamic spawn.

Link to comment
Share on other sites

@Havoc: Wall-walking is something I've observed too and that's something that I can't anything about unfortunately. Teleporting AI is not a solid solution because you'll always have to consider who is on the other end of the teleportation - you may be teleporting AI away from a player only to plant them in front of another player nearby. That is the reason why spawns are canceled if no suitable position can be found.

 

I'm reading the dynamic spawn code now and there is spawn prevention in place if at least one player is within 150m of the spawn point. However there is an exception for the targeted player. I can't remember the reason for the exception off the top of my head, but if there's no adverse side effects I'll take it out and that will hopefully prevent too-close spawning. I will also add prevention for AI to spawn in buildings for all spawn types (static/random/dynamic). The heavy amount of conditional checks is what worries me but updates to increase efficiency can always come later.

 

At this time I'm not sure when the update will be. I've spent much of the week laying out foundation code for future HC support (it will be optional HC, which complicates things) and much code has been reworked, so I'm still busy making sure everything still works as intended.

 

@Leigham: Do a Google search of "arma marker follow unit" and you'll find a bunch of code examples that will help you. The only thing you need to do yourself is to decide when the marker stops following and gets deleted (ie: vehicle destroyed, mission over, etc).

Link to comment
Share on other sites

At the moment im trying this

_unit = _this select 0;

_marker = _this select 1;
 
_marker setMarkerType "mil_destroy";
_marker setMarkerSize [1.25, 1.25];
_marker setMarkerColor "ColorRed";
_marker setMarkerText "Supply Convoy";
 
while{alive _unit}do{
_marker setMarkerPos (getPos _unit);
sleep 5;
};
 
_marker setMarkerType "mil_destroy";
_marker setMarkerSize [1.25, 1.25];
_marker setMarkerColor "ColorRed";

_marker setMarkerText "Supply Convoy";

 

the parameters in the mission are 

 

_marker = [_unitMarker,"Supply Convoy"] call SEM_fnc_convoypos;

 

edit i think i found my problem i saved the file as FN_confoypos not FN_convoypos

Link to comment
Share on other sites

Updates:

 

Currently still working on the next A3EAI update (2.3.0). 50% of the changes are bug fixes and features, 50% of the changes is laying down foundation code for future HC support.

 

Also working on the A3EAI wiki page to add more expanded explanations on how to configure A3EAI settings: http://a3eai.wikia.com/wiki/Configuring_A3EAI_Settings

Link to comment
Share on other sites

Hello!

 

First off all, excuse my bad english..

 

Is there a way to spawn NPCs with a condition like: if there is a crate in a given radius then spawn some units?

 

I try to make a H1Z1 liked Supply Drop Script for Epoch.

 

Here you can see how the drop script itself works, so you can understand my Plan:

 

https://www.youtube.com/watch?v=0C4SQvwzoQ4

 

And no my Plan is a Event not a PayToWin Conzept :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...