Need More Fixes ?

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:

Need More Fixes ?

Post by Nelsona » Mon Apr 02, 2012 2:58 pm

After some researches done these days related to MonsterHunt game-type (I'm still testing a few things), I just brought that so called Monster Skill to be more close to that value from INI configuration file, in fact this is original Skill and combat style of a cool dude, assumed skilled in our fake games until this moment. Starting from now on I won't play any more with low level puppies, :D.
ScrCoolDudes.JPG
To be continued...
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: Need More Fixes ?

Post by Nelsona » Thu Apr 05, 2012 12:26 pm

And back after some tests. Usually pawns parameters seems to be developed by Difficulty byte. These values are from and including 0 to 3, meaning 4 levels with 0 as well. Any other value out of this range is creating problems, due to aiming code returning big errors. They fired at my left constantly without to touch me. My first tests were done moving constantly but later I decided to camp watching at my death. Heh, I started laughing being more than alive and untoucheable.

I conclusion I solved difficulty byte and related to this value I made changes for our so called MonsterSkill from INI which is completelly without any logic and nothing true. The perfect aiming is at skill 3 and never bigger, or will alter aiming. That max. 7 assumed value is just increasing a few pawn properties and nothing else with so much big deal.

Other tests were started...

User avatar
Hermskii
Site Admin
Posts: 8500
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: Need More Fixes ?

Post by Hermskii » Thu Apr 05, 2012 1:33 pm

Cool deal. So you just stood still and they missed you completely right? But then you set it to three and they never missed and you died?
~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: Need More Fixes ?

Post by Nelsona » Thu Apr 05, 2012 11:42 pm

Of course, at maximum of level 3, a RockTentacle fired exactly in my face and other one just blasted my carcass on walls, this is the real fight. The ini setting (for bots) assumed to increase a monster power as well, is now dealing with unexistent skill, even dealing with a wrong value:

Code: Select all

event InitGame(.......
....
	if (MonsterSkill > 7) MonsterSkill = 7; //Forced fix of possible wrong settings.
	if (MonsterSkill < 1) MonsterSkill = 1; //I hate 0.

	if (MonsterSkill == 0 || MonsterSkill == 1) //No need 0 check but nwm anyway
		Difficulty = 0;
	if (MonsterSkill == 2 || MonsterSkill == 3)
		Difficulty = 1;
	if (MonsterSkill == 4 || MonsterSkill == 5)
		Difficulty = 2;
	if (MonsterSkill == 6 || MonsterSkill == 7)
		Difficulty = 3;
.....
and next section

Code: Select all

function SetPawnDifficulty(....
....
S.Skill = Difficulty; //Lines added. Have fun, ladies !
S.bMoraleBoosted = True;
S.bInitialFear = False; 
......

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: Need More Fixes ?

Post by Nelsona » Fri Apr 06, 2012 12:02 am

___ Split here
and these were done because I found GameInfo root:

Code: Select all

class GameInfo extends Info
	native;
......
var byte  Difficulty;									// 0=easy, 1=medium, 2=hard, 3=very hard.

.....
function bool IsRelevant( actor Other )
{
	local byte bSuperRelevant;

	// let the mutators mutate the actor or choose to remove it
	if ( BaseMutator.AlwaysKeep(Other) ) //Will be better to call your pawns in BaseMutator or else say Bye-Bye at some of them
		return true;
	if ( BaseMutator.IsRelevant(Other, bSuperRelevant) )
	{
		if ( bSuperRelevant == 1 ) // mutator wants to override any logic in here
			return true; //here even some pawns cannot be replaced
//put replacement before to call this byte if you want to see some brothers
	}
	else return false; //Yep, else they are history.
......

	if
	(	(Difficulty==0 && !Other.bDifficulty0 )
	||  (Difficulty==1 && !Other.bDifficulty1 )
	||  (Difficulty==2 && !Other.bDifficulty2 )
	||  (Difficulty==3 && !Other.bDifficulty3 )
	||  (!Other.bSinglePlayer && (Level.NetMode==NM_Standalone) ) 
	||  (!Other.bNet && ((Level.NetMode == NM_DedicatedServer) || (Level.NetMode == NM_ListenServer)) )
	||  (!Other.bNetSpecial  && (Level.NetMode==NM_Client)) )
		return False; //Wicks are removed as well ? Better call some difficulty ?

	if( bNoMonsters && (Pawn(Other) != None) && !Pawn(Other).bIsPlayer )
		return False;

	if( FRand() > Other.OddsOfAppearing ) //Awsome, they can miss from games ? Great.
		return False; //Stupid ideea ? Maybe not or maybe yes. Ask others...
Great lines belongs to Lord Engine in GameInfo - root for everything. So, if we don't know what we doing in maps, then don't ask for troubles where are coming from.
Embbeding some mutators in maps without too much experience is also harmfull. But I saw "experts" doing "awsomities". Even crappy mutators fighting with themselves are placed in maps for some "development", yea you read well, I saw mutators with functions acting against other functions from the same mutator.

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: Need More Fixes ?

Post by Nelsona » Tue Apr 10, 2012 5:25 pm

Yep back on coding section from topic

viewtopic.php?f=4&t=3192

What is about ?
Well I studied last time small enhancements especially for some forum posters in the past about bot stupidity to hunt Nalis and Cows. Well the stupid one is game coder and idiots who believe that a bot is stupid. In fact a bot is very basic and even ready for fine tuning. Dealing with attitude against some classes we may have different styles, even we can watch a bot hunting a Brute who try to kill a Nali (cough), other monsters are interested about players and bots not about themselves. Indeed we can see troubles especially at monsters which aren't coded very well, but knowing a bit their style, with a good mapping we can skip their flaws.

By example I had a Skaarj with friendly attitude, others attacked base, when our friend encroached others wild skaarjs he suddenly become enemy receiving hate for player, LOL. I don't think was controller guilty because he was nice before starting game and after starting game as well. In the function to stop any Monster Vs Monster fight I made more changes, without to call any more attitude but he seemes to be attracted by the same class to hate player even with friendly attitude by default at start. I think is necessary to have other default classes set as friendly monsters for making a game with followers.

Good ! About NaliRabbit ? Well this creature (I found this good for toilette - this is an offence against coding in U script - having hate for humans but no combat codes and protected by Shrimp as being friend ? c'mon this is A.I. soup and a cake with onion and tomatoes) is another thing confused by Shrimp with a monster even setting an unexistent negative score when a player is killing him. NaliRabbit is not ScriptedPawn and score is returned in default MonsterHunt, bla bla craps. Later, after returning score is attacked again a negative value (works only if a monster is named NaliRabbit).

Default Monsters aren't interested in hunting NaliRabbits or other FlockPawns, but depends on fight environment maybe they can develop some attitude, I didn't tested these classes too much, I fooled once with assumed TeamScriptedPawns and game was halted (Thanks to reset buton I established order back). Scoring system need to be very well computed or else nobody will be glad. Loading some engine stacks with sprees or whatever trash killer values without to release them somewhere in garbage objects offsets will result in hang server and/or game without any response. Some things are logic others are not only my presumtions I found other presumptions as well in coding web pages. Things related to destroy function were assumed bad. Hm, really ? Then why Epic used them often and a DM server can run at least 200 days without troubles ? I have to look at hundreds and thousands of things, but I'm not in a big hurry.
___

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: Need More Fixes ?

Post by Nelsona » Tue Apr 10, 2012 5:44 pm

__ Continuing

In fact I looked at some codes (I even designed a Credits Window Menu in last version) where I need to put other updates. Of course, if Epic ruined monsters at A.I. chapter so bad, then I cannot promise too much. I really have to make bot subclasses wearing monster suit and able to be spawned by a mutate command. This is not my best option. A monster with an enemy declared and watched, will race at enemy if has paths without to call any attraction due to his native code with madness to kill enemies. A Bot need to be guided (in some games can be an advantage for making bot to dance as we want).

Another chapter is ignorance. A monster can ignore player (if is a special purpose for this ?), but if player is making a joke firing at such animal, will develop hate and will fight back at once with his friendly monsters arround. Heh, relax people, these tests won't work in default MH because the old controller is attacking attitude. But you can try your own MH (or any name) if you need (I already did this, and I work at improvements - I'm not sure if I can do these alone but I can try). Not my last problem is the call to This default name MonsterHunt which can result accesed nones and imposibility to deal with certain things. I think is time to put some pause here, we can talk more later (I need to test other things).

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: Need More Fixes ?

Post by Nelsona » Mon Apr 16, 2012 3:59 pm

Well, let's turn back to some old problems. In some maps "ported" to MH from any kind of Single Player mission we noticed some WeaponPowerUps which sadly, never worked in MonsterHunt. I think is time to end this subject and put up a fight with DispersionPistol alias MonsterHunt.OLDPistol which was done (a bit messed) for be powered, but I didn't noticed this power in any map. For some SP memories and for a normal MonsterHunt game played ON-LINE I took 2 pictures to see anybody what is about:
Dispersion00.JPG
and
Dispersion01.JPG
Since this moment I didn't noticed major errors, just some heads to be blowed up so bad.
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: Need More Fixes ?

Post by Nelsona » Tue Apr 17, 2012 2:36 pm

Hm, except small flaws returned by switching on pickup option I didn't noticed too much troubles. I'm thinking what else to put in update. I'm looking again to see if something is not correct, a few values modified seems to not cause troubles. Maybe I need to fix TranslatorEvent (I don't like that spam) or I'll put up a replacement to not mess up with all kind of useless actors. F2 in a Tournament server has other purpose than a story told to waste time. I really don't want to get older reading all kind of phrases. If I want to read I surf web for news or I read a book, when I'm in a shooter game I'm PLAYING killing enemies.

As an aditional note, I think that fixing all kind of SP stuff will just decrease performance of game developing a hard loaded controller, even with removing all kind of default worldlogs useless anyway. Who really cares about them in MH ? Server log and different logs are good for certain purposes. Making engine to upload all kind of craps will waste resources which are really necessary for our stressfull MH.

Pause here...

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: Need More Fixes ?

Post by Nelsona » Fri May 04, 2012 10:07 am

End of pause. Continuing with a question. A function from MH named CountHunters how fast can run ?

Original

Code: Select all

function CountHunters()
{
	local Bot B;
	local TournamentPlayer P;

	HuntersTotal = 0;

	foreach AllActors(class'TournamentPlayer', P)
	{
		if (!P.PlayerReplicationInfo.bIsSpectator)
			HuntersTotal ++;
	}

	foreach AllActors(class'Bot', B)
	{
		if (!B.PlayerReplicationInfo.bIsSpectator)
			HuntersTotal ++;
	}

	MonsterReplicationInfo(GameReplicationInfo).Hunters = HuntersTotal;
}

Or a different one ?

Code: Select all

function CountHunters()
{
	TotalHunters = NumPlayers + NumBots;
	MonsterReplicationInfo2(GameReplicationInfo).Hunter = TotalHunters;
}
I guess the second one will act faster, right :twisted: ?

I think next move is to get rid of timer noticing logins and logouts without to count hunters each second. In Assault we don't have any timer, why we need it to mess up speed ?

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: Need More Fixes ?

Post by Nelsona » Sat May 05, 2012 5:13 am

Great ! Because nobody added an answer I'll switch to other subject:

BOT SUPPORT for DIFFERENT ATTACHED MH VERSIONS
Introduction - If you don't like to play MH with Bots stop reading and go to sleep, :P.


* Is possible to have this ? - YES !
* What can do a "Stupid Bot" in MH maps with Bot support ? - Will hunt monsters runing to next WayPoint if area is enough cleared (depends on visibility) not a racing behavior like a human player, :P.
* Is possible to be more improved ? - Yeah, but take care at loading engine to avoid bad results.
* How about some messages to bla bla 1000 paths ? - Is native, a NASA server is useless because this "feature" is limited to 1999-2000 years not by number of CPU Cores, :P.
* I did everything for enhanced support ? - Just small tweaks, I'm limited by my noobish coding skill (level 0.2) and sister Kira doesn't let me dig into her brain because is affraid of death.


I go to take a small break and later will see CPU load testing is a separate server-machine.

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: Need More Fixes ?

Post by Nelsona » Sat May 12, 2012 1:42 pm

Yeah, is proved again what can do a Bot vs what need a MH game controller.

In a map like ArdenValley sometimes bots are ugly boosted out of paths and won't attack any more. This time I'm using a different technology.

First of all we have a variable (I found some random name) bStupidMap.

This value can be True or False as being a boolean value.

Controller is determining if map is good and will talk with Bots. If bot was boosted out of A.I. paths and have nothing around to kill, will think a bit and will trace some nearby pathnodes starting at 2500 UU, yes you read well, not 700 UU. As long as our Bot found a pathnode will go to this one finding A.I. paths. If map is not pathed well, Bot will wander without to run in place. I'm working to see if I can do some small fine tuning.

If this is not enough good is because I was almost drunk when I delivered this code diging in Bot class to see how I can alter his nose to smell a pathnode from a distance more than 700 UU like is used normally when is lost in wild areas, and I need small aditional features to solve.

I apologise if I disturbed order.

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: Need More Fixes ?

Post by Nelsona » Thu Jun 07, 2012 12:45 am

Assuming a Headshot's post isn't of topic like was posted, I looked for a different solution to have some headshot and even FirstBlood anounced in a MH controller but without definition of new messages, new sounds, just using UT stuff in attempt to keep file smaller and without Accesed None errors.

I looked at other derivated of TeamGamePlus done by Epic which not spam millions of errors, and I found a way to deal with functions Killed and Scorekill (without to call themselves), just setting up correctly all conditions to complete all killing instances. If a condition is missing might occurs an error.

Some rules need to be checked:
- IF Killer exists (not really Victim, since victim called function)
- if victim isn't killer or is the killer (suiciding)
- If victim is not teamplayer (is monster)
- If killer is not Teamplayer (is monster - NO score for killer - I believe here we need a forced return)
- IF Killer not exist (woow), yea, some lava zones, acids, spawned explosions, etc
- in this case must check which is victim and return from scoring (we have to avoid assigning score for lava killer or else don't ask for troubles.

Scorekill function is automatically called, if not all instances are described here we pass to BaseMutator to complete other instances if necessary. I found this in CTF and Mr. Loathsome used this technology in CTFSPfix games completing functions without to return errors.

Results: Since we don't have the slalom at GameInfo root, we can see default headshot anounced (I don't see it so logic because a big monster won't die at some first such hit and Gasbag is a head with arms and isn't really a headshot - Isn't funny here ). FirstBlood can be copied from DeadMatchPlus (this is also not really cool - FirstBlood proudly anounced when a player killed a pupae - Wooow ! - must be an expert killer to drew FirstBlood on a small stupid pupae).

Anyway these might works without special redefinitions and no errors...

To be continued...

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: Need More Fixes ?

Post by Nelsona » Fri Jun 15, 2012 3:15 pm

I just finished a few features, I'm working to see small details in a MonsterHunt (a bit enhanced) game-type. Temporary I put up a small test server but with password because I need full testing to see if isn't something broken and I'm continuing to update features (nobody need mismatch version errors):
- at mutate command chapter I added another command (for developing): mutate ai. Using this command player will receive status of MonsterWayPoints - visible or invisible. If a bot by mistake touched another WayPoint than required one, might break attack. Player can continue hunting in desired order having chances to restore attack. Of course, the same command will hide WayPoints if aren't needed to be visible;
- Next move I think will be to give up at Chainsaw since I saw it useless against Tentacles, yeah, show me how to kill Tentacles with that retarded weapon. Default weapon is now DispersionPistol (OLDPistol) - Bots now will switch the mostly to Ranged Attack since they have a permanent armed weapon like human player. As a good tweak, chainsaw will go away making place for WeaponPowerUp like useless Invisibility (even I expect visibility troubles (maybe crashes) related to that crappy inventory developed by a dude with brain infected with HI-460 virus :P - sorry, I just drunk a beer and I cannot stop sharing my hate for dumb inventory added useless in UT99 (maybe this is a replacement for that wonderfull green-cubed Quadshot));
- Another note: I played a bad ported from Assault game a map named MH-Mazon (heavy to be ended without boost) - don't worry, more "experts" ported maps without to know what they doing (... beep ...), but here I noticed a better A.I. reaction of both sides monsters and bots because this game-type is based on A.I. even some dudes aren't accepting this subject, all MonsterHunt is based on A.I. - Monsters are Computer controlled pawns not only Bots. In fact ideea was another one: map was played some minutes without any Accesed None Error in client or server, yeah, without errors related to combat states of monsters and other maps with a few errors not really as usuall, with a clean console (I even don't have any timer error related to FLAG from maps bad ported to MH because simply The Flag not exist in MH (is not Flag hunt - is Monster Hunt).

As conclusion for current post: I think I triggered a better A.I. reaction vs enhancements number, I'll look forward to see what any other features can be solved. Of course anybody interested in a new technology or small suggestions is welcomed to a private discussion even to a new technology in MH controller. I found a way to deal with things without calls to MonsterHunt(Level.Game).somebullshit = XX value developing accesed nones. I don't know when I'll set a start for a dead class in default MH named MonsterHuntDefence (bad ideea to use maps with AS prefix because will confuse more people) never used. This is not the easier job to do but I have in mind a few things related to game.

Subject: Players have a Base, Monsters another Base. Monsters are attacking Player Base to trigger their Objective. If Players cannot defend their Base game is lost with negative score for everybody (yea, I want to see some crappy stats, :P). If monsters are killed (some 8 or 10 monsters remaining) players win the game, Succesfully Defended. Player who leave his Base will die infected by environment :twisted: . So, we cannot talk about a stupid race, we have to hunt normally in this game-type. If map is bad, game is ending for bad mapping, :P. If Bases are too close to ambush player very fast, game is ending for lame mapping broadcasting these "events" as well and so on , I have in mind more protections against dumb mapping.

This is now only a project in my mind. I'm thinking if I need to work a lot for this one, is not in my WorkStation yet, since I saw only Wall Drawers not really mappers in any place, and this Game need a good knowledge in A.I. pathing (not really Bot Pathing), or else monster won't attack and game will break. I have ideeas how to handle A.I. I can test more things (and I tested already a few features), but a single guy cannot work alone to develop something really funny. I'm dissapointed at UT99 development chapter...

Pause...

User avatar
EvilGrins
Posts: 2654
Joined: Thu Jun 30, 2011 8:50 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Palo Alto, CA
Contact:

Re: Need More Fixes ?

Post by EvilGrins » Fri Jun 15, 2012 7:38 pm

Something I'm fond of doing with some monsters is switching their intelligence. Most all the monsters in UT are set to "Brains-Human" but I switch them to one of the other 5 choices, usually "Brains-Reptile" which makes them slightly more aggressive.

Sadly I've never seen a guideline for UT explaining what specifically the differences between the various 'brain' types there are.

Post Reply