Monster Hunt 613

Need some nice Mods? Here, you are right!
Post Reply
User avatar
Shrimp
Adept
Posts: 273
Joined: Wed Oct 10, 2018 11:15 am
Location: Australia
Contact:

Monster Hunt 613

Post by Shrimp »

Note: If you frequently play Monster Hunt online, or produce maps for Monster Hunt servers, please realise that this version may create incompatibilities with existing servers. Additionally, maps making use of objectives or other new features will not be compatible with older MH versions.

If you do rely on online Monster Hunt play, consider using a separate UT installation for playing MH600+ in single player, or on servers and maps which specifically use it.


Release downloads:

https://github.com/shrimpza/monsterhunt ... ses%2Fv613

Change log:

## 612 to 613
- Spanish localisation updates (thanks Neon_Knight)
- German localisation (thanks eGo)
- Improve monster's ability to find the objective in Monster Defence on smaller maps, maps with movers

## 611 to 612:
- Deaths via traps reduce the life count, rather than increasing it
- Performance optimisations for monster shadows

## 610 to 611:
- Moved logic for several actions into separate "extension" classes:
- `MonsterHuntScoreExtension`: Allows implementation of custom scoring for monster kills and player deaths
- `MonsterHuntBotExtension`: Moves all the bot orders and other checks out of game code, and allows custom behaviour
- `MonsterHuntMonsterExtension`: Allows implementation of custom monster skill settings and behaviours
- These are all configurable on the MonsterHunt gametypes
- Support for green blood splats in the Monster Mess mutator
- Fix missing Monster Mess splats in multiplayer clients
- Improve visual effects of Defence escape portal
- Reduce occurrences of Enemy AccessNone logs in Defence
- Fix overlapping lives/ping stats on multiplayer scoreboard
- Show monster difficulty on multiplayer scoreboard

## 609 to 610:
- Updated spanish definitions (thanks Neon_Knight)
- New Mutator - Monster Mess; monster corpses and giblets leave blood splats
- Unreal ammo and pickup messages appear as UT HUD messages rather than in the chat log
- Fix positioning of MH HUD icon when growing or shrinking HUD

## 608 to 609:
- Properly support `bEnabled` on `MonsterWaypoint`, to allow for more complex AI navigation orchestration
- - waypoint can now be disabled at start, and then triggered to enable (default is enabled)
- Adjust bot behaviour to try to clear monsters in an area before proceeding to next waypoint
- Localisation templates and Spanish Localisation (thanks Neon_Knight)
- - update build scripts/templates to support localised template variables
- Optimise `MonsterWaypoint` startup, only do `AllActors` traversal if/when touched and only if events configured
- Add icons on the scoreboard:
- - a skull for players with no remaining lives
- - a star "award" at the end for players with no deaths for the whole round
- Re-worked and improved MH-Revenge][ map, included as MH-Revenge][-SE
- Add option to hide objectives on HUD. Can be Set in `User.ini`:
- - under `[MonsterHunt.MonsterHUD]` section, set `bHideObjectives=true` (default is false)

## 607 to 608:
- Re-worked and improved MH-NaliVillage]\[ map, included as MH-NaliVillage][-SE
- Include monster difficulty in scoreboard footer message
- Show objectives on scoreboard
- Reduce volume of objective activated/completed sounds
- Only include unfriendly creatures in monsters remaining count
- Tweak levers/waypoints in MH-NaliVillage]\[ map to prevent double-triggering by AI

## 606 to 607:
- Introduction of support for optional objectives in maps, which can show up on the HUD, and tell players what they need to be doing
- Cleaned up some chat log kill messaging, and do not show suicide messages as "Player1 killed Player1"
- Polish pass for MH-Lonely][, fixing bad geometry, general cleanup and visual improvements
- Added objectives to all standard MH maps

## 605 to 606:
- Fix incorrect view offsets for U1 weapons making them seem invisible

## 604 to 605:
- Remove automatically assigning monsters to team
- Show monster names better, "KrallElite" becomes "Krall Elite"
- Grammatically correct escape message

## 603 to 604:
- Fix saving of game rule settings
- Refactor scoring implementation, including default scores for more monster types
- Fix upgrade dispersion pistol (thanks SeriousBuggie)
- Fix zoom for old rifle (thanks SeriousBuggie)
- Prevent call endgame if game already ended (thanks SeriousBuggie)
- Fix destroy shadow for bugged monsters (thanks SeriousBuggie)
- Fix break broken team skins like Cow and Nali (thanks SeriousBuggie)
- Refactor Login function to work around bug with triggers in start areas (thanks SeriousBuggie)
- Fix killing friendly Nalis and Cows, and bots waking up Titans (thanks SeriousBuggie)

## 602 to 603:
- Decoupled monster difficulty from bot skill - difficulty is its own option on the Rules tab
- Add configurable Warmup time to Defence, before monsters start spawning
- Make Defence max escapees configurable in Rules tab
- Monster attitude to player set in difficulty, rather than when the match starts
- Better re-trigger prevention for MonsterEnd (thanks sector2111)
- Removed `MonsterHunt` type-check on `MonsterEnd` triggers, so other gametypes can use them (thanks sector2111)
- Improved and optimised bot waypoint finding to better support missed waypoints and no waypoints (thanks sector2111)
- Moved `MonsterReplicationInfo` setup into `InitGameReplicationInfo()` where it should be
- New higher resolution graphics for settings tabs
- Fix missing localisation for player lives ran out message


## 601 to 602:
- Fix incorrect `UIWeapon` reference in MonsterBase.CheckReplacement
- Remove NaliRabit from ScriptedPawn checks
- Do not spawn monster shadows on dedicated servers
- Implement better difficulty call using GameInfo.IsRelevant, rather than being called from various other places
- MonsterEnd should only ever trigger once
- Defence: Better application of orders on monsters, yielding better attack behaviour
- Defence: Disable Mercenary invulnerability shield
- Defence: Monsters do not block eachother, so they can navigate across the map better
- Defence: Monsters which don't move from their starting positions can be killed and recycled
- Defence: Optimisations to mid-game monster order coercion
- Defence: Tweaks to several monster spawn probabilities
- Defence: Localise "... escaped!" message

## 503 to 601:
- Implement new game type: Monster Defence
- Played on CTF maps, players must prevent attacking monsters from escaping via the portal that has opened in their base
- Will only work on CTF maps with reasonable pathing
- Players lose when the maximum number of allowed monsters has escaped, or all lives have been lost
- Players win by successfully holding off the monster advance until the time limit
- Fix numerous "Accessed None" errors in logs related to various assumptions about `bIsPlayer` and `PlayerReplicationInfo` in UT classes
- Fix bug with RazorJack not being replaced by `OLRazorjack`
- Fix Monster Arena using the wrong GameReplicationInfo class
- Improve updates of remaining monsters counter
- Update HUD info with remaining time, add defence escapees, critical things go red when needed
- Made many strings localised
- Various improvements and optimisations where possible
- Clean up all compiler warnings, remove unused classes
- Reformat code to conform to cleaner style


The license has been changed to CC BY-NC-SA, see the ReadMe.html and LICENSE files for details. The whole project source and maps and everything is on GitHub now.

Thanks to Gustavo6046 for ModBuild, which I have used and badly abused to build the project on Linux and do CI via GitHub Actions.

I honestly have no idea how many mods and mutators are out there which tweak with MH parameters, so I have no idea what this will do for compatibility with those mods. YMMV.

Monster Defence has not been tested in multiplayer, so I'm not sure if anything will break or not, though I expect it should be fine.

Have fun.
Last edited by Shrimp on Wed Jul 13, 2022 1:09 pm, edited 16 times in total.
ShrimpWorks
Unreal Archive - preserving over 25 years of user-created content for the Unreal series!
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Monster Hunt 601

Post by OjitroC »

Great to see this :gj: Nice to get rid of all those 'warnings' in the log!

I played a bit of Monster Defence in two CTF maps - it worked a lot better in CTF-NRMC-Hightown than in the other I tried (CTF-'uK-HillForts2012 - a large map with bases far apart and possibly not well pathed - I didn't check that). Certainly looks like it can be a lot of fun and so nice to see a new gametype - I play a lot of MonsterSpawn and Monster Defence is an interesting contrast to that (focus on a single point to guard as opposed to wide ranging stealthy stalking).

I see the number of escapees can be set in the MonsterHunt.ini - at the moment it's set at 20 - this seems to be a reasonable amount but do you have any recommendations on the number people should use based on the number of players or size/type of map?

What governs the frequency with which monsters are spawned (far more seemed to spawn in HillForts even though they weren't being killed off to any great extent)?

Presumably the monster types that spawn are random or is there some other underlying 'logic' behind that? It's obviously not possible to spawn monsters other than those in MonsterHunt.u - would it be possible to add the capability to do that in future?

Apart from the necessity for good pathing, do you have any tips on the best kind of CTF one should use (size, layout, etc)?

Do you have any tips on the strategy players should adopt - closely guard the portal, for example, or hunt down monsters over a wider radius?

In passing I got a lot of

Code: Select all

ScriptLog: no path to alarm
when playing both maps (not that I played them for all that long - just wanted to try it out).
Last edited by OjitroC on Fri Dec 31, 2021 8:44 pm, edited 1 time in total.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Monster Hunt 601

Post by sektor2111 »

OjitroC wrote: Fri Dec 31, 2021 3:35 pm In passing I got a lot of

Code: Select all

ScriptLog: no path to alarm
I think there is no AlarmPoint and logically probably no path to such thing... just saying... or an attached AlarmPoint is not part of Paths-Net and not having any upStreamPaths...

In stage:
After I quick check into this MonsterHunt I think I'll keep XC_MonsterHunt which I'm using...
- When Path is missing to target goals Bot doesn't do too much than running in place ?

Code: Select all

... aBot.MoveTarget = aBot.FindPathToward(NextPoint);
				NumPoints --;
				SetAttractionStateFor(aBot);
				return true;
if "FindPathToward" returns NONE it will get called attraction state for "MoveTarget = None" with "TweentoRunning" for no purpose from TeamGamePlus itself...

Code: Select all

function SetAttractionStateFor(Bot aBot)
{
	if ( aBot.Enemy != None )
	{
		if ( !aBot.IsInState('FallBack') )
		{
			aBot.bNoClearSpecial = true;
			aBot.TweenToRunning(0.1);
			aBot.GotoState('FallBack','SpecialNavig');
		}
	}
	else if ( !aBot.IsInState('Roaming') )
	{
		aBot.bNoClearSpecial = true;
		aBot.TweenToRunning(0.1);
		aBot.GotoState('Roaming', 'SpecialNavig');
	}
}
Keep running to nowhere in direct translation.
- Waypoint doesn't prevent any Touch in advance toward "LastPoint", just controller sends Bot where is needed - if a "future" point is "bVisited" it won't be a goal any longer breaking the count to next waypoints. Order should be respected and preventing the touch to mess the count right from Waypoint itself.
- NaliRabbit has nothing to do with ScriptedPawn;
- MonsterEnd in "big settings" ends game multiple times (4 times more exactly - max Touchers for Actor);
- MonsterShadow in a Dedicated Server doesn't help with anything, it's just ticking resources for a "skill" test which is doable VIA "IsRelevant" - "CheckReplacement" a SINGLE TIME per pawn;
- class checked is "UIWeapon" but the true class is "UIWeapons" - engine doesn't know grammar... (like me...);
- QuadShot is not replaced with anything exactly like WeaponPowerUp;
- Support for those 40+ PlayerStarts which mappers are thinking that they help at something but nobody has ever spawned there ?
- etc ?
Last edited by sektor2111 on Sat Jan 01, 2022 10:00 am, edited 4 times in total.
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Monster Hunt 601

Post by OjitroC »

Monster Defence
Just a quick follow-up - I played a longer game (20 minutes or so) in CTF-NRMC-Hightown and my initial observation is that monsters don't seem to 'try to escape' very often - maybe 6 or 8 in that time - I killed more by wandering around a bit but mainly stayed close to the portal. According to the HUD, there were around 100 monsters in the map. So another question would be - what criteria govern the number of monsters that are spawned in a map and the likelihood that they will approach the portal (which seems to be the red flag base)?
User avatar
NemesisNeS
Experienced
Posts: 134
Joined: Tue Nov 23, 2021 7:24 pm
Personal rank: GOD, not Godlike
Location: Under someones bed

Re: Monster Hunt 601

Post by NemesisNeS »

Thanks Shrimp! Will thoroughly test on a dedicated MH UT folder.
Feeling the urge to kill people who put up links with advertisements....
:instagib2:
User avatar
Shrimp
Adept
Posts: 273
Joined: Wed Oct 10, 2018 11:15 am
Location: Australia
Contact:

Re: Monster Hunt 601

Post by Shrimp »

OjitroC wrote: Fri Dec 31, 2021 3:35 pm I see the number of escapees can be set in the MonsterHunt.ini - at the moment it's set at 20 - this seems to be a reasonable amount but do you have any recommendations on the number people should use based on the number of players or size/type of map?
This should be a GUI option, oops. I used 20 as a default since it seemed a reasonable middle ground over the maps and difficulties I tested with.
OjitroC wrote: Fri Dec 31, 2021 3:35 pm What governs the frequency with which monsters are spawned (far more seemed to spawn in HillForts even though they weren't being killed off to any great extent)?
Difficulty level and map size. A larger map will spawn monsters more frequently.
OjitroC wrote: Fri Dec 31, 2021 3:35 pm Presumably the monster types that spawn are random or is there some other underlying 'logic' behind that? It's obviously not possible to spawn monsters other than those in MonsterHunt.u - would it be possible to add the capability to do that in future?
Yes, frequency and location are random, governed by some simple randomness probabilities per monster type. I was thinking about making a customisable monster replacement config for this, might add it later.
OjitroC wrote: Fri Dec 31, 2021 3:35 pm Apart from the necessity for good pathing, do you have any tips on the best kind of CTF one should use (size, layout, etc)?
I find it works best on fairly open maps without too much in the way of narrow doorways and things. Monsters will bunch up and then idle at choke points if they get blocked by something like a Brute, or in some really small/tight maps, there isn't even space to spawn things like Skaarj which are the primary "runners" who are intended to make a mad dash for the portal. A map like LavaGiant works well as long as Brutes don't block the tunnels between bases. I had a lot of success on things like Face][, Burger Wars, and even 1on1-Joust99 was a lot of crazy fun. I also did a fair amount of testing on NRMC-Hightown, which gets a good game in about 50% of the time.
OjitroC wrote: Fri Dec 31, 2021 3:35 pm Do you have any tips on the strategy players should adopt - closely guard the portal, for example, or hunt down monsters over a wider radius?
I generally hang out near the portal to protect it directly, but if attacks start slowing, I'll go out and find something to kill. That usually also has the effect of encouraging more portal attacks since it also unsticks monsters so then I fall back again.
OjitroC wrote: Fri Dec 31, 2021 3:35 pm In passing I got a lot of

Code: Select all

ScriptLog: no path to alarm
when playing both maps (not that I played them for all that long - just wanted to try it out).
This is related to monsters not being able to reach the portal, usually because of either pathing issues, or there's a blockage on the path to the portal. At this point the monster will return to idle state and no longer attack. Nothing to do with bots or their orders.
sektor2111 wrote: Fri Dec 31, 2021 4:10 pm - Waypoint doesn't prevent any Touch in advance toward "LastPoint", just controller sends Bot where is needed - if a "future" point is "bVisited" it won't be a goal any longer breaking the count to next waypoints. Order should be respected and preventing the touch to mess the count right from Waypoint itself.
- NaliRabbit has nothing to do with ScriptedPawn;
- MonsterEnd in "big settings" ends game multiple times (4 times more exactly - max Touchers for Actor);
- MonsterShadow in a Dedicated Server doesn't help with anything, it's just ticking resources for a "skill" test which is doable VIA "IsRelevant" - "CheckReplacement" a SINGLE TIME per pawn;
- class checked is "UIWeapon" but the true class is "UIWeapons" - engine doesn't know grammar... (like me...);
- QuadShot is not replaced with anything exactly like WeaponPowerUp;
- Support for those 40+ PlayerStarts which mappers are thinking that they help at something but nobody has ever spawned there ?
- etc ?
Thanks, I'll try to take a look at some of these issues. After 20 years it'll take me a while still to get a better handle on what can be improved and fixed still.
OjitroC wrote: Fri Dec 31, 2021 4:45 pm According to the HUD, there were around 100 monsters in the map. So another question would be - what criteria govern the number of monsters that are spawned in a map and the likelihood that they will approach the portal (which seems to be the red flag base)?
The monster count is effectively uncapped, though limited to (80 * map size scaling factor) non-Skaarj Warrior types. Skaarj Warrier types will keep spawning and should keep trying to reach the portal. Unfortunately they tend to get blocked by the other monsters (as above - particularly Brutes), so need to find a solution to that.
ShrimpWorks
Unreal Archive - preserving over 25 years of user-created content for the Unreal series!
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Monster Hunt 601

Post by sektor2111 »

Now it's time for a couple of notes concerning MonsterHunt works since 2002+.
For solving problems (and they weren't solved...) it was developed a strategy in using attached MH versions known as MH2 MH3. Problem NUMBER 1 was ending game. MonsterEnd will deal only with "MonsterHunt(Level.Game)" which was nowhere since game-type used was different. Solution was attaching a different MonsterEnd making some maps to not work such as "MH-Miam" where MonsterEnd was attached to a Mover and new MonsterEnd attached nowhere remaining buried in floor, ignoring mover. Secondary stuff "MonsterWaypoint" was causing new AccessedNone errors due to the same call to "MonsterHunt(Level.Game)" and variable LastPosition never updated causing a total break at Bot Support.
I realized that attached MH versions will always fail somewhere based on creativity. And then... my decision was different: Expanding MonsterHunt in purpose to have super-class behind and using all original assets as they are - things were stabilized better than I expected. The big plus was that XC_Engine capable to replace functions and making things more than better.
And now the "thing". I'll capture some ScreenShot and logs...
Executed...
By The way, Image has 256 colors and it's not converted with any WOTGrealImageConverter...
By The way, Image has 256 colors and it's not converted with any WOTGrealImageConverter...
If I'm using This FILE called 601, XC_MonsterHunt won't work any more causing empty positions in game-types. Several variables used from prior versions now are no longer used, they have been removed and... it's all broken. Why XC_MonsterHunt ? Because there X things were solved and not solved in 601. But right now if I keep 601 file, XC will fail to find old variables which are part of operation mode. And then... conforming an Object with a NONE object might do some ugly effects On-Line - removing classes/variables in a software update it's NOT the How To solve problems, all things aiming those vars will cease to work.

Miscellaneous:
Big Monsters and Monsters generally will fail to find paths through narrow ReachSpecs and those R_Special with "SpecialCost" - JumpSpot is exclusively Bot stuff discarding anything else - including human formula...

Code: Select all

class JumpSpot extends LiftCenter;

var() bool bImpactJump, bAlwaysAccel;
var Bot PendingBot;

event int SpecialCost(Pawn Seeker)
{
	local Bot B;

	B = Bot(Seeker);
	if ( B == None ) //Here...
		return 100000000; //it's lock-down - the rest of code forward it's not even executed
// Thanks to Higor, this misery can be replaced/changed.
/*
// Main changes for logically discard incompatible seekers or unlock compatible seekers
if ( Seeker.bCanFly ) //Flying creature doesn't need any damn thing, ReachSpec definition it's my problem
	return 0;
if ( !Seeker.bCanJump ) //these will NEVER jump...
	return 100000000;
if ( PlayerPawn(Seeker) != None ) //Presuming that the guy has brain...
	return 0;
etc - health stuff, Physics compatibility and so on.
*/
Even if plain Editor shows a Blue Line between two nodes, they might fail (Berserker, and similar types) because said path claims a THIN creature (user of path). Maps having One-Way paths due to PathNodes placement and routing the way through combos will never help monsters. These CTF maps were tested with Bots capable to Translocate and jump with ImpactHammer which a monster doesn't do.

R_Special stock flags will need creatures with feature bCanDoSpecial or else they are discarded. R_Fly is never mapped by Stock Editor and here discussions might have X pages...
Last edited by sektor2111 on Sat Jan 01, 2022 10:06 am, edited 1 time in total.
User avatar
EvilGrins
Godlike
Posts: 9668
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: Monster Hunt 601

Post by EvilGrins »

Sounds interesting, this Monster Defense. Kinda like "Us Against Them" which was a gametype that came with Monster Madness... though obviously different with the portal escape option.

Give it a try soon as I can.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Monster Hunt 601

Post by sektor2111 »

Probably some of "blah blah" type hints concerning Monster Defence and pathing. I'll point you some relations between finding/not-finding paths according to Pawn's variables (not only intelligence) and those poorly ReachFlags which stock Editor does. Let's see some flags... APawn.h says:

Code: Select all

enum EReachSpecFlags
{
	R_WALK = 1,	//walking required
	R_FLY = 2,   //flying required 
	R_SWIM = 4,  //swimming required
	R_JUMP = 8,   // jumping required
	R_DOOR = 16,
	R_SPECIAL = 32,
	R_PLAYERONLY = 64
}; 
Where Engine calculates movement capabilities...

Code: Select all

	inline int calcMoveFlags()
	{
		guard(APawn::calcMoveFlags);
		return ( bCanWalk * R_WALK + bCanFly * R_FLY + bCanSwim * R_SWIM + bCanJump * R_JUMP 
				+ bCanOpenDoors * R_DOOR + bCanDoSpecial * R_SPECIAL + bIsPlayer * R_PLAYERONLY); 
		unguard;
	}
And then, allow me to complete ReachFlags and vars required for Pawn accordingly:

Code: Select all

enum EReachSpecFlags
{
	R_WALK = 1,	//walking required -> P.bCanWalk - majority of them
	R_FLY = 2,   //flying required -> P.bCanFly - Flight Only and requires Physics flying in Path Seeking moment - never used by Editor (perhaps because Warlord walking might go randomly in a stupid loop - even if it has BRAIN_Human, dual physics capability won't help 100%, doing lousy things
	R_SWIM = 4,  //swimming required -> P.bCanSwim - Aiming swimming - check creatures
	R_JUMP = 8,   // jumping required -> P.bCanJump - Lazy monsters are never jumping - check well Brutes
	R_DOOR = 16, // P.bCanOpenDoors -> - never used by Editor
	R_SPECIAL = 32, //P.bCanDoSpecial -> common used in all sort of combos
	R_PLAYERONLY = 64 //P.bIsPlayer -> never used by Editor but this one definitely can discard creatures (except bugged Skaarj without Weapon) - if I want to block Monsters this Flag definitely will cause a complete lock-down for a monster
}; 
When Mappers are using only Editor with common flags aiming Bots when map is being build, you cannot have too much compatibility with any creature if these are not "boosted" a bit - and IF THEY are supporting to get screwed, after a few milliseconds from spawning letting them to adjust themselves first because they are doing this.

And here Oijtroc has already confirmed what I'm trying to explain. Editing ReachSpecs in run-time will completely change the game in some maps.
For Monster Defence game-type, perhaps you need maps with simple geometry ( type CTF-Militia - perhaps loved a bit and similar ones without too many Yellow paths).
CTF-Militia_Simple_OnlyWalkFlags.PNG
Brute class it's initialized for bCanWalk but it doesn't use bCanJump because JumpZ is "-1"... all comes from Pawn class because Brute itself has nothing to initialize later.
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Monster Hunt 601

Post by OjitroC »

Shrimp wrote: Sat Jan 01, 2022 3:37 am The monster count is effectively uncapped, though limited to (80 * map size scaling factor) non-Skaarj Warrior types. Skaarj Warrier types will keep spawning and should keep trying to reach the portal. Unfortunately they tend to get blocked by the other monsters (as above - particularly Brutes), so need to find a solution to that.
Many thanks for your detailed response.

I've played Monster Defence in a few more maps (just me of course, no bots) and SkaarjWarrior types have been the least likely monsters to try to reach the portal so that reinforces the point you make. My observations suggest that flies are the most likely, followed by Mercs and pupae plus Mantas. Krall and Brute types seldom try either.

The best games are on the least 'complicated' maps (like large maps, those with intricate layouts or with mulitple routes to the flag/portal) - best being in the sense of the most attempts to get to the portal.

I would recommend CrystalRocks as a fun map on which to play Monster Defence (two islands floating in space with jump pads to get from one to the other - the islands are close enough for projecticles to follow their course and not 'die out' {brute rockets for example have a limited range before they explods as do gasbag belches} so both attackers and defenders can fire at the other island and cause damage; attacking monsters will use the jump pads to try to get to the portal and flying monsters can reach the other island with ease).

Personally I would limit the number of Skaarj Berserkers that spawn as they are a pain in that they attack anything and so cause mayhem when the monsters are unable, for whatever reason, to find a way towars the portal.
User avatar
Shrimp
Adept
Posts: 273
Joined: Wed Oct 10, 2018 11:15 am
Location: Australia
Contact:

Re: Monster Hunt 602

Post by Shrimp »

Updated release in the first post - version 602. See changelog. Improves a lot of the AI behaviours in Defence in most maps, and sees them completing the escape with much more vigour.
ShrimpWorks
Unreal Archive - preserving over 25 years of user-created content for the Unreal series!
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Monster Hunt 602

Post by OjitroC »

Shrimp wrote: Sat Jan 01, 2022 12:32 pm Updated release in the first post - version 602. See changelog. Improves a lot of the AI behaviours in Defence in most maps, and sees them completing the escape with much more vigour.
Yes, they certainly do complete an escape with much more vigour - perhaps with a little too much vigour? I've played one game with the new version so far - in CTF-NRMC-Hightown - and the game is dramatically different - so much so that I lost the game in about three minutes (perhaps in part due to me going to look for weapons/armour). Much more activity from Skaarj Warrior types in this version.

I wonder now if things are balanced a little too much in the favour of those attempting to escape? Maybe it's a gametype that's not really intended to be played by just one player?

A couple of questions
1 Is there any relationship between the number of players in a map and the number of monsters and the frequency with which they are spawned?
2 In the .ini, MonsterSkill=5 - sorry if this is dumb but can you explain this skill setting - what's the range, for example? Is it possible/worthwhile to have this as a GUI option?

Got quite a few of this type of warning in the log

Code: Select all

ScriptWarning: SkaarjBerserker CTF-NRMC-Hightown.SkaarjBerserker0 (Function UnrealShare.ScriptedPawn.TriggerAlarm.TakeDamage:001A) Accessed None 'Enemy'
Nice to see that bUseTeamSkins=False now works as it didn't with the old version of MH I was using - also that disabling local logging of MH games now works as well.

___________________________________________
UPDATE

After playing a few more games in Hightown and EpicBoy, it looks like there is an initial rush of monsters (which may be difficult to hold back) and then a more steady flow (which one can hold back) - observation suggests that, on EpicBoy anyway, it was entirely Skaarj Warrior types that continued to try to escape - I hardly saw any other types in a 15 minute game (which was intensive fun).

Another question
- Is there a lag between the start of the game and the start of the spawning of monsters? On maps one hasn't play for some time (and I hadn't played Epic Boy for a long time) it may take a while to find the portal to guard - in addition, on both the maps I played, it was more or less impossible to go to find other weapons or armour. In the time one is trying to find stuff several monsters may escape.
Old UT Veteran
Skilled
Posts: 163
Joined: Sat Mar 24, 2012 1:37 am

Re: Monster Hunt 602

Post by Old UT Veteran »

OjitroC wrote: Sat Jan 01, 2022 6:57 pm
2 In the .ini, MonsterSkill=5 - sorry if this is dumb but can you explain this skill setting - what's the range, for example? Is it possible/worthwhile to have this as a GUI option?
Little offtopic...
Sektor had worked on various other iterations of monsterhunt and has tweaked some of the code to work independently of what is set in the bot tab from what i remember - I believe in standard 503v this worked with whatever the bot ai level was = calculated higher/lower "monsterskill".
In either xc or 504, Sektor had separated those two in code but never seemed to fully implement it into a GUI even when some sections were started - i dont question him because he has his reasons. I looked into some of older stuff and had a conversation with him months ago, put this together just for my own enjoyment. Difficulty scaling was based on what Unreal used to have Novice-Unreal.
Attachments
picture.PNG
User avatar
Shrimp
Adept
Posts: 273
Joined: Wed Oct 10, 2018 11:15 am
Location: Australia
Contact:

Re: Monster Hunt 602

Post by Shrimp »

OjitroC wrote: Sat Jan 01, 2022 6:57 pm I wonder now if things are balanced a little too much in the favour of those attempting to escape? Maybe it's a gametype that's not really intended to be played by just one player?

A couple of questions
1 Is there any relationship between the number of players in a map and the number of monsters and the frequency with which they are spawned?
Perhaps it's a little imbalanced in solo play - I haven't tried or tuned for that - I've mostly been testing with 3-4 bot companions. There's no scaling based on number of players, monsters spawn at a fixed (with randomisation) rate based on map size only currently. It seems reasonable to maybe scale it by team size, with perhaps 4 being the "baseline" based on current testing and rate, and then scale it up and down from there.
OjitroC wrote: Sat Jan 01, 2022 6:57 pm 2 In the .ini, MonsterSkill=5 - sorry if this is dumb but can you explain this skill setting - what's the range, for example? Is it possible/worthwhile to have this as a GUI option?
Per Old UT Veteran's followup, this is tied to bot skill. When you change the bot skill, monster "skill"/difficulty scales up as well. I think I did that originally to avoid implementing new GUI options, though I was thinking of adding it separately on the Rules tab as per the screenshot posted above. I wasn't aware other variations/mods had added this already though. I'd like to add it to the base mod.

I have to do some GUI stuff to add adjustments for the 20 escape limit too.
OjitroC wrote: Sat Jan 01, 2022 6:57 pm Got quite a few of this type of warning in the log

Code: Select all

ScriptWarning: SkaarjBerserker CTF-NRMC-Hightown.SkaarjBerserker0 (Function UnrealShare.ScriptedPawn.TriggerAlarm.TakeDamage:001A) Accessed None 'Enemy'
I'm not 100% sure how to solve this yet - getting the pawns to run towards the portal involves forcing them into odd states. I'll see how bad it turns out if I assign these guys a random enemy, just so they have something to focus on should their code need it.
OjitroC wrote: Sat Jan 01, 2022 6:57 pm After playing a few more games in Hightown and EpicBoy, it looks like there is an initial rush of monsters (which may be difficult to hold back) and then a more steady flow (which one can hold back) - observation suggests that, on EpicBoy anyway, it was entirely Skaarj Warrior types that continued to try to escape - I hardly saw any other types in a 15 minute game (which was intensive fun).

Another question
- Is there a lag between the start of the game and the start of the spawning of monsters? On maps one hasn't play for some time (and I hadn't played Epic Boy for a long time) it may take a while to find the portal to guard - in addition, on both the maps I played, it was more or less impossible to go to find other weapons or armour. In the time one is trying to find stuff several monsters may escape.
There's no delay between the start of the match and monsters starting to spawn. I was reluctant to add "waves", preferring to just spawn monsters at a steady rate which eventually compounds into an overwhelming force if you can't keep on top of it. That's the intent anyway.

Perhaps there could be a 30 second "warm up" period at the start though, to allow you to run around and grab things and position yourself, which seems fair.

Basically, the intended way of playing is that you are supposed to lose more frequently than you expect :satan:. I like to play with the life limit of 6, and a time limit of 5 minutes, with bot skill (monster skill) set to Masterful or above, and try to survive with the 20 escapes limit not being reached. That keeps the rounds short and intense.
sektor2111 wrote: Sat Jan 01, 2022 8:57 am Problem NUMBER 1 was ending game. MonsterEnd will deal only with "MonsterHunt(Level.Game)" which was nowhere since game-type used was different. Solution was attaching a different MonsterEnd making some maps to not work such as "MH-Miam" where MonsterEnd was attached to a Mover and new MonsterEnd attached nowhere remaining buried in floor, ignoring mover. Secondary stuff "MonsterWaypoint" was causing new AccessedNone errors due to the same call to "MonsterHunt(Level.Game)" and variable LastPosition never updated causing a total break at Bot Support.
Unfortunately, I'm not sure I can do anything about that. Obviously all the code within Monster Hunt targets Monster Hunt, it was never designed or intended to have you drop in other non-Monster Hunt gametypes and have them work with existing Monster Hunt maps, the same way Monster Hunt maps assume they're going to be used with Monster Hunt.
sektor2111 wrote: Sat Jan 01, 2022 8:57 amSeveral variables used from prior versions now are no longer used, they have been removed and... it's all broken. Why XC_MonsterHunt ? Because there X things were solved and not solved in 601. But right now if I keep 601 file, XC will fail to find old variables which are part of operation mode. And then... conforming an Object with a NONE object might do some ugly effects On-Line - removing classes/variables in a software update it's NOT the How To solve problems, all things aiming those vars will cease to work.
The variable(s) removed were useless and should have been local, which they are now. A software project is free to modify it's internal API, which is what I feel like I've done here. Hopefully you can just re-compile your existing binaries with no other changes, so they pick up that those vars no longer exist and it works at runtime again. Hopefully those numbers weren't being used, since they were only used as "local" values before putting the value into the GameReplicationInfo.
sektor2111 wrote: Sat Jan 01, 2022 8:57 am Big Monsters and Monsters generally will fail to find paths through narrow ReachSpecs and those R_Special with "SpecialCost" - JumpSpot is exclusively Bot stuff discarding anything else - including human formula...
Unfortunately I'm going to have to leave this one with a large caveat: Monster Defence can and will not work on all CTF maps, and it'll be up to players to find which do or don't. For example CTF-Dreary is too small to even allow some monster types to spawn at all in most places.

I'll try to address or mitigate some of the issues pointed out, but I'm can't promise that I won't tread on the toes of however many other "extended" versions of MH there are out there already. I can only suggest if anyone wants to try my version, they back up/save their current versions if they have custom modifications in use.
ShrimpWorks
Unreal Archive - preserving over 25 years of user-created content for the Unreal series!
Post Reply