Mesh thoughts

Discussions about Coding and Scripting
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Mesh thoughts

Post by sektor2111 »

While I was doing some Level for a self mapping contest (no comments here) something has left me with both holes opened: ass and mouth in the same time. Of course this is not funny at all. Each day I'm wondering if one of those members designers from Factory was not retarded or consumer of whatever drug types - nasty ones - chemistry is complex after all, or it was an intruder entered to do damage...
Decoration class called Moon3 has a collision how I never thought about: This is cylinder from top view
[attachment=0]No_Balls.PNG[/attachment]
Is not about a corrupted file or such drive error. Code is a valid evidence of dumbness:

Code: Select all

#exec MESH ORIGIN MESH=Moon3M X=0 Y=10000 Z=0 YAW=0 ROLL=7
Why the hell you didn't put origins out of work-space for being more interesting ? If this is set with a collision it would be fascinating to see "hitlocation". Actually location has nothing to do with collision cylinder.... %¤#%¤%##&)((/diots...
The question is why the heck I find these only when I'm drunk ? How do I fix this ?
Nope, I'll use the good part of things - other classes.
Attachments
No_Balls.PNG
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: Mesh thoughts

Post by nogardilaref »

I can actually think of a very good reason: as you can see, that's a mesh to represent a moon, so it's not something you, as a player, is meant to ever collide with.

Instead, a moon is meant to orbit around another planet, and the easiest way to do it is to offset the center of the mesh, so that when you set a rotation rate on that moon, instead of simply rotating around its axis, it rotates around something else, always facing the planet it's orbiting (like our own moon).

It's possible to fix this however, by using the PrePivot, and setting its vector in order to negate that offset.
Unfortunately you cannot set it directly as an editable property in UEd, you would need to create an actor which specifically allowed you to tweak the PrePivot (like PivotLocation and then have it set PrePivot on BeginPlay or something).
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

Really ? This is the result of a lost mind, Moon2 which is part of the same family has just a smaller collision but is centered correctly so can be mapped well, not to mention that Moons floating can be attached by invisible movers without issues, there was not needed messing up the mesh like that. Another thing... How about pupae ? Probably this is another sort of moon floating on space... that Y=10000 made me to think different because Y distance is not 10000.
[attachment=0]Other_Orbit.PNG[/attachment]

Center is over mesh and let me tell you something. When I was working at MMGame the main issue was pupae vs BaseQueen. Actually queen could not hack at all a stupid pupae. Pupae was cheap as cost and pretty much efficient against Queen - game turned into a mess - all these after I wrote some Bot controller. Probably another time I'm gonna do something trying to fool with that pivot...
Attachments
Other_Orbit.PNG
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: Mesh thoughts

Post by nogardilaref »

Yes, there are plenty of ways on how they could have gone with that, but between setting up a mover and all the stuff that comes with it, which has online issues handling attached actors iirc, and simply importing this particular decoration with an offset, they opted by the quickest and was certain to work, just like it often happens in all software even nowadays due to time constraints beyond the devs control.
They never created this decoration to appeal to the actual mappers into using it, it had a specific purpose and it fulfilled it.

Other planets and moons might be centered since they may have been used in other contexts in other maps where they didn't need to rotate around other planets.
I would try to check the original Unreal maps if I were you to check on whether or not this is factual, so you can actually at least try to understand the reasoning behind these decisions.

As for the pupae, I cannot really think of a good reason other than it was probably too easy to kill a pupae if they centered the collision, since they would need to increase its height as well because of the pupae's head, so it might be simply a balancing issue they spotted when testing the game and adjusted. Or it could simply be that the model center was simply that one in the program the artist used, and they rolled with it since it didn't prove to have any issues back then and thus no one noticed it.
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: Mesh thoughts

Post by JackGriffin »

Is it wrong that I'm more troubled by the roll of 7 than the origin offset? Like nog said I've manipulated the hell out of origins to make them do what I needed but a roll alteration of 7 on a sphere is such an arbitrary value that now I want to know why.

So here we go down this road. Where was this mesh first used? IIRC it was in the Unreal campaign when you got to the ship. There was a layout of the local system I think? I'll have to check.
So long, and thanks for all the fish
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

nogardilaref wrote:As for the pupae,....and they rolled with it since it didn't prove to have any issues back then and thus no one noticed it.
Even in original Monster Hunt with a mix of pawns actually a queen will not kill pupae that much (if is annoyed by them) only from a good range or... telefragging them, queen's melee attack against pupae is useless. You should put your hand in MMGame for a minute to see what I mean, it uses child of default monsters, if in MH or COOP or SP is not that noticeable, all messed up crap from UT shows up in MMGame because nothing else was making teams with monsters regarding to that crap original attitude code. And issues are a lot as long as projectiles are addressing classes (not Instigator) - so they had to be rewritten. SkaaajProjectile won't hurt a Skaarj (team is ignored here), Boulder won't hurt Titans (team again is ignored) and so on. Like I said I did child pawns, I was working with Pawns - It's all a mess, is pointless to convince me about a good work because ScriptedPawn is a default GARBAGE. Also related to mesh and centers and that sh!t, do you know why Slith is immune at "corroded" damage ? Because the trash is hitting itself from fire offset used, that's why - the same does the Skaarj while is running and firing, more rare but still happens. Change SkaarjProjectile with "Arrow", idiots are bleeding hurting themselves in attack - not to mention melee attacking themselves. Because GameInfo doesn't include messages about killing creatures this is a cheap mask to not reveal the reality when farts are ruining themselves.
Why do you think I was wasting time to conform UnrealShare into another package ? Because that file from UT is not that changed from Unreal, is a piece of crap. Sliths can now do steps and firing like Kralls - no more pain. Monster GroundSpeed from last MH works is lowered else more monsters would kill themselves. The cherry from cake is that PeaceRocket - never seen something more retarded, it looks for a nearby pawn for damaging it - instigator is not an exception - imagine the action :barf: .
I wanna see here other things and fixing methods rather than excuses because I'm not interested about "reasons", I want solutions, not these "no one noticed" because it was noticed already, EXU is a sample...

But for me is probably time to put some love in actor's PreBeginPlay, and then re-checking Projectile class and... to hope that meshes are not crashing as TrophyDude does with Editor :sad2: .
User avatar
Barbie
Godlike
Posts: 2792
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Mesh thoughts

Post by Barbie »

JackGriffin wrote:a roll alteration of 7 on a sphere is such an arbitrary value that now I want to know why.
Not only Moon3 has this roll value but the parent class Moon also (which looks like an Earth). I guess it should show the axial tilt of a planet. (According to Wiki the roll of 7 is equivalent to ~10 degree; our earth in fact has 23°.)
JackGriffin wrote:Where was this mesh first used?
See Unreal maps:
  1. QueenEnd.unr (circled Moon3 usage)
  2. endgame.unr (circled Moon3 usage)
  3. Gateway.unr (none circled Moon3 usage)
  4. Unreal.unr (non circled Moon3 usage)
The "correct" usage - another planet is placed in Moon3's pivot so Moon3 circles around it - can be found in (1) and (2). But even there the mapper forgot to reset Moon3's Rotationrate.Roll from its default 100 to 0. So both Moon3 are not only circling on the horizontal plane but move up and down also.
Attachments
Moons in QueenEnd.unr.jpg
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

These are also doable by using Movers and NORMAL meshes. Probably if you wanna see an evidence, look for map BombingYard][ posted somewhere. There is a plane rotating over yard and bombing area - available including ON-LINE, yeah, that simple. You don't even need Moon for making some planet like stuff, as you can use in the same way a Candle2 or Knife without to mock with useless IntroDude spreading animations errors related to meshes which doesn't have them.
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: Mesh thoughts

Post by nogardilaref »

Playing a bit the devil's advocate here, but when you do professional software, specially things like games, and when you have schedules and planned roadmaps to create things, pragmatism tends to beat idealism.

In other words, when doing these things professionally, the question that will pop up every single time is "what's the simplest way of doing this?", and then checking the pros and cons of each potential solution.
If the simplest way does not have any cons, relative the actual objective of whatever has been decided upon that is, then that way is used.

So, whoever did this actually did it in the simplest and most efficient way one could have done it at the time: offsetting the center during the import, done.
Since it's for a specific effect in specific areas using a very specific class.
It's actually quite a smart solution when you think about it. I don't think it even crossed their minds "well, if I offset this, the modding community will hate me", specially since until Unreal came out, modding support was not even a real objective at all, it was more like a consequence.

Furthermore, you keep talking about how the Queen cannot beat its own Pupaes... since when was that even supposed to happen in Unreal?
You need to put things on the perspective they were originally thought out, rather than lash out over the fact that they do not work well for things the community itself made because they weren't done in the way you would find optimal.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

nogardilaref wrote: Furthermore, you keep talking about how the Queen cannot beat its own Pupaes... since when was that even supposed to happen in Unreal?
Why you don't check "BUMP" from ScriptedPawn first ?

Code: Select all

function Bump(actor Other)
{
..
		if (Pawn(Other) != None)
		{
			AnnoyedBy(Pawn(Other));
...
function AnnoyedBy(Pawn Other)
{
	if ( !bCanBePissed || Other.bIsPlayer || (Enemy != None) || (Aggressiveness < 0.4)
		|| (AttitudeTo(Other) > ATTITUDE_Ignore) || (FRand() > 0.2) )
		return;

	Hated = Other;
}
...
// Next sh!t is performed by SetEnemy
There isn't any sort of check check for friend pawn actor or whatever, it's just a stupid code written by a mind full of aggressiveness based on some alcohol. Are you somehow an Epic dude looking for excuses because of the mess done ? This doesn't work trust me, ask Waffnufly (and the same dudes). Yeah, its all a pure garbage ignoring dumb excuses.
That "other" is enemy based on "damageattitude" so... what's next is easy to predict.
I mentioned Sliths Skaarj Titan in the same way NOT ONLY pupaes - find explanations there, this was their coding level, do not try future excuses. such methods won't work.

I'm still waiting solutions not explanations. The only valid explanation is: Low Skilled PROGRAMMING LEVEL at basics - real life things because complex stuff was done extremely well. That is the reality. Don't not try to deny that.
Yeah, I'm agree to point my craps in public too. I'm not disturbed at all. Real things are appreciated by anyone. People need to know the truth. I'm even open to debate my history of coding and my brain content from that time if you want to know these things because I'm not ashamed about my decisions and I will never be...
Ban me if you don't like what I'm saying. Is pretty simple, after all.

If excuses spree will continue I will not reply nothing here and will fix things how I think without talking about what I'll do.

In a possible far future, when a well polished server will pop up from nowhere don't ask who is admin there...

To summarize:
- natives = bad;
- UScript = bad;
- meshes = bad;
- textures = who cares ?
Draw your conclusion, excuses are off-topic.

But these can be solved and that's the spirit of competition not excuses.
Last edited by sektor2111 on Tue Sep 05, 2017 8:52 pm, edited 1 time in total.
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: Mesh thoughts

Post by nogardilaref »

Why do you always have to be so dramatic and take everything on a personal level? Damn... :omfg:

Did you even ever work as a professional programmer at all? It's very easy to make all sorts of good thought out decisions from the couch at home while having all the time in the world and not having to satisfy a CEO or whoever is in charge of you, and no priorities to take care of.

Sure, looking at the latest state of things, there's a ton of stuff that either doesn't work, or works but badly, or wasn't well designed, or implemented at all.
The greatest example is the fact that as an OO language that UScript is, almost everything Epic created with it violates every single good programming principle when working with OOP, it violates every single one of the 5 SOLID principles, and it's inconsistent throughout the actors created.

But then again, it's easy to look down on it and call them whichever names you possibly could imagine in order to insult them, and pretend that they were incompetent developers, without having been there in the development process during that time and making all the decisions that would lead to the game's success.
Sure, there are things which are quite well implemented, others which do not: news flash, developers are still human, if you didn't know, you know now.

Facts are facts, and fact is that regardless of their decisions, they all culminated in you being able to even have Monster Hunt in the first place, they all culminated in still having a playable and very moddable 1999 game in 2017, that's not what I would call "incompetence".
You're clearly looking at things in a very obtuse angle, you're looking at them from your own side alone, without even trying to think why they did A, B and C in the first place and in which context in the original game things were actually used, because you don't seem to actually care in the first place, you just want to rant, right?

You want solutions? I gave you the simplest one you could possibly have, and it should work for both of your complaints.
Yet, I didn't see you even trying it in the first place, so it doesn't seem to me that you want solutions at all, you seem to actually have expected to have none so you could show an example of some "irreversible hard-coded stupid error from the developers".
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

Okay, I'll do my homework with no much sharing, it's simple. Else you will not see such threads started from me from now on because you think that I want to "RANT ONLY" rather than let's see how to fix these. Perfect, now show me what you did related to fixing issues since I see that you know a lot but without posting any stuff until this moment as the user "nogardilaref", just words - 09/05/2017.
Like I said: I'm a poor security technician looking at farts who think are cool, I'm not a programmer (because I don't have time for such things and I'm not enough addicted to programming) but I can see what programmers are doing - bad luck for them - because I'm testing things... and I'm saying what I see... YES, Incompetent developers you said well here... TAKE A CHECK AT PLAYERCANSEEME(),
IT'S TRASH.
If you don't want to post a fixing code and only finding excuses about plonkers programmers then I will never make noise with such things.

Cya and best regards !
:EOL
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: Mesh thoughts

Post by nogardilaref »

So you want to be spoonfed some code, is that it? OK, here you go:
Spoiler

Code: Select all

class Moon3Fix extends Moon3;

simulated function PostBeginPlay()
{
	Super.PostBeginPlay();
	RecalculatePrePivot();
}

simulated function Tick(float Delta)
{
	Super.Tick(Delta);
	RecalculatePrePivot();
}

simulated function RecalculatePrePivot()
{
	local vector v;
	
	v.Y = 1000.0 * DrawScale;
	PrePivot = v >> Rotation;
}
This is just one way of doing it, and doesn't completely account for online play, as ideally you want to run these updates on the client alone, which would be achieved by a RemoteRole to ROLE_SimulatedProxy, some role and network mode checks, and perhaps a few more changes I am not going to look at right now.
But this is the gist of it.

Other solutions would be to simply export and reimport the mesh with what you deem to be the right center and rotation, or to go completely rocket science with it and building a native module to simply change this mesh in runtime in some way so that it gets centered, which would break existing maps relying on this in the process just so you could "fix" it.
But then again, this deco is simply just a spherical mesh for a single purpose, something you can recreate and import in seconds, so I don't even get the whole fuss about it.


From there, you want to see stuff of mine and what I have fixed and whatnot in order to prove myself to you somehow?
Yes, I could, but it's not gonna happen, that's not how things work, nor should for that matter.

There are plenty of active members in this very forum who never have shown anything of their own here specifically, but it doesn't mean they never did anything, and their contributions for any discussion are just as valuable as anyone who have shown something, and some of them might have contributed far more to the game than you think of them.
Thus, no one at all has to give you evidence of anything other than the kind that's expected during a discussion, such as this one.

You couldn't wrap your head why this deco was like this, and it was explained to you by me, and proved so by Barbie with actual map references, and ironically after all your rambling your own proposed solution is actually much worse, complicated, inefficient and hackish for the sole purpose of this specific decoration, and ironically you don't realize this yourself, since you're missing the whole overall context of why it was created in the first place.

It could be done without offsetting the center, in a very clean way that didn't involve movers at all whatsoever, even because this isn't what movers were created for.
But I will leave up to you to figure it out since you're so competent compared to everyone else apparently, and since I pretty much gave the solution away for this twice already if you didn't realize it.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mesh thoughts

Post by sektor2111 »

nogardilaref wrote:But I will leave up to you to figure it out since you're so competent compared to everyone else apparently
Comparing my posts with bullshit posted by some members "addicted" here I think I'm posting 100 times more properly and exactly - no offense just reality.

Except that "Super.Tick" thing probably your code will help - this is what I want to see not "explanations" as long as maps posted by Barbie are not added on my playground and they will never be there - there are things with no single net code which have no place ON-Line, yeah, trash out :agree1: . Else, because we have ROLE_DumbProxy we don't need simulated functions here, those are part of ROLE_SimulatedProxy. About Net stuff probably I don't have any concern, collisions are SERVER's job and "meshed" actors are replicated as said by server not by client. Yesterday I could see what RemoteRole does toward simulated/non-simulated functions while I was playing with some "dynamic lightning" mapping related problem - it will be time for showing something in the right moment not in this stage.

For the rest of fire offset problems I'm still curious to see a solution not explanations about "why that wheel it's a square" because it looks ridiculous, and explanations are making things to be more ridiculous. In each map which I do I'm writing some personal stuff and this is the reason for doing/speaking about some fixes - I need them.
Last edited by sektor2111 on Wed Sep 06, 2017 2:32 am, edited 1 time in total.
User avatar
Barbie
Godlike
Posts: 2792
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Mesh thoughts

Post by Barbie »

sektor2111 wrote:as long as maps posted by Barbie are not added on my playground and they will never be there
I remember at least two MonsterHunt maps which are a converted Unreal "QueenEnd" map and therefore have that Moon3 circling around Moon. (But I cannot remember the names of the maps atm...)
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Post Reply