Berserk Monsters Mutator

Search, find and discuss about Mutators!
User avatar
EvilGrins
Godlike
Posts: 8879
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

Re: Berserk Monsters Mutator

Post by EvilGrins » Mon Nov 28, 2011 10:22 pm

Dr.Flay wrote:... 1 line...
...1 LINE !!...
...1 BLOODY LINE AFTER ALL THIS TIME !!
:loool:
It's always the little things.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Sat Dec 03, 2011 3:20 am

New version of this now available.

See post #1 for info on the update and for download.
blarg

User avatar
Dr.Flay
Godlike
Posts: 3332
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: Berserk Monsters Mutator

Post by Dr.Flay » Wed Dec 07, 2011 9:30 pm

I'm using a GOTY version but I still have issues with the team bots and some monsters ignoring each other. This is most noticeable with the Zombies!! or TWT Zombies. The bots will attack them if they are in the way, but the monsters don't even notice if a bot walks by.

Watching and following in spectator mode, is the best way I have found to see who hate who, as they all hunt me if I go in as a player.

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Wed Dec 07, 2011 10:37 pm

Try adding this line to your BerserkMonsters.ini file for playing with the TWT_Zombies:

ExcludeClass=Zombies3.TWT_ZombiePawn
blarg

User avatar
Dr.Flay
Godlike
Posts: 3332
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: Berserk Monsters Mutator

Post by Dr.Flay » Wed Dec 07, 2011 11:40 pm

I don't think this is actually a BM issue, as the monsters behave with the same indifference to the bots, with or without BM running.
The TWT style zombies were used as an example, as the bots quickly cross paths with many of them.

The Nali105 Predator will kill just about anything, whereas the spiders don't seem to care about the bots (don't know if that's usual), so I am wondering if all my mixed mutators and mixed AI is giving UT a headache.

I notice in this thread, reference to the change of behaviour being fixed by using system files from the GOTY edition, which I am using, though I am playing in the 451 update I have not noticed any difference as It's always been an issue, and what I was hoping BM would fix.

I'll try just the zombies, and just MonsterSpawn on their own with BM. I'll also see if DM-AtypicalMall behaves any differently.
I just get a bit hacked off with most of the monsters just picking on me!

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Mon Dec 12, 2011 9:08 pm

*Vastly improved version of this now available for download in post #1
blarg

User avatar
Dr.Flay
Godlike
Posts: 3332
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: Berserk Monsters Mutator

Post by Dr.Flay » Thu Dec 15, 2011 12:03 am

Taking it home for a spin. :tu:
I'm hoping one day to say goodbye to scenes like this.

Binky "Excuse me Mr. Zombie Skaarj, can I get past?"
Skaarj "Grrrr, I'm doing my shoelaces, go away."
Binky "Ok, I'll go back the way I came. I could shoot you in the back at point-plank, but I'm far too peaceful."
You do not have the required permissions to view the files attached to this post.

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Thu Dec 29, 2011 11:43 am

This thread has been sidetracked a bit, however, back on topic.... :loool:

Another, even more vastly improved version of this will be available soon.

Some of the new features:

1. Boss monsters can now be excluded from being adjusted OR attacked.

2. Monsters will not be instructed to attack the same victim/enemy as they had at the last check. (InsanityRate)
They will turn around and try to attack something else, if it can find it with the current settings....

This tweak fixes issues where monsters would get stalled out trying to get at an enemy that is behind a door or wall
most of the time. Lots of variables involved, so can't say it would never happen, but this helps that issue a lot.
And it is dynamic. If the 1st 8 monsters that get checked are all Tentacles or Squids, and you have MaxChecks set at 8, the mutator will
not do much, and if you watch the log file with bExtDebug mode on, you and watch them all switch enemys that they cant reach every other check.
Solution there is to either raise the MaxChecks value in the ini file, or just kill some of the Tentacles and Squids, and the mutator will move on
to the next monsters it finds in the ScriptedPawns list.

3. Three levels of debug info now available.
1st level will only report the Number of monsters checked, the number that might be eligible for adjustment, the number actually adjusted and the
current 'HateRadius' that is being used to check for victims. Both in the log file and via BroadcastMessage.

2nd level will dump a large amount of data into the log file in addition to the above. Data will include details on every monster being adjusted, which
pawn they attack, health of both, and what the previous enemy was.

3rd debug level, is actually more of a debugging tool, as the mutator will adjust nothing if you turn this on.
If you set the MaxChecks config variable to 0, this mutator will basically switch gears, and dump a list of all monsters on the map, who have an enemy
into the log file at whatever rate you have InsanityRate set at. Nothing is logged for monsters with no current enemy, however it will also broadcast
and log a current count of living monsters on the map.

4. Major improvements made to the algorithm that sets the radius that will be checked when the monsters are looking for their next victim.
Have this set so it will try to balance out at 50% of MaxChecks actually getting adjusted. Since monsters are dying and spawning at pretty much
random rates, this had to work in real time on any map, with any number of monsters. Seems to be working surprisingly well. :rock:

Just ran a series of tests with the current version. All with the bExtDebug option on.

Test 1 on EXU2-BI02-InfernalsFalls with an InsanityRate of 20 and MaxChecks at 32. Running oldskool coop (Listen server) for testing.
This map starts with 500 monsters.

Test 2 on SkaarjTowerF with InsanityRate at 20 and MaxChecks at 1024. (adjust em all....) Also in oldskool listen server mode.
This map seems to start with 227 monsters.

Test 3 back on EXU2-BI02-InfernalFalls with InsanityRate at 20 and MaxChecks at 0. (Reporting mode)
All the monsters want to attack me, but ignore each other.

Test 4 DM (actually UTSPFix.DM_SPGame) with InsanityRate at 20 and MaxChecks at 128. (Way more than the # of monsters likely to show up)
On DM-Bathroom-Cow-Beta. (One of the better big bathroom maps IMHO)
Was using my current versions of BadNews3 and the Dropper mutator to add monsters for that test.

All of these tests were done in one session with no issues.

In the event that anybody has read this far, and is bored enough to enjoy reading log files, the attached file is the log from the above series of tests.

Look close to see how fast the radius adjusting thing zooms in on 50% of adjustable monsters being actually adjusted.
(It jumps about a bit due to all the changing variables, but seems to be doing what I want it to in any situation tested so far...)

Hope to have the update posted in a day or 3 here.

*Noticed while looking at the log file after this test run, that changes to the mutator settings done via Options/Advanced Settings/Mutators seem to be
taking place instantly, even before I started up the next map. Very cool I thinks. :tu:
Thanks again to Dr.Flay for pointing out the power of the INT file. (Why did I ever bother doing a Mod menu? :noidea )

**Edit. New version also makes sure the monsters do not get side tracked by FlockPawns or StationaryPawns. (Birds, Biterfish, Cannons etc...)
You do not have the required permissions to view the files attached to this post.
blarg

User avatar
Dr.Flay
Godlike
Posts: 3332
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: Berserk Monsters Mutator

Post by Dr.Flay » Thu Dec 29, 2011 7:10 pm

I managed to read it all :tu:
Nice ideas.
Looks like the fish I put in the water zones will finally still be there when I get to them.
Definitely taking this home for a play tonight.

:gj: as usual

*edit
:( I was hoping you'd posted the update in the first post.

BTW. I noticed that changing from fullscreen to windowed reset the changes, and when I was poking around the ini and int files noticed the end statement for most mutators was set to make an instant change.

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Mon Jan 02, 2012 7:34 am

Dr.Flay wrote:I managed to read it all :tu:
Nice ideas.
Looks like the fish I put in the water zones will finally still be there when I get to them.
Definitely taking this home for a play tonight.

:gj: as usual

*edit
:( I was hoping you'd posted the update in the first post.

BTW. I noticed that changing from fullscreen to windowed reset the changes, and when I was poking around the ini and int files noticed the end statement for most mutators was set to make an instant change.
Well, the fish, (or squids), may or may not be there, depending upon a few things. If you have bAttackKin true, they might kill each other off, other monsters might
jump into the water to attack the fish in any case. Or, if there are fish and squids in the same waterzone, they might kill each other off... Lots of possibilities with this.

Main thing that tweak did was prevent anything that happens to be in the water, from trying to attack anything that
isn't in the water. (Which fixed a number of possible complications with this mutator.)

The initial version posted, (consider it a beta), will probably cause problems with some maps and/or gametypes as it is.
Have made a number of adjustments that should fix most of these issues. I hope. :shock:

I am still testing and tweaking this thing, but it is almost ready I think. I set a few fairly ambitious goals for how this will work when done, and am surprisingly close.

Goals:

1. It will only work off the current list of ScriptedPawns UT dishes up when you do a foreach "AllActors(class'ScriptedPawn', SP)" statement in the code.
For various performance considerations, I did not want this to be using any type of internal lists or arrays with data regarding individual pawns.

2. This will have zero code doing any checks for specific types of ScriptedPawns, GameTypes, other Mutators etc,
(Other than excluding any pawns that you have specified in the optional ExcludeClass config variable)

3. It has to dynamically adjust to any amount of monsters, on any map, on any GameType in real time.

4. Must not cause ANY extra warnings or errors in the logs.

5. Must run server side only. No need to be in ServerPackages or require any download.

6. Must be as efficient as possible. (Current size of the file is under 10k, and it includes the comment free source... Comments piss me off and slow me down.)
*Please start a new thread in the coding forum with all your objections regarding my above comment comment. Don't side track this with that.... :loool:

So far, all that is looking good in my testing.

Added 2 new features today, that seem to improve things quite a bit.

1st, I came up with a scheme where you can optionally have this thing slowly step/traverse thru the entire list of ScriptedPawns, checking only the number you have
set in the MaxChecks variable each InsanityRate. Or you can have it just work on the list sequentially as the beta does.

If I am understanding correctly how UT builds this list, it appears it works it as follows:
1. List is populated with any monsters that exist when the map starts, if the map contains monsters. In the order that the map author put them into the map.
2. Any other monsters added to the map by either the map itself, mutators, summoning or any other method will be added to the end on the current ScriptedPawn list.
3. It changes dynamically in real time, as monsters are killed and spawned.

If I am wrong on the above, somebody let me know.

I suppose I could attempt to look at somes maps with UED and find out for sure, but I HATE UED, and have only used it a few times to export source code and textures.
I do EVERYTHING using only Notepad and UCC.
(Well, I had to use PSP and a few other graphics tools when I had to mess with decals or textures for some previous projects, but you get the point.)

This option gives you 2 different ways to turn it loose on the monsters. You will have to test a bit to see which setting will work best for your current map/gametype etc...

2nd, added some code that throttles the InsanityRate down to 25% if it does 3 checks and the HateRadius does not get adjusted.
i.e. If you have the rate set at 15, the mutator will slow down its checks to 60. Soon as more monsters are spawned, or existing ones move around enough to
trigger another adjustment to the HateRadius, the mutator will kick back into checking at the InsanityRate set in your ini.
It will mostly get out of the way if there nothing to do. But it will kick back into checks at the rate specified in the ini if there is...

Sorry to make you wait for the next update, but I want to test this further, and also avoid releasing too many beta versions as I did
with some of my previous efforts. Will update post #1 with the new readme and download soon as I get that far.

I think it will be worth the wait. Have had more fun testing this than anything else I have done. And have been learning quite a bit about how the ScriptedPawn AI works
as well.

Watching monsters fight is fun.
blarg

User avatar
EvilGrins
Godlike
Posts: 8879
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

Re: Berserk Monsters Mutator

Post by EvilGrins » Tue Jan 03, 2012 12:08 pm

MrLoathsome wrote:Watching monsters fight is fun.
No doubt. That was one of the things I liked about the original MonsterMadness:
Image
The monsters constantly tore into each other.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758

MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Berserk Monsters Mutator

Post by MrLoathsome » Thu Jan 05, 2012 6:27 am

Post #1 now updated with the new Readme copy and current download.

Highly recommend reading it before trying the thing out, as some significant changes and improvements have been made.

If you are playing default UT DM/TDM/CTF/DOM or AS maps with monsters on them, I would also encourage you to try
my UTSPFix gametypes available here: http://www.ut99.org/viewtopic.php?f=4&t=3653

If you want a bit more real time feedback, run this with EITHER the BadMessages mutator or the current version of
the BadNews mutator available here: http://ecoop.ucoz.com/load/bad_news_fixed/1-1-0-31
blarg