MH the 3rd structure thoughts

Posts about Nelsona's findings in UT!
Post Reply
User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

MH the 3rd structure thoughts

Post by Nelsona » Fri Jul 17, 2015 1:28 pm

The reason: Moving a bit faster - or better
Ideas about changes:
- Pickups won't be replaced - read again - no replacements are done but... hunters will use Net Stuff weaponry dynamically updated ONLY when it needs. No more bunches of replacements - some of them probably are not even ever get in game so replacing stuff which won't be held seems pointless;
- Counting monsters - might have a few troubles here but let's say we can split a bit:
a) a function called each minute to prevent counting errors - using default methods;
b) a variant of a counter tracking spawning + killing - "++" and "--". We can encounter troubles as long as some "modders" are too dumb to understand killing chain of a creature. I guess "--" should be tricky somehow. When this function gets called we update MonstersTotal or (TotalMonsters) variable from main controller. Once per configured number of seconds variable is sent to player in purpose to have HUD updated often. Purpose of counting like that is to get rid of any iterator - no "foreach" no "pawnlist".
If point b) returns perfect results then Point a) might be - removed on demand (configurable).
Given new pickup technology Skaarj bug will be like unexistent. For ScriptedPawn we can develop a pickup tracker guardian. This thing will live shortly and will die after making sure of good things happened. Will get fixed even invisible weapon dropped as a "side effect". "Side effect" spoken by a mindless guy at PMH a few years ago - he never helped UT with nothing he was just posting posts... so it's time to understant the meaning of a "side effect" as a benefit.

Why I'm thinking at monsters to be counted in this way? It's not my idea, this is how UT counts Players + Bots joined - NEVER Foreach or Pawnlist.

User avatar
Hermskii
Site Admin
Posts: 8501
Joined: Sun Jul 10, 2005 9:56 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Houston, Texas
Contact:

Re: MH the 3rd structure thoughts

Post by Hermskii » Fri Jul 17, 2015 1:51 pm

If you rework MH2 to MH3 is this something that you will work with Kelly with? one of the greatest concerns back in the day when Kelly and I were discussing MH needing to have lots of stuff done to it was whether when Kelly did it all whether it would fragment the MH servers and players meaning would MH2 users still be able to play on MH1 type servers. As near as I can tell MH2 had no ill effects on MH1 servers. Would MH3 changes still work for players who download MH3 files from a MH3 server and then go play on a MH1 server?
~Peace~

Hermskii

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Fri Jul 17, 2015 3:19 pm

For clarification.
It's about an attached MH like MH2 series, it's a MH2 in end, I don't speak about any MH3 - MH3 for me doesn't make any sense as long as we have codes wrapped not changed - and I'm very thinking that this curse of a bad structure has to be reconfigured but using normal mapping rules - End, Waypoint, MonsterEvent + the rest of stock or less stock. Why MH3? It's a nice thing playing with numbers ? It's a mod like a mutator to play CTF on DM maps. That's what any MH2 does, playing a kind of improved MH over default maps and stuff. "MonsterHunt2" was a technical thing to not conflict with "MonsterHunt". That "2" suffix used by me by example saved me to do a lot of sloping codes because that thing called did not match the older one and it was avoiding null calls - yes, a simple number solved more troubles. It's about "gameclass" running inside a fake "MonsterHunt" place-holder. Changing it to "3" for me has 0 meaning. What for?
Changes which I want probing are just the controller architecture. Such a server will need an original MH5.03 (because of map itself) or even MH5.04 it's not important. Controller fired is a different class landed in Level and taking control by disabling active MH1 stuff which might be causing conflicts. Will work in the same way as a MH2 but will run based on strategy changed, so to speak won't swim, will walk, but for sure oriented into the same direction - goal is to not break stuff. I'm thinking even to subclass original MH1 as I did with NsDM3 - child of DeathMatchPlus - in purpose to gain maximum of compatibility.

I want to remove replacements because they don't help developing. If certain item has to spawn in certain condition or is tricky set, replacement bugs everything and... decrease performance to complete the bad stage. I know a lot of options but I cannot use anything due to default replacement deal which I think for 2015 is outdated. I cannot promise a hyper extra great thing but I have my curiosity about "what if". Even default MH1 is wild at stuff configured with AttachedMover (just example) to not speak about decorations loaded with old stuff - won't respawn messing up hunter's load. I intend to solve even things unsolved in my MH2 - I cannot consider it ready and might be worthless to follow the same way as long as I'm half convinced about a wrong way - result in a MH very restricted with 0 options only fixing trashes from Level and clamping mapper's creativity.
The problem which I might see is A.I. - Bot probably will try to get stuff from Level which... will stay locked... so... as I said, I have to find a solution A.I. related else it doesn't deserve a start.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sat Jul 18, 2015 4:16 am

So let's move forward.
Pickups having desirability will mess up A.I. Looks like replacements are good as they are, so only a code optimization might help.

Results of clocking.

BaseMutator starting

Code: Select all

ScriptLog: Base Mutator initialization took: 0.023692 seconds.
Calling Power at any monster using SetPawnDifficulty (Shrimp's idea)

Code: Select all

ScriptLog: Pawn Difficulty setup took: 0.000081 seconds.
ScriptLog: Pawn Difficulty setup took: 0.000068 seconds.
ScriptLog: Pawn Difficulty setup took: 0.000064 seconds.
ScriptLog: Pawn Difficulty setup took: 0.000035 seconds.
ScriptLog: Pawn Difficulty setup took: 0.000033 seconds.
ScriptLog: Pawn Difficulty setup took: 0.000068 seconds.
Prevent entire replacement check if item is from package - already replaced. Also it prevents infinite recursions with any matter.

Code: Select all

	if (Left((Caps(Other.Class)),7)=="MH_A_V1") //using 7 letters matching package name
	{
		return True;
	}
And it takes

Code: Select all

ScriptLog: Clocking replacement for MH-Arden+EB_R.MHArmor0
ScriptLog: MH-Arden+EB.MHArmor0 won't be checked forward.
ScriptLog: Actor Check Time took : 0.000012 seconds.
Of course counting monsters can be done faster as long as we don't have troubles as in pickups cases. For pickups attached problem looks solved. Once at let's say 30 seconds monsters can be fully counted - checked in case or errors occurred for nasty deaths - an Iterator will be used. Normal monster count is received properly each 5 seconds using incremental/decremental way without calling any iterator. So we can reduce iterator and still having accurate results.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sat Jul 18, 2015 4:33 pm

Confirmed again.
Regens aren't good for A.I.
If a map has a tweaked Navigation meant to convince Bot in loading weaponry very functional in any MH1 version, when we speak about Bot loaded at 500 Health he doesn't seems interested too much in weaponry (probably is over-rated) so if Bot is poor loaded and Navigation don't allow wick pawns, there are chances to not work, and then I need weapons-loader tools for such cases to work normally (or at least everything looks normal).

As for the performance is noticeable a bit in maps heavy loaded with creatures. Getting rid of abusive iterators seems a good thing.

Keep going...

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sat Jul 25, 2015 5:22 pm

Today I figured how goes that boundary with "1000 Navigation nodes searched from PathnodeXXX". If PlayerCanSeeMe() is a mess in original Engine, this one is the mess number 2. When pawn is falling and is interested about a valid path then... all Network is checked for a reachable node not only those nearby seeker and truly reachable. And yes, I think is another retarded code. Looking for a nearby Actor makes no sense to check all nodes getting over 1000 nodes limit - This is my conclusion looking at message and testing with images + log opened.

Aside:
Regenerator is now a bit calibrated to A.I., of course A.I. hunter won't scan any road while is falling. Will prevent spamming in case of any nasty load. Monster ? Yep, this one need a good replacement else... try to kill him faster.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sat Aug 08, 2015 8:20 am

And now something funny or maybe not funny
Short presentation

Code: Select all

Critical: appError called:
Critical: KrallElite MH-_________-.KrallElite22 (Function UnrealShare.ScriptedPawn.startup.SetTeam:002E) Runaway loop detected (over 10000000 iterations)
Critical: Windows GetLastError: The operation completed successfully. (0)
Exit: Executing UObject::StaticShutdownAfterError
Exit: Executing UWindowsClient::ShutdownAfterError
Exit: UGalaxyAudioSubsystem::ShutdownAfterError
Log: DirectDraw End Mode
Exit: UD3D9RenderDevice::ShutdownAfterError
Critical: FFrame::Serialize
Critical: AActor::ProcessState
Critical: Object KrallElite MH-__________.KrallElite22, Old State State UnrealShare.ScriptedPawn.startup, New State State UnrealShare.ScriptedPawn.startup
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=0)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UXC_GameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: Exiting.
Uninitialized: Name subsystem shut down
As shown bellow
Pretty_Nasty.PNG
Due to many tunes and tweaks operated in MH2 and... even MHv5.04 things goes evil with monsters when their number is "lower". Eh, a few monsters... won't take too long...
Hunting.png
Ichtys seems agree with them.
Of course I was changing some code in order to put things properly (given this opportunity I think I found another deal for Skaarj, LOL). Something cute triggered my attention. If Auto State is Evil then why we need it before to start things properly? Cough, Mr. Actor.uc

Code: Select all

simulated event SetInitialState()
{
	bScriptInitialized = true;
	if( InitialState!='' )
		GotoState( InitialState );
	else
		GotoState( 'Auto' );
}
And biting a bit Auto will gets called later after initialization and All weapons shown up owned or instigated won't be invisible as long as Auto seems called too fast in Net Games (LULU ?).
They were 1640 Monsters at Left, Unknown at Right and Unknown CreatureFactory too :| , else in MH2 a few monsters are recovered since their number is lower in original v5.03 - I'm sorry about "killcount" increased in MH2, :mrgreen: .
You do not have the required permissions to view the files attached to this post.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sun Aug 09, 2015 10:37 am

Using fore-mentioned deal the question is:
In MH Monster can play as Bot does, I mean to not move and to not mess anything until game is started by player ?
YES! :mrgreen: Finally I got a kind of UT behavior type in MH.
How goes ?
You can drop rocks, heat water, bombs, everything. Nobody will move a finger, nobody will shows up to respond - "please, wait the start"
Hit Fire to start - all pawns start the fighting. It looks cute. Also Skaarj get weapon from pocket right when match starts no more invisible trash dropped because we don't have anymore weaponry shown too early to mess up the display ON-Line.

Next subject - replacements for such a party. Finding timing might be the key - when and where, I'll debate this problem too.

So to speak Next Generation of MH should be a Tournament Ready one.

This works in maps with 1600+ monsters ?
It looks functional.

What's going on with those falling from map ? I say: Rest in Peace! Dynamic replacements might save some of them (replacement spawns relocated native), delayed replacement (Skaarj-Type) won't help them... say thanks to awesome mapping.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Mon Aug 10, 2015 5:27 pm

Reading old posts from this forum I think I got some idea. Many MH levels have inside "tests". Some properties of monster were badly screwed for supposed fun. I'm not sure if you can deal with long check sequences for each sort of stupid "setup".
Then strategy is simple. Initialization - spawn an actor for each monster, get and store important common stuff. How looks, order if is a default available one, weapon, etc. Basics more exactly. Okay, destroy creature - no more flies spamming errors while they touch each-other and wander around useless. Server will be smoother in receiving player as long as nothing is firing any projectile before to start game - spam lost. Then, player has started game ? Perfect. Our actors spawn a fresh copy of old creature having NORMAL settings - not stupid testing if server crash or not because they have crashed enough all these years even before to start match, LOL. So we have a clean place if player is sleeping.

This something about a new generation of MH. Probably some levels with nasty setup (3-4 pieces) will suffer here but the rest are going to be fun. No more "aggressiveness 10000", no more "SightRadius 1000000" just default for a better engine functionality. I'll bet several crashes are going to be lost using new way in making order through stuff.

User avatar
Hermskii
Site Admin
Posts: 8501
Joined: Sun Jul 10, 2005 9:56 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Houston, Texas
Contact:

Re: MH the 3rd structure thoughts

Post by Hermskii » Mon Aug 10, 2015 8:20 pm

This is a busy topic Nelsona. Good job. I must admit that sometimes I do know what you are talking about and other times I have no clue but I do know that this can all be referenced later if needed. I also know that this will eventually generate a better MH someday. Keep up the good work!
~Peace~

Hermskii

KellyD
Posts: 54
Joined: Sat Jul 04, 2015 5:59 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver

Re: MH the 3rd structure thoughts

Post by KellyD » Tue Aug 11, 2015 8:43 am

Not trying to turn this into another direction but I really think it needs to be said: Please don't let Nel's code talk cause your eyes to glaze over and you maybe just ignore it because it's technical. Let me give you a TL/DR that maybe will help.

Nelsona's MH version will knock your socks clean off. It's super fast, everything (and I mean everything) just...works. You can play with bots and they are smart. They attack, retreat, switch objectives, support you, just anything they ought to do.

The maps are fixed as well as can be done without remaking them. So much is going on behind the scenes in his mod but the end result is a super clean, super fast, very well done MH experience that goes back to the good MH experience before it got bastardized (of which I probably stand most guilty of doing). Nelsona's MH is hard where it needs to be. You are probably going to die and you have to be careful to keep that from happening. You'll need to switch weapons, watch your ammo, keep an eye out for larger monsters that you may want to avoid for the moment. Titans are scary as they should be. A single Skaarj is probably OK but if you have three then you might consider retreat to a safer spot for backup because you will likely lose that battle alone.

I don't really know a better way to say this than the statement "If I ever run another MH server it will be with his version".
Retired. Please email to contact.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Tue Aug 11, 2015 10:00 am

We break 3 seconds for a kick to me. I was rushing to implement configurable UT stuff replacement, better I should let that as original. Well, I forgot a boolean, I went to sleep and next day I was distracted by other things, MH2_NS_V2 has to be updated as it is and fixing what was not very fixed - happened at 1:00 AM - :| . The second problem which I didn't see (because I did not play last time dumb levels) Suits stuff - it was not cloned properly letting owner without Immunity - I found problem and it's solved now - I have only to update classes before to put them in download at "G-drive" - if anyone need it or... next generation MH might be a better target.
Of course priority for OLD MH2 (old for me right now) is decreased as long as I wanna deal with heavy loaded maps - yes fore mentioned mod doesn't support a high load. And because of this problem (ScriptedPawn code) I changed a few teaming rules at monsters.

Technically monster detecting a teamtag will scan all pawns (other 2000 creatures) for a Leader. If things goes out of timing (No leader yet or such) will cause a recursion crash 1000000 iterations or something similar. Code is logic what does, BUT is wrong or simply more than 1000 creatures/Level are not supported so easy in this Teaming formula. I intend to reply at this bug with a more mad-like thing - just because I'm having fun to hijack bugs and making them useful for me. I will solve problem to play against 5000 monsters if 1600 were too many, YES, just because of fun. The only brainstorming is picking strategy to develop it because I have in mind how things need to be done - and this job is doable in multiple forms. Some additional setup is required to deal with main controller which won't be so important alone, as long as a secondary tool will participate at counting resources used.

External Note: This strategy if is used in Coop will allow playing maps with bunches of monsters.

Of course we speak about rooms with waves, routes, triggers, not 400 in the same room lagging game. I'm speaking about a global quantity fragmented, kill these, move, kill next, move, jump there and fight again, etc.
Not the last ever thing is testing a couple of Levels which I have to sort, else spoken they have to not be loaded with trash stuff, only monsters and common stuff - and starting tests after tests clocking the speed of stuff.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Tue Aug 11, 2015 2:52 pm

New sounds?
I'm not sure about this chapter. I was intended to add sounds for section "debug pathing".

1) I'm not sure if a mapper which wants to learn stuff will do ever use that;
2) My skill in English is pretty limited so I'm thinking at some default sounds. Example: No path - Cow say Moooo. Else some default taunts, but it might be annoying or never used.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Sat Aug 15, 2015 2:40 pm

So let's recall issues causing some laggy game.

We have a lot of tools checking Pawns in purpose to find Players, we have also mapvote-s looking for people voting, and we have Levels using up to 1000 Pawns making things nasty. At a moment even pawns are looking for other pawns - Bot is aggressive, monster is not wild from such query. Then what we gonna do? I'm testing a solution which might reduce pawn load so even a slower "PawnList" has now a lot of chances to work faster than any code used in any MH server as long as strategy probably will be loved (or not) by admins. I cannot be sure about players cowards, redeemer guiders, chicken snipers and such "prototype" of fake hunter.
We cannot say that we get a lot of resources but things which are going to run around will suffer a "speed-up" as long as ONLY stuff engaged in combat is crawling and the rest is "latent" doing nothing else than testing from time to time if the war is coming closer.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: MH the 3rd structure thoughts

Post by Nelsona » Mon Aug 17, 2015 12:33 am

Next point for MH Resourcer Tool.

Do we need a deal with all kind of pawns without to screw things badly? Maybe it's good to have stock involved and the rest - trash box.
We have particular things as multi-weapon holders (which I would like them fixed). Another deals, another bunch of tests. We have sektoids, mullogs, insekts, cobra, etc.; and all kind of more or less particularized "pawns" - in quotes because their codes/animations are bad and NONE seems to care about. Last time I could see a kind of super-duper "King" unable to aim player being totally retarded. Do I need to fix other's trash? Let me see... UT's is constantly loaded with trash so fixing will take until last day...

If Level contains such "pawns" then we won't get any resource as long as we keep them active to not screw stuff. Here might be necessary other way - I'm thinking...

Post Reply