Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replication Support #15

Merged
merged 9 commits into from
Jul 12, 2020
Merged

Conversation

senfkorn92
Copy link
Contributor

Added character states replication, support for mantling (on static and moving objects), rolling, jumping and landing.

…d moving objects), rolling, jumping and landing.
@dyanikoglu
Copy link
Owner

Looks interesting, I will review it asap 👍

@senfkorn92
Copy link
Contributor Author

Thanks 😃. Forgive me if my syntax is unprofessional or inefficient. Was mainly doing this for the practice. Thanks for your work as well. The codes seem to perfectly translate the blueprint version accurately so reading the code was super easy

…RagdollLocation server variable to prevent the character from clipping through the floor
@dyanikoglu
Copy link
Owner

Sorry for not responding back, I'm trying to find some free time for review. Probably will have some this weekend :)

@dyanikoglu
Copy link
Owner

dyanikoglu commented Jun 28, 2020

A few points;

  • Ragdoll root point is not synchronized between clients, causing character position to teleport into somewhere else when quitting from ragdoll mode.
  • While running, immediate 90 or 180 degrees turns causing stuttering, because of server trying to correct rotation of the client.
  • Rolling causes stuttering on client-side, and also character mostly rolls into incorrect direction
  • While aiming with a gun, changing aiming rotation causes stuttering on the aiming character for observer clients.
  • Turn in place doesn't work on client-side.

Unfortunately, I can't merge it into master at this state, since it's facing most of the same problems with my v2 implementation.

@dyanikoglu dyanikoglu self-requested a review July 2, 2020 14:38
@dyanikoglu dyanikoglu added the enhancement New feature or request label Jul 2, 2020
@dyanikoglu dyanikoglu linked an issue Jul 2, 2020 that may be closed by this pull request
…Also replaced server acceleration replication with local calculations. Fixed sprint rotation animation for observing clients. Used RInterp to smooth observing client aiming rotation. Synchronized root during ragdoll by bringing over ALS_V3's mesh location calculation.
@dyanikoglu
Copy link
Owner

dyanikoglu commented Jul 8, 2020

I'm still following up your work, and it looks much better after latest commit. I will test them later today, and let you know if I face any issue. 👍

@dyanikoglu dyanikoglu changed the title Replication Support v3 Replication Support Jul 8, 2020
Copy link
Owner

@dyanikoglu dyanikoglu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@senfkorn92

I have tested your latest commit, and everything seems like working, except;

  • Turn in place still have problems on client-side, you should disable movement replication while character is stationary (so that server won't try to correct rotation of the character), that was only workaround that I can find for this issue.
  • While moving, if I enable ragdoll mode, a huge amount of force is applied into character in both server & client. Not a huge issue, but would be better if we can fix it before the merge.

Thank you for the hard work :) If you have trouble with fixing turn in place bug, I can get my hands dirty with your branch in a few days 😄

@senfkorn92
Copy link
Contributor Author

Thanks so much 😁. I don't think I've fixed every issue that you've presented before though. Some of them being;

  • Rolling causes stuttering on client-side, and also character mostly rolls into incorrect direction
  • While running, immediate 90 or 180 degrees turns causing stuttering, because of server trying to correct rotation of the client.

While moving, if I enable ragdoll mode, a huge amount of force is applied into character in both server & client. Not a huge issue, but would be better if we can fix it before the merge.

The issue above happens because I'm correcting the client's position to the server. If you'd like, I can fix it by either;

  1. Changing it so the server's mesh position corrects to the local client's place instead, I would need to implement a Server RPC of the "TargetRagdollLocation" variable to the server on tick which increases bandwidth usage.
  2. Gradually increasing the force of the client side pull which might cause the character to be unnaturally 'pulled back' over time to the server side's location.

I'm considering the second option atm with an if velocity more than threshold statement

@dyanikoglu
Copy link
Owner

Let me know when you're finished with the PR. After that, I will convert your work into new plugin structure before merging it

Copy link
Owner

@dyanikoglu dyanikoglu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for that huge contribution, I've merged master into yours and solved all of conflicts, everything seems in order.

From now, for bugs & missing features, I recommend creating new issues & branches for them.

@dyanikoglu dyanikoglu merged commit b31a4da into dyanikoglu:master Jul 12, 2020
@senfkorn92 senfkorn92 deleted the replication_hf92 branch July 27, 2020 01:41
EjunPatapon added a commit to EjunPatapon/ALS-Community that referenced this pull request Jul 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replication Support & RPC Optimization
2 participants