steady rising mover + attached killzone + sheet for visualization = possible?

Tutorials and discussions about Mapping - Introduce your own ones!
User avatar
papercoffee
Godlike
Posts: 9447
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

steady rising mover + attached killzone + sheet for visualization = possible?

Post by papercoffee » Sat Jan 11, 2020 6:13 pm

As I said in the title.
steady rising mover + attached killzone + sheet for visualization = possible?
I think about a special kind of map.
And it should be possible to deactivate pathnodes, which become useless for bots after time.

remember when you as a kid played with your friends "The ground became lava", but with the twist that you shoot each other, that's what I try to achieve.
Would work very well for LMS.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Sat Jan 11, 2020 6:31 pm

papercoffee wrote:
Sat Jan 11, 2020 6:13 pm
And it should be possible to deactivate pathnodes, which become useless for bots after time.
It depends on need. If ALL of them have to be inactive this is doable with something simple working even in plain servers. If it's about sequences from map then it will need some "node-tracker" or something with a name self explanatory and probably removing paths triggered and/or moving nodes into void with a defined distance... or using custom nodes that can be triggered for removing paths and even restoring them if is needed later.
For the rest of concept I'm curious about strategy used.

User avatar
Barbie
Godlike
Posts: 1742
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by Barbie » Sat Jan 11, 2020 8:15 pm

papercoffee wrote:
Sat Jan 11, 2020 6:13 pm
steady rising mover + attached killzone
Zones are usually bStatic and if that is changed and the Zone moves, it does not work very well, especially online.
An attached Trigger that kills pawns is not an alternative?
+ sheet for visualization
That shouldn't be a problem.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Sat Jan 11, 2020 8:34 pm

I don't think you need to move anything - so by default an attached zone it's pointless.
There can be done a TriggeredZone that comes aggressive (I did reversal in one of my fixes) - it works flawless ON-Line. Triggering this is helpful even for previous paths self-tweaking chapter...

As far as I know there was already done a TriggeredWaterZone - of course, a bit poorly coded, but that's not a problem for being improved or changed to other thing...

Another Hint: Propertyflipper or something like that (or PropertyChanger)... + a bit of Mylevel where it's needed.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by papercoffee » Sat Jan 11, 2020 10:44 pm

The whole thing is meant like this... some kind of Battle Royal but also totally not.
At the Top of the map there are no weapons. You can try to camp there but you are exposed to the opponents down there with a lot of ammo and weapons.
NewCanvas1.gif
<= click the picture to see it animated.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Sun Jan 12, 2020 12:15 am

What is there has to be a Movable portal which I never tried, but filling a tank with water using multiple zones was done already.
Probably there are other options which are not in my mind yet...

As an alternate option I would think at a huge trigger covered with a big decoration (for visibility), and trigger attached indeed to a tiny mover placed elsewhere. Trigger might be educated for a slowly and deadly pain - like when cats are playing with victims... Here must be in account various actors colliding because a trigger is intended to work with 4 touchers unless you want something custom... or that decoration reacting as a trigger attached to a little Mover...

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by papercoffee » Sun Jan 12, 2020 12:30 am

It must be a steady rising of that dangerous zone and not a jump from one zone to the next and as you can see, can the map be tall ...the player has to climb and fight for their safety.

Imagine
a sinking ship in the arctic sea.
a forsaken temple in a rising lava pit.
a research station in an acid swamp on a forbidden planet...
etc.

I didn't see your last Edit.
That sounds interesting.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Sun Jan 12, 2020 11:47 am

In map MH-Sk_Tarmation2 adjusted by (probably still not perfect) sektor2111 there is a nasty zone, a room where it's something to shoot around last area before stairs. Because objective is destroyed, in my logic room should not do damage any more, and this is what's happening, it becomes "friendly". Map was intended to have Bot Support and then a room doing damage is only making a mess. Objective can be damaged even by Bots as part of mission so they "unlock" this damaging room. Other explanations about how many headaches I got in this map it's not part of topic - I was really annoyed to see a "fix5" without actually ANY fix :facepalm: and more than that, map was given as sample in a tutorial - a "how to" more exactly, while it was TRASH as technical execution, right now has probably more than 64 zones which is entirely wrong. Such a setup I think is doable in reverse toward a zone which "goes angry" but in your case probably splitting map in zones it's not the goal.

Note: Exactly for not feeding those saying that I'm talking dumb things, map it's in forum somewhere so you can go get it and see with your eyes EVIDENCES of what I'm talking about. Of course here I wrote a MyLevel for this purpose and also there is a LiftExit customized for pointing Bots to activate a Lift-Button which is not in direct view. This map also shows that "Edge-Bad-Angle" navigation issue which a Bot is having but here I did not do anything as long as I'm not interested about default Bot, and MBot might get over that area + you can assist them at Mover-Lift (call lift and start it when Bots are sitting over it) as long as they are not moving from Lift during movement, they are waiting it to move properly and going to hunt, purpose of Bot was: You help them and then they will help you. More nasty is that GravityZone thing... but there plans are in run-time only if it needs...

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by Feralidragon » Sun Jan 12, 2020 3:52 pm

Well, if you want bots to be aware of it and such, any solution revolving only the existing actors the game already provides will be exceedingly complicated to even next to impossible to make it work as perfectly well as you want.
In other words, you probably cannot do this without custom code.

Speaking of which, I do have something in mind, which would just involve a mover and a custom actor to manage all of this.
But this is all very high level and conceptual, right out of my head, so a lot of the code details I am going to talk about may not work as well as in theory, so it's up to anyone willing and up to the task to test it or identify the problems with this approach.

The first thing to keep in mind is that this is actually a rather simple problem, mostly due to the fact that code-wise, all you have to worry about is whether something is in one side of 1 axis or the other, namely all you have to worry about is the Z-axis alone, and how to handle actors whose locations are below a specific Z-axis value (where the lava supposedly is).
It's just a bit worksome because of a fair number of things you have to take into account, especially AI-wise.

So, first off, you need to set up a mover: this mover is solid (not a sheet), although it can be thin (maybe 32uu or wider, doesn't matter much as long as it has collision), and it represents the lava.
With this mover you don't do any special setup, other than the visuals and such, and its initial position, although for it to work best it shouldn't either be very thick or the pivot should reside on the surface of the mover that represents the actual lava surface.

From here, we advance with the actual actor: the idea here is to build a custom actor, something you place in the map (maybe something extending from Info for example), which simply has a few editable fields specific to the lava: the mover reference or tag that will act as the lava surface and the rate at which it rises.

And then, the real magic will be the code within this custom actor, which will simply need to do the following set of tasks:
  • at the start, set the mover automatically so that any touch or bump with it causes an event sent to this actor (maybe by setting BumpEvent, or maybe using some other more elegant solution);
  • every tick, move the lava mover up in the Z-axis at the rate that was set;
  • upon getting bumped by any actor, apply something equivalent to death to it in the case the actor is "killable" in some sense: kill the Pawn using the Died method, destroy projectiles, etc;
  • with a slower timer (maybe called 5x to 10x per second, so set to 0.2 or 0.1 seconds, repeating), check if there's any actor below the mover (using the current mover location Z axis), and "kill" it if applicable;
  • for Playerstarts below the lava point, they should be deactivated (bEnabled=False);
  • for all NavigationPoints below the lava point (Pathnodes, InventorySpots, etc), they should have their cost greatly increased (ExtraCost += 1000000, idk);
  • all Inventory should be destroyed below the lava point as well.
From here, I am not sure if more than this is needed to make the bot to stay the hell out from the lava and take paths away from it.
But if this isn't enough, either by the cost increase not being enough or not being applicable in runtime (the details how it works escape me after so many years), in this actor you may iterate through all the bots and instruct them directly to not take those paths, by spawning "carrots" in from of them to lead them (think BotBurguer kind of thing) or to instill them fear, or anything else, there are plenty of ways to force a bot to do what you want.

And lastly, for the overall experience to be believable, this custom actor could also spawn effects and play sounds during the bumps to make it actually look like they hit lava, as well keep actors with an ambient sound in them near each player (locally in case of online play) to play a lava looping ambient sound.

Furthermore, if you wish the lava to not kill immediately and just apply damage over time, that may be more tricky, but here we can take a page from Fortnite itself (which made this exact mode a while ago), and before they had the support for players to able to "swim", they made the lava to just make the players jump, while taking damage each time they touched the lava.
Feel free to search up videos with something like "Fortnite floor is lava" to see what I mean.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Sun Jan 12, 2020 5:31 pm

Also all A.I. can be educated to avoid that area below mover by removing Paths[x] and UpstreamPaths[x] for points connected with these - custom actor or... custom nodes making this auto-hack by themselves. I think Bot problem is easy, the interesting part is the damaging deal vs space below said Border-Actor or whatever mover.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by papercoffee » Sun Jan 12, 2020 7:17 pm

@Feralidragon wouldn't it be very complicated to let the player swim in that kind of construction? I mean in UT.

Ha ...well... since when has FN this mode and is it applied to the whole island?
Bummer, another idea taken away.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by Feralidragon » Mon Jan 13, 2020 1:04 am

papercoffee wrote:
Sun Jan 12, 2020 7:17 pm
@Feralidragon wouldn't it be very complicated to let the player swim in that kind of construction? I mean in UT.
If you want the player to swim, then that's really really hard to do (other than the multi-zone method).
You would need to make it so that the player believes he's actually underwater, which all tie directly with bWaterZone checks with the zone itself.
Essentially, since there are next to no good programming principles applied to how the game was programmed (95% stateful code rather than functional), a lot of these kinds of tasks may be next to impossible as of now.
papercoffee wrote:
Sun Jan 12, 2020 7:17 pm
Ha ...well... since when has FN this mode and is it applied to the whole island?
Bummer, another idea taken away.
Yes, the whole island.
It's an LTM though (Limited Time Mode), so they only enable it times to times, generally months apart.

But I am sorry to say that the idea itself is not new and similar games have existed for at least 1 or 2 decades.
The first time I saw this kind of game was with Worms, but being an existing idea doesn't mean you cannot do it in your own way in UT99 or elsewhere, especially given that no one did anything similar in UT99 thus far. :tu:

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Mon Jan 13, 2020 5:50 pm

Technically by using only stock actors I got this:
DM-DZ_Test.7z
(177.87 KiB) Downloaded 2 times
Probably using a custom script would return other results - it's not using any WaterZone just damaging under "Lava". No A.I. code here because this only an idea - probably not suitable because of fore-mentioned reasons.

Isotoxin
Adept
Posts: 278
Joined: Tue Mar 15, 2011 5:01 pm
Personal rank: Mapper
Location: Belgium

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by Isotoxin » Tue Jan 14, 2020 3:53 pm

Another possibility would be to use a TriggeredLavaZone. It boils down to creating a number of zones on different heights. A lava sheet is raised, and the supporting zones are activated in the process. I did something like this for a BT map of mine, I even remember that Ferali scripted the actor for me.

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

Re: steady rising mover + attached killzone + sheet for visualization = possible?

Post by sektor2111 » Tue Jan 14, 2020 6:04 pm

Yes, like TriggeredWaterZone which I was talking about, here is about how many such "steps" are needed.

Post Reply