Multiplayer: Characters based on top of a SMA, Client Character does not rotate with SMA via c++

Dear Friends at Epic,

This is a great one to try and repro, as its a bit of an involved setup

I could upload a version of my game for you to test if you think that would be better / faster!

#Video

I have posted a youtube video that clearly demonstrates the issue (in a subtle way to those not looking for it).


starting at 3min, for the rotation of client and then server character


Again note this is all occurring within my in-game editor, while in-game, the editor ui is never seen, nor is my beta watermark, or is my windows taskbar :slight_smile:

I noticed later that a .cpp path is visible, so I added to the video description “Joy of UE3 c++”

In the video around 3 minutes

I show how the client character behaves (right screen) when rotating on platform that is being rotated by the server player

next

I show how the server character behaves (left screen) when rotating on the platform controlled by the client player

This video clearly shows how:

the client player is not rotating to match the rotation of the SMA like the server player is


#Repro
In a multiplayer game:

Have a static mesh actor with replicating movement and all other things about it replicating

during the game time, have this Static Mesh’s Rotation be changing, not using matinee, but using c++, perhaps to have its yaw continually rotating.

I was using

SelectedActorTransform = GetTransform();
SelectedActorTransform.ConcatenateRotation(RotAmount.Quaternion());
SetActorTransform(SelectedActorTransform);

#The Issue

In my case, using Beta4, I notice the following:


Server’s Character

In a listen serer, the Server’s Character rotates perfectly, 1-to-1 for each angle of change of the SMA, so the character looks firmly based on the rotating SMA

The client machine’s also see this perfect smooth behavior of the server’s character

Client Characters

Client characters sometimes do not rotate at all when based on the rotating SMA, and if they do, they do so sporadically, not with a 1-to-1 motion for each angle of change of the SMA.


This inconsistency makes it hard to design a multiplayer platforming game

If there is a way around this please do let me know!

Again, this is all done in the c++ , nothing done in matinee or anywhere else

:slight_smile:

Rama

PS: a pic for your ref

Hello Nathan,

We have determined that this could be an internal issue, and we have created a backlog item to ensure this is looked at. Thanks for taking the time to point this out, and give such a detailed explanation of what’s happening!

You’re welcome John!

I’m happy to help out!

I want to help see UE4 become ever-more awesome!

Rama

Could you try typing “displayall Character Movementbase” on both client and server, and compare the results? That would give us clues and tell us if the clients are not setting the movement base right on the pawns that are not rotating.

Thanks for your help Dave!

Again I can reach stable point in my build and upload my game if you think that would be easier

Here’s the info you request

Please note that in the pictures, only one character is based on the SMA per picture, and the other player is simply viewing (and is actually controlling rotation of the SMA

listen server character is based on SMA

client character is based on the SMA

In the pics above, VictoryWallBP is the name of the in-game move-able object that the characters are based on, so that is a good sign :slight_smile:

The main issue is that while actually rotating, the client does not always stay based properly and rotate in same exact way as the SMA, as the SMA is being rotated by the other player.


In a test I did just now, after taking these pictures,

the server: rotation of character perfectly matches the rotating SMA

the client: rotation of character did not change at all, and the screen of the client “jitters” in a very distracting way

I have posted a youtube video that clearly demonstrates the issue (in a subtle way to those not looking for it).



Again note this is all occurring within my in-game editor, while in-game, the editor ui is never seen, nor is my beta watermark, or is my windows taskbar :slight_smile:

I noticed later that a .cpp path is visible, so I added to the video description “Joy of UE3 c++”

In the video around 3 minutes

I show how the client character behaves (right screen) when rotating on platform that is being rotated by the server player

next

I show how the server character behaves (left screen) when rotating on the platform controlled by the client player

This clearly shows how:

the client player is not rotating to match the rotation of the SMA like the server player is

Thanks all the info, Nathan. This looks like a bug on our end, we’ll need to take a deeper look into it. I’ll add a few more relevant engineers to this thread for visibility.

okay great, let me know how it goes!

Again if you ever want my game as an upload on dropbox to test, let me know!

Rama