UT99.org EpicTown ShowDown - Get-Together Of The Century!

Discussions about Events and Tournaments
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by Gustavo6046 »

You mean the lights were lagging behind the train? You should make that part clientside, just like the light itself should be. Maybe compute the location from the server too, but in a simulated function (and having the light actor be a ROLE_SimulatedProxy in clients) so that the location setting functions are called clientside so the server doesn't send them.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by sektor2111 »

That was my #1 idea which... I dropped this time.
When another player is joining later, his "Train" copy will be different in first second from whatever server version in that moment, adding lights will need some work - but I need to test this solution. Decorations spawned only in client are acting like they are full relevant being client authoritative and server doesn't need any such things because there is nothing to see in server (okay, okay, except server's demo records...).

In a LAN test with 469 my custom "lights" were okay, even good as in a common Off-Line game. A 440+XC24 server outside do looks fine as well. Lousy random issues are happening only in plain UT.

Funny stuff notes:
My enemy tracker feature pointed my steps to cannons. As result:
- I noticed that paths are working properly (it's a bit heavy to see route cache beacons at those ranges...);
- I telefragged them properly.

The structure - I've done my desired rebuild as FraGnBraG told about sliders... in 469. Result = 59 zones - I did not find any BSP bug so far, I'll keep looking... Map has lost around 1 MB.
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by Gustavo6046 »

sektor2111 wrote: Mon Dec 21, 2020 11:21 pm When another player is joining later, his "Train" copy will be different in first second from whatever server version in that moment,
Not at all. If the client can know the serverside position of the train at time t, the position at t + X for any positive value of X will be known, which means the train's position will be known at all times, AND consistent across clients. I would suggest subclassing Mover to implement the nitty-gritty of this, though -- using a simulated function to move along this trajectory over time, and I mean setting the position to an interpolated value scaled by TimeDelta rather than adding to it --, in effect telling the Engine that for this Mover we only need very simple behaviour and want only as much to be propagated to the clients. Maybe further values don't even need to be replicated at all, just damage calls if any pawns are encroached!

Either way, the server copy of the train is authoritative; it does not matter if client A and client B's copies differ ever-so-slightly due to lag. All concrete consequences (getting killed by the train) will remain synchronized and known to everyone, clients will know how (not) to be killed by the train, and everyone knows roughly where the train is at any given point in time.

But if you want to eliminate the jankiness of the train dragging a player (which it does do), I'd suggest either moving touching players 'manually' in the code in a simulated function in said Mover subclass, or just making the train lethal to just the touch (which I believe would be a bit more realistic -- you wouldn't try to poke a bullet train as it passes by in high speed, would you?), and more fun.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by sektor2111 »

You can experiment this thingy if exist any desire for plain UT, me one I'm not using that and then... I don't have serious issues here...

In other hand for saving number of actors hosted by server, I believe all AmbientSound actors can be sub-classed and completely moved in client and maybe more things replicated (as decorations, etc), this will help various mods "foreaching" through actors in server, this would need some extra work for creating client scripts but I think it can be helpful for speeding up server's task and causing a more accurate replication when less things are using channels - Freeky_R... whatever map it's an evidence that a less loaded map works more smoother with these lights. I'm thinking...
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by Gustavo6046 »

I don't know, I just wanted your opinion on it. I've always been in awe of the enigne's replication, and I feel like network code today is an underrated skill and that ergo many games today can be pretty bad at implementing proper multiplayer compared to UT. Although then again good netcode is usually born out of necessity, like how UT had to play well over dialup connections and whatnot. I can't help but feel like the existence of the third world should be sufficient to consider putting a modicum of effort into optimization, for both budget hardware and slower DSL Internet connections. I might be a little biased, though, since I'm from Brazil, but imagine how many more sales for game studios if a broader audience can enjoy the game! It does pay to not be half-assed.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by Gustavo6046 »

Hello from the future!

sektor's edit of the map is actually underappreciated. He makes it run a lot stabler and smoother!

The original map gets veeery slow with X-Vehicles peppered in it. I figure it's related to the pathing, since with sektor's it's a different story altogether!

Thanks sektor :)


On a side note, I might just revive this event in the foreseeable future! I've been thinking about writing a mutator that automatically peppers the X-Vehicles for you. If that works well enough, the ETSD reboot might have a tiny... twist! :D

sektor2111 wrote: Sun Dec 20, 2020 10:29 pm I practiced these stunts a few times in the past but... still having InventorySpot1000 as the first one... and then the total clean-up does some wrapping.
Anything different if you reorder all Inventory to Last, and then the Pathnodes?
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by sektor2111 »

Gustavo6046 wrote: Fri Mar 04, 2022 9:21 pm Anything different if you reorder all Inventory to Last, and then the Pathnodes?
As far as I understand scanning network for certain Objective/Inventory starts with the nearest node to target (if I'm not mistaking), route is linked later and closer nodes are wrapped as routecache points.
The stage: for a quick process I think goals are better to be wrapped based on the order of nodes for the desired route, but in DM are other factors in account: what is the desire level and where is placed this target. Here engine runs iterations, the fewer are nodes, the faster is the process and no denial comes from engine. When stage is full of paths, Pawn might not lead to a far away goal, but it tries to find a route to a random InventorySpot as an alternate option. If said InventorySpot has no incoming paths (is the nearest node heading to itself) next stage is wandering around until wandering timer expires and it will retry another roaming cycle. Here I tried to minimize number of nodes and ReachSpecs but... there are multiple directions and then certain route being ordered as last nodes, it goes to a full process of all network, this will result in reaching at boundary in random moments. When message is printed in log that's a failure, Pawn actually cannot go where wants but it takes an alternate option if that new one is not too far as well. These big stages are out of Engine in majority of cases and then... if you can add paths manually you can earn something or else results are having less efficiency, as you could see before there are several areas where Pawns are not roaming - these are too far, too many nodes are processed and then... nothing happens there.

I'm drawing another conclusion. Imagine a spiral (or a sort of Zig-Zag tunnel) from East to West going through 1050 PathNodes and 2200 ReachSpecs from a PlayerStart to a HealthVial. One Bot added I believe won't go anywhere too soon. Reasons:
- heading to an Inventory stops perhaps at 500 Nodes;

Code: Select all

FLOAT APawn::breadthPathToInventory
....
while ( nextnode->nextOrdered && (nextnode->nextOrdered->visitedWeight < endnode->visitedWeight) )
					{
						numList++;
						if ( numList > 500 ) // LOL !!!
						{
							//debugf("Breadth path list %d", numList);
							return 0; // Drop it
						}
						nextnode = nextnode->nextOrdered;
					}
- heading to InventorySpot as target-goal stops at 1000 Nodes (or less...).

Code: Select all

int APawn::breadthPathFrom
...
while ( nextnode->nextOrdered && (nextnode->nextOrdered->visitedWeight < startnode->visitedWeight) )
							{
								numList++;
								if ( numList > 500 )
								{
									debugf( TEXT("Breadth path list overflow from %s"), start->GetName() );
									return 0;
								}
								nextnode = nextnode->nextOrdered;
							}
...
...
		if ( bSinglePath && ( n > 4) )
			return 0;
		if ( n > 1000 )
		{
			debugf(NAME_DevPath, TEXT("1000 navigation nodes searched from %s!"), start->GetName() );
			return 0;
		}
Result: Even if you are under 3000 ReachSpecs, Engine simply works against itself in such a stage. Claiming "Improved paths" by adding nodes actually doesn't improve anything, these are just "fake news".
User avatar
TankBeef
Masterful
Posts: 585
Joined: Tue Apr 13, 2021 12:56 am

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by TankBeef »

Gustavo6046 wrote: Fri Mar 04, 2022 9:21 pm sektor's edit of the map is actually underappreciated. He makes it run a lot stabler and smoother!
Wait...did you say... :shock:
sektor2111 wrote: Fri Dec 18, 2020 5:21 pm Here is done some version with paths tweaked more or less manually... Not for NewNet yet but other teleporters.
DM-XC-EpicTownV2A_rS2903.7z
Ohhhhh!!! Wow, there is a Sektor'd version!!! :rock: I have to grab this. :mrgreen:
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: UT99.org EpicTown ShowDown - Get-Together Of The Century!

Post by Gustavo6046 »

Yup! Probably easy to miss, but yeah.

My next short term goals are–
• X-Vehicles universal auto-spawning (UAS) mutator
• X-Vehicles performance optimization

With Buggie's approval, of course :)

Those two things will facilitate a lot a future reboot of EpicTown ShowDown with a.. spin... ooh... bet you can't guess what it is! At all!... maybe.... um...
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
Post Reply