• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.

roguesquirrel

The Fallen
Oct 29, 2017
5,483
The explanation is pretty neat:
This actually has a very good explanation:

Every rig has two roots, the world root simply named root and the actual root for the character called Skeleton_Root this allows the animation designers to animate freely while still allowing an actor to remain stationary, this is useful for cutscene cinematics, however if root were to drift, even slightly, that would cause the runtime to update the actor's position in relation to the world root bone, as it happens the gunship's idle animation has a root that very slightly move forward each time it loops, this coupled with time gives the resulting image.
 

KarmaCow

Member
Oct 25, 2017
9,150
I wonder if this was a bug or some kind of work around for another bug.

edit: oh there is answer, neat.
 

Deleted member 12790

User requested account closure
Banned
Oct 27, 2017
24,537
Sounds like a problem with a slightly off identity matrix. The way you build a 3D scene mathematically is through a series of transformations from a common root. There are two ways to conceptualize your relationship to the world -- model view, which is transforming around a central node that represents your model (i.e. your models relationship to the world), and world view, which is transforming around the central root nodes. I.e. if you want to render a model, you begin at the world view root node, then transform over to the central node position of the model, then draw polygons relative to this central node's offset in the world. Each time you place a new polygon, you translate the entire world over to the new position. I.e. if your polygon is a triangle which, in pure abstraction, is 3 points at (0, 0, 0), (-1, -1, -1), (1, 1, 1), that describes the polygon's shape assuming it is the entire center of the world. To account for this, you shift the world over so that the point you are drawing is the center of the world.

This happens thousands of times every frame, and for both the world view and model views, you have what are called identity matricies. A matrix is a packed mathematical concept that describes multiple 3D transformations in one single containing math formula (scaling, rotation, translation). The identity matrix is basically the concept of "1" in matrix form. It is used to reference scale, as it defines the relative scale of the world, and can also be used to reset transformations when beginning a new scene. If your identity matrix is off by a very tiny amount, over time, you'll get cumulative errors. For example, Lego lord of the rings uses an identity matrix that is, by an extremely minuscule amount, is not quite "1" and thus, over time, if unchecked by a loading screen, the characters will shrink. We're talking over days of time:

EG9EFAbXkAMepvq


Soak tests are meant to reveal these kinds of bugs, it's where you leave your game running for days at a time to see if anything happens. And likely, they did notice this. But at the same time, they probably didn't care, because how many people are going to stay in this spot for days until this bug appears?
 

Space Hunter

Member
Feb 12, 2018
280
Metroid Prime had a ridiculously short dev time, but you would only be able to tell from silly bugs like these. Such an amazing game (still my GOAT!).
 

Randdalf

Member
Oct 28, 2017
4,167
There was a bug like this in a game I've worked on, but it was more like minutes than days. It happened because the default behaviour of projectiles in UE4 is to move very slowly to the right, if you don't change the settings.
 

Ryutaryi

Member
Oct 25, 2017
1,069
I thought everyone knew that about Prime. When I first played as a kid I remember thinking that my ship wanted to come along with me on the adventure when that happened.
 

Sceptre

Banned
Oct 27, 2017
345
wow thats creepy.
especially because im just now seeing the menacing grinning face on the ship. (green windows are eyes, bottom vents are teeth)
 

Finale Fireworker

Love each other or die trying.
Member
Oct 25, 2017
14,710
United States
I thought everyone knew that about Prime. When I first played as a kid I remember thinking that my ship wanted to come along with me on the adventure when that happened.

But it says it took real-time days to see this occur. How would anyone (even you?) come across this with any regularity? Who spends days in the first part of the first level?
 

Ryutaryi

Member
Oct 25, 2017
1,069
But it says it took real-time days to see this occur. How would anyone (even you?) come across this with any regularity? Who spends days in the first part of the first level?
Honestly, I don't know. When I read the thread I thought, "Huh, that sounds really familiar" and remember it slightly moving. I was young at the time so who knows what I was doing, probably just running around and aiming at every little thing.

I could be totally wrong about it, but I do remember reacting to the ship being a little closer.

Edit: Metroid Prime was also my first first-person game outside of that green vector tank game so I messed around a lot, and I spent a lot of time in that room since I was afraid of going forward after watching my brother play it.
 
Last edited: