Page 1 of 1

Those decos

Posted: Sun Nov 12, 2017 8:49 am
by sektor2111
As we know so far when map uses some sort of decorations this usually heads in two ways:
1) map is more beautiful;
2) ugly crap happens when you don't see center of mesh;

However, I think something is different when map is more empty and... decorations are there only if we are playing it - in Clients Only - because client is the dude with display not server, else map has nothing by default - which means in Editor that Level looks poor decorated but in game looks better.

By toying around some spelling problem from some ZoneInfo which is not replicated to clients I went to attack client side without replication because other attempts were without success. Here I not only solved spelling problem (Zone-Name) but I went to test some decorations spawned ONLY in Client. If I could figure properly, I think these decorations added in run-time are visible all the time because are... client related things and nothing comes from server at this point, only client has them, as the decals. By turning around I did not see them vanished when client's viewport is out of their center. I have to setup a few more "BIG THINGS" to see if these are indeed visible all the time. If these are about to be "full visible" then I think from now on my crapped maps will have a different setup. So to speak if map can operate a self decorating process only in client, probably decorations are not going to be vanished at random in hoping to not wrong.
If this option is a good thing then I will go busy to create a package with a few things which can be used by "coder-mappers", or given the idea they can do this by themselves without help.

As usual - secrets are not secrets I was writing some tweaker and paths completer for map Krogaar (dated 2005 on my repository) which spams client with one of PrecipitationGenerator-s mainly useless, the other one can be fixed as it is. There is replaced "traitment" with treatment and so on...

Thanks for watching (ooops reading - youtube flaw) !

Edit: Future planning
Builder helper (my last trash) which is giving script routines to copy in UC by using Copy-Paste perhaps will be more useful for creating decorations like those original bStatic ones which will never spawn but ones which can be spawned. Add decoration, select it, push button, entire script is logged ready to be used in any sort of other package.
Hey, you will not inject stupid advertising in maps, right ? Of course you will, players must be bugged until everyone will leave UT...

Re: Those decos

Posted: Sun Nov 12, 2017 1:45 pm
by nogardilaref
Decorations or not, actors disappear if they're not relevant network wise, and in the network the actor center is the one which counts, and the moment it's not visible it becomes irrelevant so it ends up disappearing (most of the time, there are other factors at place of course). Although in case of decorations, they're generally bStatic=True, so they shouldn't have any problems whatsoever.

But then there's another thing that makes them vanish, and it's a hardcoded optimization from the engine itself, which has to do with the pivot of the mesh itself, rather than the actor.
When the pivot is not in your view, there's a point when the engine "thinks" that the mesh doesn't need to be rendered anymore, and it disappears.
It's not exactly when the pivot is not in your view however, there is some leeway in terms of the angle, but it seems a hardcoded leeway that doesn't have the actual bounding box of the mesh in consideration, so you only notice it with bigger meshes.

However there are a couple of ways to avoid this to happen:

1 - You update both the PrePivot and Location of the actor in each tick and in such a way that the pivot is always in front of you while the the mesh "looks" to be at the same exact place.
The only problem of this is that the lighting of a mesh doesn't take into consideration where the mesh is, but rather where the actor itself is, so unless the mesh is bUnlit=True, it will look weird in places where there's a good lighting contrast and color.

2 - Draw them explicitly in the canvas in some way: they could be hidden, but iterated over to be explicitly drawn.
But then, the responsibility of doing optimizations like not rendering when they're out from your frustum projection or when they are in other areas and behind BSP, would fall onto you to do them.

In the case of Unreal 227, actors actually have a setting to simply disable this pivot optimization of the engine.

Re: Those decos

Posted: Sun Nov 12, 2017 5:24 pm
by Red_Fist
Yes decos get no respect, they don't even get to be real, cuz they are named decorations :loool:

Re: Those decos

Posted: Sun Nov 12, 2017 5:59 pm
by sektor2111
Thanks so far for explanations. So far I have decorations "injected" - they doesn't exist in map. Else they spawn as stuff only in client because I had to use a SpawnNotify. In order to not develop an useless class, I simply went to complete some decorations (even some information) which will go directly in client, without any RemoteRole. So far, original MH-Krogaar might be like here:
[attachment=0]P_Krogaar.jpg[/attachment]
I gotta admit meshes here are not big, they are pretty visible completing stage, directly in desired environment - client.
I'll run a few tests and then patcher(s) will go to XC stuff thread.
The little problem:
I need a sort of badge for this patching system, people must know that maps are good as they are because are "patched" - HACKED (that's closer to the right term - being done in UT since forever) preventing them to go in deceptions at striping cache and playing OFF-LINE in a different "format".

Re: Those decos

Posted: Mon Nov 13, 2017 2:00 pm
by nogardilaref
I don't think you need to worry about that.
Most things players snatch from cache files end up not working well anyway, specially mods due to missing .int files and whatnot, so it's not expected for cache-ripped content to work well in the first place.

There are even (or at least were) a few servers which employed a simple kind of DRM in their maps, where they would work if you played in those servers, but wouldn't work if you ripped them from your cache.
I was able to easily crack them though, so I think it was just for regular players and other server admins to not steal content, not easily at least.
I didn't use those maps anywhere though, it was mostly just an exercise out of curiosity if they were easy to break or not, but case in point, it's not expected for cache stuff to work out of the box.

Re: Those decos

Posted: Mon Nov 13, 2017 11:37 pm
by sektor2111
I don't mind if people are taking stuff from cache if it's helpful for them, but if they just load blindly all craps in their systems messing up with fragments is their fault. Sample of such extra decorating stuff is addressing exactly the target map, by loading that as a default ServerActor it will be the mostly useless, this chapter is not that concerning for me, my goal is to gain a more cleaner game-play, setting up hints or whatever sensitive fixes, etc. It looks like that mesh maker is not a bad stuff after all. Client-Side can be adjusted with decorations without any Net-Code, actually everything is "local", server doesn't use these - Also for some dark areas might be helpful some light but used only in client, in fact client needs to see and hear things not server. Else some light is not that needed as long as the map contains from now on VISIBLE monsters with any matter regarding to how dark is around which I see like a nice improvement.
[attachment=1]Warn_01.jpg[/attachment]

[attachment=0]Warn_02.jpg[/attachment]

Here I had 2 stages:
a) animating with a state code;
b) nothing scripted and just using a dynamic framed texture letting natives to run - probably faster.
I went for b).

Re: Those decos

Posted: Thu Nov 16, 2017 9:18 pm
by sektor2111
I'm not going to setup a spam post but it looks like I got a confirmation. Decorations spawned with no RemoteRole in client are visible through glasses as well without to get vanished in time. I think I have to check them how do they work in a Skybox where doesn't really work in Net play. All these years we were playing with never seen decorations because of Engine's deal with replication in Net games. I think if we get over replication dealing directly with client more stuff is visible and it do looks properly - animation from some flags included.
The strategy proposal is to have a sort of spawner actor that is placed in map and... it has defined class to spawn as an internal variable. I'm not sure if this will be the strategy and not some SpawnNotify type thing but I think it worth a try.