Thursday, 23-Nov-2017  00:00:00
Enhanced Coop  
[ New messages · Members · Forum rules · Search · RSS ]
Page 1 of 11
Forum moderator: MrLoathsome 
Forum » Game Servers » Loathsomes UT Servers » Loathsomes UT servers change. MegaDomination + MegaTDM. (MooCow servers update - MegaDomination/MegaTDM test.)
Loathsomes UT servers change. MegaDomination + MegaTDM.
MrLoathsomeDate: Friday, 10-May-2013, 9:28 AM | Message # 1
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Reworked the 2 MooCow UT servers completely.

Nothing but default maps* and skins.   Only extra mutator is DoubleJumpUT.

*1 very small extra DM map in the list.  Only 64k.  Should download fast.

Nothing else should download except DoubleJumpUT, x3dfxMapVotev24c and a few very small files
for the new gametypes.

Only serverside mutators running are the DoubleEnforcers mutator,  SwarmSpawn, MoreGore LGE, AutoFill and
BadNews! RC4.    BadNews! is only running on the Domination server.

Only monsters you will find on them are the default Unreal monsters.

Will be tweaking the number of them and other settings as needed during testing.


Moo

 
NelsonaDate: Friday, 10-May-2013, 8:55 PM | Message # 2
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Very interesting way to set up monsters - Impressive Sir, really impressive.
 
MrLoathsomeDate: Sunday, 12-May-2013, 11:01 AM | Message # 3
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Thanks.

I have been taking a different approach while coding my last several projects.  (Pretty much everything since the Zombies5)

Am trying to write things so it works with the existing UT codebase as much as possible, while both fixing errors and trying
to optimize the execution speed of things.  (And also adding a few things....)

I have not been looking at any code or references at all since the Zombies project, other than the default UT source code scripts.
Everything in there* is either Epic source that I sorta re-wrote, or my own new stuff.  (I am sure I reinvented a lot of wheels in
the process, but that is helpful in figuring out how things work.)

*Exception is the bit of code Feralidragon whipped up for me that calculates a usable MaxMapSize variable for pretty much
any map.    That guy is some kinda wizard or something.

You will notice if you look at the source code, I did pretty much nothing with the Team, TeamID or commander stuff for the
monsters.

I tried to figure out a way to get the gametype code to exercise control over the scriptedpawns, while not making major
changes to the behaviors ect.  (The monsters will fight each other at times, but usually only if they bump into each other or
get damaged by each others fire/weapons or something.   But that is what monsters on the same team should do, damnit.)

It may have been easier to just make yet another re-write on the scriptedpawns that would control them a bit better, but
I was wanting to do this in a way that would work with the default scriptedpawns, AND most of the ones that have that
have already been done by others.  Or might be in the future....
Have only found a few 3rd party monsters that don't work with this.  (And I have a good idea why that is, and won't be trying to fix it.   lol)

Simple is always the best.     The core gametype class BP5.BP5 just handles the game setup, scoring and stuff like that.
All the code that motivates the scriptedpawns to play Domination and cause them to be more aggressive towards players and bots
is just a minimal amount of code in the new control point class I came up with.  class BP5.C2DCP

A number of things we have discussed before are used in that class.   Note the 1st If statement in the timer function.   That seems
to work well to stop the monsters from doing much of anything before a match starts.  They will still try to attack a human
player who is just spectating a map before the game starts, and moves too close to them.
That is buried deep in ScriptedPawn I think, and won't be fixed by this...

Everything that this does with the monsters just involves setting an enemy for them at the right time.

Each time the timer function executes, each control point will check nearby for monsters that are doing nothing, and
will try to find an enemy (bot or player) for them.   Each control point will only adjust 1 monster each time timer is called as
that works fine, and avoids any performance/lag issues.   The radius each control point checks will vary depending upon
the current map size and how many control points are on the map.

For TDM there are only 5 actual lines of code that make the monster change its objective.
In DOM games, it also makes an adjustment to the bHasRangedAttack and MeleeRange variables for the monsters, and only when
a monster is heading to one of the controlpoints.   It sets those values back to default when the Monster gets there.

This should all work fine if you have no monsters at all in the games, or have monsters added to the games but have the
MonsterTeam scoring disabled.   You can still control if killing monsters score via the other config variables.
If there are no monsters, all the extra code for both scoring and everything else should just get bypassed.

Re:   Adding monsters.

In testing, I have found that my SwarmSpawner mutator is the best way to add a fixed number of monster to games with this.

It will work with any mutator that adds monsters, but SwarmSpawner will do it best, as it will try to maintain a fixed number of monsters
at whatever rate you want.   (In the docs for that I indicate checking every 2 seconds is the min  recommended value, but I have
been running it with checks every second without issues.    Even lower.  (0.75-0.10 secs as the checkrate !)   With values under 1.0, it will
occasionally spawn 1 extra monster from one of the swarms defined in the ini file.

I know lots of people are partial to using the most excellent MonsterSpawn mutator.
Used monsterspawn on my servers and offline play for almost 10 years until I started writing my own mutators.
Asgard was a pioneer, and all his stuff is great.   This works with all his monsters I have tested it with so far.  The fixed Unreal monsters,
spinners, dino's, Predators ect.

But consider this line right out of the monsterspawn Readme file:
Quote ("Asgard")
Dont fill your server with 60 monsters every minute, monsterspawn isnt designed to do that and Unreal isnt designed to handle it. Every monster spawns effects, eg projectiles, lighting, carcasses and they all tend to move about the level, If running a server think of the players with slow to medium bandwidth.


SwarmSpawn will fill your server with 60 monsters, in just a few seconds, without any kind of lag hit I have noticed.
Bandwidth, is not much of an issue these days.    Even very old machines should run this well, if properly configured.
My current server is a Linux box which helps a lot, but it is running 4 copies of UT.  And it is a P3 !!!!!   (Fastest P3 you ever saw, but still a P3)

Tip, if you want to add Brutes to your games with Swarmspawner, set their Jumpz=1 via the optional settings in SwarmSpawner.   That will help them.

Well typing this post took me longer than adding DoubleDomination mode to this gametype would have.   LOL
Going to try and get RC2 out in a few days here.   Have to work tomorrow, but then 2 days off.

Thats all for now.


Moo

 
MrLoathsomeDate: Wednesday, 22-May-2013, 2:30 AM | Message # 4
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Update.   Servers running latest test version of this.  (Not released yet.)

MegaDomination server will be running Double Domination scoring on DM and CTF maps with 2 control points.
Teams must hold both points to score.

DOM maps will be 5 control point games with normal Domination scoring.


Moo

 
NelsonaDate: Wednesday, 22-May-2013, 7:10 AM | Message # 5
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Quote ("MrLoathsome")
Asgard was a pioneer, and all his stuff is great. This works with all his monsters I have tested it with so far. The fixed Unreal monsters, spinners, dino's, Predators ect.

I respect that work but let's admit issues. When a monster felt in map CTF-Face in my controller will inform player about the nasty death but a Creature from MonsterSpawn has an early RETURN in code and won't show anything this is not the best ever thing. As I said, one of my lost returns just perfomed a server-exit without any error, was like command "admin exit". I will personally start recoding some monsters fearless the mostly skipping fear attitude in big parts and having hate for all bIsPlayer pawns except ScriptedPawns (Skaarj and other trashes). Firsts results are nice but I need to rework all classes and I'm still thinking if I want to implement them first in MH and later in CTF-Monster. Since a few classes are messing up "Fighter" animation - is a challenge for me to deal with a sequence missing but caled often in combat ( troubles right from default stuff - thank you, EPIC - as Waffnuffly said - S..T ). I exported as I could some 3d resources but they are somehow altered - they simply fooled with meshes doing them different from a monster to another not the same way for all classes. Somebody talked once about solving Slith but nothing comes in my head about inflicting a sequence in old mesh without to transport it in other package, eh... I'll quit someday this monster race because is really messed up. Attitude chapter is the worst - how can these pawns to ignore a bot who shoot them ? Where is DamageAttitude alterred ? Crap man... there are basic things in Engine.Pawn but they broke their own rules even spreading comments to be carefull in scripts not respected by themselves. I don't like so much when pawn is not acting aggressive by default and is pushed with an external code.

At least my new "Krall" species attacked Bots - I extended default range from 500 to 1500 (not very much to not force engine) original code when monster is pissed of by a pawn (monster not any pawn) is 500 - very near - this is laziness. If they are wounded won't mill arround trying to run away, will keep performing ranged attack. I extended roamers number at 40 not 4, there are more things to do.... decals, shadows, blood, projectiles, properties tuning... is just a hard work and I'm not very young and full of energy...


Message edited by Nelsona - Wednesday, 22-May-2013, 7:35 AM
 
MrLoathsomeDate: Wednesday, 22-May-2013, 1:43 PM | Message # 6
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
This is "pushing" at the pawns quite a bit, but I think the current version is working very well.   Still needs a few tweaks.
If you watch close, pawns who can fire at you, will sometimes not do that when they should, until the monsters take control of the
nearest control point. This is only an issue in the MegaDomination.   Hope to find a way to adjust that.  They still do quite well.

What I am trying to do with this is make the game(s) work with all pawns, so you and others won't need to recode them.   And also so they
will behave exactly as they were originally intended to.    The gametype just wakes them up a bit if they are doing nothing and should be attacking
a bot/player or finding a control point etc.   The ScriptedPawns will attack players, bots and even Higors Botz now.
The code does not currently reference any specific scriptedpawn or other class, other than 1 spot where it avoids adjusting the Intelligence of Pupae.
And it does work with almost all the non-default monsters I have tried it with.  (almost...)

I would not spend a huge amount of time trying to fix all these errors by re-writing the pawns.    Many of the problems are in the default
gametype(s) code, and can be corrected there, one way or the other.

This Mega stuff includes all the fixes I did with the UTSPFix gametypes, and then some more.   Log files are looking very nice, unless you add
SkaarjTroopers or any of their kin who have weapons.

Funny you mention them, as just today I started experimenting with the 5 Skaarj who carry guns.
I was using SwarmSpawner to add them and had it changing their weapon to UT guns.    Couple of minor bugs with that, but I think they can be
fixed.   They do generate some additional errors in the log file, but I think they can all be fixed at the gametype level.


Moo

 
NelsonaDate: Wednesday, 22-May-2013, 10:12 PM | Message # 7
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
I've see that thing with ControlPoints, I was interested how you did that. Indeed, for a moment they want to develop a melee attack (normal in that case). After reaching destination they are coming back to normal default attack. I understood the trick, is not bad at all, neither looks like a bug.

Skaarj - UT stuff is not really done for them - Log errors ? I don't have any. Why ? I'm simply not interested about those pickup logs, just main server logs (I have more logged things there). Look what I did in controller:

Code
event InitGame( string Options, out string Error )
...
     bJumpMatch = False;
     bNoMonsters = False;
     bNoTeamChanges = True; //Do not mess with monster team   
     bBalanceTeams = False; //No balance in MH
     bPlayersBalanceTeams = False; //Neither this
     bSpawnInTeamArea = False; //Spawn anywhere - stupid maps are about to be fixed or removed
     bCanChangeSkin = True; //Any color can be used for team 0 - Done - half done original by Shrimp
// and other half completed by ME.
     bLocalLog = False;
     bWorldLog = False;
....


These values are very restricted to not be altered by any dumb setting in server.INI or whatever INI, belongs to a new MH controller. Console is prety relaxed except combat states bad done. The mostly when Enemy of monster is killed and monster's timer not finished the combat state. SkaarjBerserker can even crash server.
For CTF I did a few changes (no timer added) and not so many others. Tick and Timer aren't my friends here.


Message edited by Nelsona - Wednesday, 22-May-2013, 10:16 PM
 
MrLoathsomeDate: Thursday, 30-May-2013, 9:48 AM | Message # 8
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Servers updated with improved version of this thing.    Try it out.

@Nelsona

That code looks ok for MH games.    Things will be different when I get done with this.
Next step is to integrate the SwarmSpawner mutator code with the gametype code itself.

If I make that work, all those team options will still be adjustable by the user/server admin.   Multiple monster teams might be possible.
Monsters will spawn in the configured team spawn area.  (If that is set true...)

The code for all of that, is sort of almost there in the Epic source, but as you mentioned, like the SkaarjTrooper stuff, not quite done.

Look at the code for SkaarjTrooper, in the Auto State Startup() function.   It sets bIsPlayer=True.   Comment says "Temporarily until , till have weapon".

Problem.    It never sets bIsPlayer=False anywhere, except in function Died() and function ChangedWeapon().
Changing it in Died() is pointless and helps nothing.   Near as I can tell, function ChangedWeapon() never gets called.....

Other problem those weapon carrying Skaarj have, I think, is that they run out of ammo at times, and throw their gun.
Somewhere in that code, epic has a bit that looks like it is trying to keep the Skaarj from ever running out of ammo.
But they are doing it in the wrong place....   They should never run out of ammo or throw their gun.  (Either would complicate things instantly.)

If my next plan works, it might be able to fix these issues.   If not I will just include a section in the ReadMe file advising to use the weapon carrying Skaarj classes
at your own risk.

Note.   At some point this will hopefully include fixed/enhanced versions of all the default gametypes.   DM and LMS are likely to be next.  Then CTF.   Last will be Assault.

If I make that happen, you might just want to have your MH gametype extending BP5.DeathMatchPlus.      Still quite a bit to do yet, but that is the plan.


Moo

 
NelsonaDate: Friday, 31-May-2013, 5:43 PM | Message # 9
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
I read that code of Skaarj - even I found where is set bIsPlayer = False but... I think won't happend soon, if creature is earlier triggered will jump in state "attacking" without to finish some Autostate leaving code incompleted. Timers and tick seems to brutalize more these "pawns". I did a forced completion of any possible armed monster using the same thing who ruined them - Lord TIMER - as described in superclass of Mutator - is just an actor having .... guess "event timer" not function timer() so I changed things. Good... First credit goes to Kelly attempting to keep Skaarj normally as follows in a BaseMutator (a la DMMutator but reworked for a new game-type and new rules for new pawns):
Random sequences - cakes for monsters:

Code
//1st crappy monster keep featured call
     if ( Other.IsA('ScriptedPawn') )
     {
        S = ScriptedPawn(Other);
        S.NetPriority = 3.000000;
        SetPawnDifficulty(S); //tuning monster here - modify projectiles, speed up, reser dumb setting - a real charm, cough
        return true; //Yep won't ever be removed by President GameInfo
}
.....
//Weapon ? First step, watch out ...
     if ( Other.IsA('Weapon') )
     {
        if ( Other.Instigator != None  && Other.Instigator.IsA('ScriptedPawn') &&/*Continuing Gopostal's code*/ Other.Instigator.Health > 0 && VSize(Other.Location - Other.Instigator.Location) < 50 )
   //Asure if is holded not a lost crap bugging humans far from owner monster
           return True;
        else //yep, else if this is not happening we have replacements Including for dummy UIWeapons still messed after years and years
        {
           if ( Other.IsA('Stinger') || Other.IsA('OLStinger'))
           {
              ReplaceWith(Other, "MH2_NS_V2.MHStinger");
              return false;   
           }
....
//Step 2 Monster armed
event timer()
{
...
              if ( S.Inventory != None )
              {
                 if ( S.Inventory.IsA('UIWeapons') || !S.Inventory.IsA('TournamentWeapon') )
                    RewWeapon(S);
                 S.bIsPlayer = False;
              }
......

function RewWeapon (ScriptedPawn S) //Coming somewhere from RevisionToWeapon or some of my english faults

{
     local Inventory W1;
     local TournamentWeapon W;

     for ( W1=S.Inventory; W1 != None; W1=W1.Inventory )
     {
     if ( W1.IsA('Weapon') )
        {
        if (W1.IsA('Stinger') || W1.IsA('OLStinger'))
        {
           W1.Destroy();
           W = spawn (class 'MH2_NS_V2.MHStinger');
        W.RespawnTime=0;
        W.bHeldItem = True;
        W.GiveTo(S);
        W.SetSwitchPriority(S);
        W.WeaponSet(S);
//      W.AmbientGlow = 0;
//      S.PendingWeapon = None;
        W.GiveAmmo(S);
        W.AmmoType.AmmoAmount = W.AmmoType.MaxAmmo*50;
        }
..... and so on


I think they have ammo and a nice Weapon even will throw a visible one due to PreventDeath new rules... eh. This problem is history for me.

Next chapter - You guessed nice - 3 days ago I modified controller calling a bit Domination (overriding specific things). Why ? Because I like that "Search and Destroy". I checked how I can modify default order in other way. Too hard, really hard... so this was a really nice trick and piece of cake to do, of course keeping TeamRules properly for all "people".
By example:

Code
class MonsterHunt2 expands Domination    //We start as a subclass of a .... TeamGamePlus which belongs to DeadMatchPlus...
     config(MH2_NS_V2);
....
class MonsterHunt extends MonsterHunt2;


And even more ... Yay ! Nothing is changed - game runs well rules are respected - BaseMutator and Hud is called - people starts with some Dispersion - even other weapons won't RateSelf:Accesed None because problem is solved, Bots are attacking. Maybe I ought to make Bot Leader (with order attacking) to taunt this order at begining of match if bStupidMap=false biggrin I really like that... no ... damn ... I love it.


Message edited by Nelsona - Friday, 31-May-2013, 5:49 PM
 
MrLoathsomeDate: Sunday, 02-Jun-2013, 4:07 PM | Message # 10
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
After I get farther along with this, I will do some checks to see if there is any point to assigning Leader status to
a scriptedpawn.    I suspect there will not be.   As I have it now, they will run together as a gang sometimes with
the same objective.   The gametype code itself is their leader.

I am sure that bots become much stupider if they have orders to follow either a player or another bot.

These new gametypes will set all bots to Freelance orders at match start.   Players can of course order them to do whatever
after the game starts if they wish.


Moo

 
gopostalDate: Tuesday, 04-Jun-2013, 3:27 PM | Message # 11
Private
Group: Checked
Messages: 19
Awards: 0
Reputation: 0
Status: Offline
Damn this is fun! Got to play a bit last night and it's everything UT needs to be: fast paced, tough, and even a little crazy. Well done on this Loath. You damn nearly have the trooper classes fixed too.
 
MrLoathsomeDate: Thursday, 06-Jun-2013, 3:05 PM | Message # 12
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Thanks for the feedback there GoPo.

The servers have been updated again since you played the other night. 

And that version is already obsolete...  Made more progress with the Troopers today.

I had to reduce the number of monsters spawning on the servers yet again.
They were just destroying me and the bots.

Currently the only monsters on the DOM and TDM have are only 5 Skaarj with weapons.


Moo

 
Forum » Game Servers » Loathsomes UT Servers » Loathsomes UT servers change. MegaDomination + MegaTDM. (MooCow servers update - MegaDomination/MegaTDM test.)
Page 1 of 11
Search:

Copyright MyCorp © 2017
Powered by uCoz