New PropHunt for UT99

Discussions about GameTypes
User avatar
'Zac
Experienced
Posts: 111
Joined: Tue Jul 29, 2014 9:35 pm
Personal rank: Who knows.
Location: NC

New PropHunt for UT99

Post by 'Zac » Thu Apr 26, 2018 3:07 am

Hello UT99.org, as an amateur unreal scripter I wanted to take on the challenge of creating a new game mode for UT just to gain experience, have a new game type to play with all you interesting people, and ultimately have fun doing it, which I am.

I released a demo alpha of it on moddb here: http://www.moddb.com/mods/prophunt-for-ut99
There's some pictures on their for you guys to take a look at.
Please download it and take a look, there two demo maps for you guys to check out everything. Any help, assistance, or tips are very much appreciated!!!
The round times and gameplay variables are set for testing purposes so their not at a realistic gameplay setting, though i will make it customizable.



Two teams, hunters versus hiders. Hunters need to persue hider players disguised as props/decoration models though every miss with the hunter weapon is a health penalty, so make sure you shoot wisely! As hunters there is only one way to win the round - find and kill all the hiders before the round time is over.

Hiders have a couple ways to win a round
for their team, first is having at least one hider alive when the round is over and second is having the hunters all die by them missing their shots and being trigger happy.

Though, hiders have a disadvantage: when running, their health slowly reduces. Hiders must use their surroundings to blend into the environment and
avoid the hunters to stay alive!

At the end of every round, teams switch sides to take turns being hiders and hunters until a team reaches the score!

Configurable Variables:
HunterHealth - How much health hunters start with, keep in mind that for each kill a hunter gets, they gain a third this amount for every kill. default=200
HiderHealth - How much health the hiders have to start, recommend keeping this around default. default=50
HideTime - The amount of time ( in seconds) hiders get to freely go out and hide without the hunters being able to kill or see them. default = 60 seconds
RoundTime - Length in minutes for each round ( not including Hide Time ). default=2
RoundsToWin - The team goal to get to for their team to win the game. default=7
You do not have the required permissions to view the files attached to this post.
Prophunt for UT99!!!
Image
Github

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

Re: New PropHunt for UT99

Post by EvilGrins » Thu Apr 26, 2018 3:32 am

How well do bots handle this?

They don't seem well suited to "hiding".
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758

User avatar
Hook
Inhuman
Posts: 753
Joined: Tue Apr 22, 2008 11:21 pm
Personal rank: UT99 Promoter/Admin
Location: Minnesota USA

Re: New PropHunt for UT99

Post by Hook » Thu Apr 26, 2018 5:23 am

EvilGrins wrote:How well do bots handle this?

They don't seem well suited to "hiding".
Good question.
However I LOVE the idea!!! :gj:
The old Hide n Seek, UT style! :tu:
=Hook=(Member# 626)
Active Forums: http://hooksutplace.freeforums.net
UT99 Server -> CROSSBONES Missile Madness {CMM}

* Newest Versions of: PRO-Redeemers | PRO-SNIPER-Redeemers | PRO-SEEKER-Redeemers <-(the Original)
and Now with FOOD FIGHT and Frying Pan arena !!!
IP: 68.232.181.236:7777
{CMH} CROSSBONES Monster Hunt (MH) by Mars007 (The Original) - IP: 108.61.238.93:7777

User avatar
esnesi
Inhuman
Posts: 955
Joined: Mon Aug 31, 2015 12:58 pm
Personal rank: Dialed in.

Re: New PropHunt for UT99

Post by esnesi » Thu Apr 26, 2018 9:41 am

wow!
This could be really interesting, but codingwise a big project i assume and imagine.
It needs a mappack with its objects/props, so alot of mappers and maybe randomness with objects/props are needed, so never the same props are chosen.

I might know a mapper or two that would be interested in this!

I guess the interest in it would certainly be big!

Will try the demo out tonight / this weekend!

User avatar
Feralidragon
Godlike
Posts: 5462
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: New PropHunt for UT99

Post by Feralidragon » Thu Apr 26, 2018 1:33 pm

Nice. :tu:

Just an advice, for presentation only: I would suggest you to set up a server with this, and then set a time to play this, and maybe announce it on Discord, and perhaps even make a video from it to be used as trailer material.
I may join in too if needed (and if I manage the time), since I am curious how this plays out in UT.
This is the kind of game type that is only fun if it is populated with actual players.
EvilGrins wrote:How well do bots handle this?

They don't seem well suited to "hiding".
Unless "real" machine learning is used (hard, but not impossible in UScript), any kind of game type which requires creativity is not very well suited for bots.
And this is one of those game types.

And, personally, I don't really see the appeal to play it against bots, it's no fun to bamboozle a bot, but an actual player on the other hand... :mrgreen:

User avatar
papercoffee
Godlike
Posts: 10178
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.

Re: New PropHunt for UT99

Post by papercoffee » Thu Apr 26, 2018 1:40 pm

Feralidragon wrote:Nice. :tu:

Just an advice, for presentation only: I would suggest you to set up a server with this, and then set a time to play this, and maybe announce it on Discord, and perhaps even make a video from it to be used as trailer material.
I may join in too if needed (and if I manage the time), since I am curious how this plays out in UT.
This is the kind of game type that is only fun if it is populated with actual players.
EvilGrins wrote:How well do bots handle this?

They don't seem well suited to "hiding".
Unless "real" machine learning is used (hard, but not impossible in UScript), any kind of game type which requires creativity is not very well suited for bots.
And this is one of those game types.

And, personally, I don't really see the appeal to play it against bots, it's no fun to bamboozle a bot, but an actual player on the other hand... :mrgreen:
And bots are not good at missing targets on purpose when they play as hunter. You would need a new kind of bot with intelligent dumbness. :ironic:

User avatar
Deepu
Adept
Posts: 316
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: New PropHunt for UT99

Post by Deepu » Thu Apr 26, 2018 2:53 pm

You can test this game type here 62.141.39.226:1111.
Vote for [Prop Hunt - Normal], we tested this game type seems it is broken, always stuck on the ground when game is started for hiders side, I think it needs more improvement...

User avatar
'Zac
Experienced
Posts: 111
Joined: Tue Jul 29, 2014 9:35 pm
Personal rank: Who knows.
Location: NC

Re: New PropHunt for UT99

Post by 'Zac » Fri Apr 27, 2018 12:58 am

it is not broken, the network replication settings aren't made yet and that being stuck in the ground thing is the hunters being frozen while the hiders get free hide time
Prophunt for UT99!!!
Image
Github

User avatar
Hook
Inhuman
Posts: 753
Joined: Tue Apr 22, 2008 11:21 pm
Personal rank: UT99 Promoter/Admin
Location: Minnesota USA

Re: New PropHunt for UT99

Post by Hook » Fri Apr 27, 2018 5:17 am

'Zac wrote:it is not broken, the network replication settings aren't made yet and that being stuck in the ground thing is the hunters being frozen while the hiders get free hide time
Yes, that all makes sense, and just like hide and seek, a delay time for the seekers/hunters would be like when the seekers count before going to seek the hiders.

Don't give up on this one.
It sounds like it has promise to me, and I see by the responses that others feel the same about it too. :tu:
=Hook=(Member# 626)
Active Forums: http://hooksutplace.freeforums.net
UT99 Server -> CROSSBONES Missile Madness {CMM}

* Newest Versions of: PRO-Redeemers | PRO-SNIPER-Redeemers | PRO-SEEKER-Redeemers <-(the Original)
and Now with FOOD FIGHT and Frying Pan arena !!!
IP: 68.232.181.236:7777
{CMH} CROSSBONES Monster Hunt (MH) by Mars007 (The Original) - IP: 108.61.238.93:7777

User avatar
'Zac
Experienced
Posts: 111
Joined: Tue Jul 29, 2014 9:35 pm
Personal rank: Who knows.
Location: NC

Re: New PropHunt for UT99

Post by 'Zac » Tue May 01, 2018 4:04 pm

Thanks for the feedback everyone, my first mod is going very well.

I have a new version coming out soon with a rules/settings menu to set variables such as round time, goal score, hunter health, hider health, etc. Also, i am still working on the selector gun that hiders use to pick their prop. Before it was the sniperrifle, the model would show, make the firing noise, and other aspects I did not want in it, so I inherited from TournamentWeapon instead.

Also changed a bit on the scoreboard and HUD, and my next step is getting a simple AI working.

My idea of an AI for a hider bot is if they see a close model, select it and remaining camping near it. Add in a random factor to move a short distance to change prop if there is one. That's my basic idea right now.

For hunter bots that need to search, they would freely move around the map and if they see a prop, throw in a random factor if they shoot at it, if not a player stop and move on. If the prop moves and is jumping and obviously an enemy, chase that guy. When the prop changes and the enemy is lost, they lost their enemy in their tiny bot brain and have no idea where they went. Though,

AI in UT i think is only customizable in the game type class right? I see functions upon functions within the CTF class and Assault classes for bot AI. it would be so much better if the gametype had a bot class to spawn the bots as and have all their functionality in those classes, much like scripted pawns and monsters. It is the next learning step, and is also food for thought.
Prophunt for UT99!!!
Image
Github

User avatar
PrinceOfFunky
Godlike
Posts: 1192
Joined: Mon Aug 31, 2015 10:31 pm

Re: New PropHunt for UT99

Post by PrinceOfFunky » Wed May 02, 2018 12:58 pm

Well I'll try thinking at some suggestions, other than using AdvancedMutator which I think is too late at this point XD.
The nalis usually escape the player if the player shot them, this behaviour in conjuction with someting like PlayerCanSeeMe() or this could make the AI stay when the player can see them and escape when the player doesn't.
A list of meshes that potentially make sense near the one the AI is using could be needed.
Every mesh of the same type should share the same collision.
"Your stuff is known to be buggy and unfinished/not properly tested"

User avatar
papercoffee
Godlike
Posts: 10178
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.

Re: New PropHunt for UT99

Post by papercoffee » Wed May 02, 2018 5:36 pm

randomly should some meshes be dropped to confuse the hunter. Or else well known maps (I know some geeks know every pixel of a map) are no fun.
But be aware that those random decos should never be dropped on a path between pathnodes or bots will get stuck there.

User avatar
'Zac
Experienced
Posts: 111
Joined: Tue Jul 29, 2014 9:35 pm
Personal rank: Who knows.
Location: NC

Re: New PropHunt for UT99

Post by 'Zac » Wed May 02, 2018 11:40 pm

Hmm, not a bad idea papercoffee. Maybe replace pickups in the map with random decorations?
I like that though, because I want this mod to be very mapper friendly and have maps ported over to PropHunt very easily, no importing the class or putting in special nodes or anything, just swap gametype and maybe tweak a few things and that's it. Though, great idea! I'm fully open to ideas like this :)

Just released another version, it's way better than 1.0.0a.
- Added rules menu before starting a game
- Hider Selector allows behind view ( right click )
- Hider Selector now has accurate prop ownership, sticks to ground.
- Added ' You have died, you must wait until round is over ' when a player has died.
- Changed default model from the UnrealShare.Barrel to the UnrealShare.Vase
- Fixed the weird angle at the start of hide time for Hunters, now they start off looking straight down.
- Changed the Hider selector to be of TournamentWeapon instead of sniperrifle, removed the sounds and models. ( third person model still there for testing purposes )

http://www.moddb.com/mods/prophunt-for- ... phunt-110a

Stay hidden or die trying!
You do not have the required permissions to view the files attached to this post.
Prophunt for UT99!!!
Image
Github

User avatar
sektor2111
Godlike
Posts: 6030
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: New PropHunt for UT99

Post by sektor2111 » Thu May 03, 2018 5:37 am

I'm "fascinated" about what I was reading above especially A.I. things.

I see here that you wanna try to do some Bot support for this game-type but I see the people are really "encouraging you" very "nice". I might recommend to ignore such posting against Bot especially when they are Negative by default and BOT HATERS since forever :pfff: .
I see here
PrinceOfFunky wrote:The nalis usually escape the player if the player shot them, this behaviour in conjuction with someting like PlayerCanSeeMe() or this could make the AI stay when the player can see them and escape when the player doesn't.
Nothing useful for developing Bot Support :loool: . and PlayercanSeeMe() is damaging a NON XC server - go to sleep - 0 (zero) Bot help here
papercoffee wrote:You would need a new kind of bot with intelligent dumbness.
like a smart BOT which can be dumb if game directives are properly set as long as a smart guy can be easily stupid on demand, but a stupid one cannot be smart not even after taking a brain stimulus.
Feralidragon wrote:I don't really see the appeal to play it against bots, it's no fun to bamboozle a bot, but an actual player on the other hand...
Seriously ? Another game for 0 (zero) game Off-Line and directly dependent by others - especially which are leaving in 4-5 minutes - very nice indeed ? Thanks for suggestion anyway :thudown: .

Zac, keep looking for a solution and do not forget to take in account default factors.
A few points:
- keep in mind that navigation Stuff can be part of game see CTF and Domination, objectives there are dependent on them - FlagBase and ControlPoint;
- When you do need to call Bot at game participation you have a default function which Bot is calling before to do what he knows to do - in game controller if this is a TeamGamePlus child game-type:

Code: Select all

...
function bool FindSpecialAttractionFor(Bot aBot)
...
This is the main Bot core in TeamGamePlus games.
In this function you can deal with various bool values (maybe self explanatory) bIsHidder, bIsHunter, bTeamIsHidden, etc. These can be associated with whatever stuff - an additional controller checking itself things without over-loading Bot's task. You can even use Tags for Bots if I'm not mistaking.
Now let's see what Bot might use (located in Pawn so even PlayerPawn can use them as well):
- native(518) final function Actor FindPathTo(vector aPoint, optional bool bSinglePath,
optional bool bClearPaths);
This usually doesn't need too many deals with those optional components because you might see funky things happening. It is used for checking if exist a route to a point in space.

- native(517) final function Actor FindPathToward(actor anActor, optional bool bSinglePath,
optional bool bClearPaths);
This one is used in default matches coded by Epic - Mother-Factory.

- native(540) final function actor FindBestInventoryPath(out float MinWeight, bool bPredictRespawns);
This can be also re-called (Bot already uses it as an alternate option when some "item" is set with high desire by some factor in certain conditions. Here you can use your imagination...

Another one which they did not use but here you can capture a random spot - *maybe this is suitable for such a game-type (I guess might help even in Soccer game):
- native(525) final function NavigationPoint FindRandomDest(optional bool bClearPaths).

Bot internal stuff:
- ShootTarget()

Code: Select all

	function ShootTarget(Actor NewTarget)
	{
		Target = NewTarget;
		bFiringPaused = true;
		SpecialPause = 2.0;
		NextState = GetStateName();
		NextLabel = 'Begin';
		GotoState('RangedAttack');
	}
Available often because roaming is Bot's default state if map has PATHS not crap.
Here is the Bot thing dealing with TeamGamePlus:

Code: Select all

	function PickDestination()
	{
		local inventory Inv, BestInv;
		local float Bestweight, NewWeight, DroppedDist;
		local actor BestPath;
		local decoration Dec;
		local NavigationPoint N;
		local int i;
		local bool bTriedToPick, bLockedAndLoaded, bNearPoint;
		local byte TeamPriority;
		local Pawn P;

		bCanTranslocate = ( Level.Game.IsA('DeathMatchPlus') && DeathMatchPlus(Level.Game).CanTranslocate(self) );
		if ( Level.Game.IsA('TeamGamePlus') )
		{
			if ( (Orders == 'FreeLance') && !bStayFreelance
				 &&	(Orders != BotReplicationInfo(PlayerReplicationInfo).RealOrders) ) 
				SetOrders(BotReplicationInfo(PlayerReplicationInfo).RealOrders, BotReplicationInfo(PlayerReplicationInfo).RealOrderGiver, true);
			if ( FRand() < 0.5 )
				bStayFreelance = false;
			LastAttractCheck = Level.TimeSeconds - 0.1;
			if ( TeamGamePlus(Level.Game).FindSpecialAttractionFor(self) ) //THIS !!!
			{
				if ( IsInState('Roaming') )
				{
					TeamPriority = TeamGamePlus(Level.Game).PriorityObjective(self);
					if ( TeamPriority > 16 )
					{
						PickLocalInventory(160, 1.8);
						return;
					}
...
...
...
If you get the point how TeamGameplus do works together with Bot and what these natives can do, I can say that you have a start, and from that moment forward ignore any Bot Haters blabbering around, just keep doing your job.
Hint: If Bot needs a sort of value/string which he doesn't have, give it some actor owned having that needed stuff (as replication does). Then you can check these (even chained as Higor is doing if is not hard for you) and these can be tested from "Attraction" code which is not only an attraction thing as name is pointing, there can take place more things before returning that True or False.

What I'm not encouraging at all it's a game changing meshes and forcing engine to run null animations, that's not what I would ever recommend.

PS: When I'm looking at such Bot "thoughts" posted, encouraging development like that, probably my next visit here will be after at least 2 weeks and maybe I will reduce more the forum reading out of XCGE section. I did not see any recommendation but... things like "I think it's not possible", "it's not suitable", and other mooing-type posting :sleep: . While last time I was working at A.I. stuff generally, I see here something like an entire campaign against Bots so I'm motivated to not release anything from which I do.

User avatar
papercoffee
Godlike
Posts: 10178
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.

Re: New PropHunt for UT99

Post by papercoffee » Thu May 03, 2018 3:38 pm

sektor2111 wrote:I'm "fascinated" about what I was reading above especially A.I. things.

I see here that you wanna try to do some Bot support for this game-type but I see the people are really "encouraging you" very "nice". I might recommend to ignore such posting against Bot especially when they are Negative by default and BOT HATERS since forever :pfff: .
[...]
PS: When I'm looking at such Bot "thoughts" posted, encouraging development like that, probably my next visit here will be after at least 2 weeks and maybe I will reduce more the forum reading out of XCGE section. I did not see any recommendation but... things like "I think it's not possible", "it's not suitable", and other mooing-type posting :sleep: . While last time I was working at A.I. stuff generally, I see here something like an entire campaign against Bots so I'm motivated to not release anything from which I do.
Maybe you should reread our posts.
No one did hate bots, but had concerns about the default bots acting right in this new game type. Where bots have to stay still (the hider) or escape when the player doesn't look at them, or have to search (the hunter) and not directly finds you and shoot.
That's why I wrote about an intelligent dumbness. Artificial human like dumbness is not an easy task.
Different than a human player can a bot see you through the entire map ...the bot must be able to be tricked into the wrong direction and aim for the wrong decoration mesh. Or for the hiding bot, to stay put until an opponent has passed by and the line of sight gets blocked by a mesh or bsp.

Yes, we are guessing about bot behaviour, because you, who has more knowledge about Bot AI, is very inactive in the last time.
Don't blame us. :P