1 (edited by justice0man 2021-01-29 06:43:11)

Topic: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

I sent several friends a build of my current UFE Project to try out the netcode and it felt awful (with 80 ping). If I add a lot of delay frames, there is no visual noise, but I want it to be able to play well with no delay frames. I play matches in Fantasy Strike with 150 ping and it feels offline, I don't see rollbacks and Fantasy Strike doesn't use delay frames.

How can I replicate such a good netcode?

I've seen that implementing GGPO in Unity is possible, but how would I go around implementing it with UFE?

github.com/HouraiTeahouse/Backroll

Thanks!

Share

Thumbs up Thumbs down

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

UFE's network relays on Photon servers.
If one of the players is too far from the server, ping will most likely increase.

One way to solve this is using a direct P2P connection. I'm not sure if this option is available in the version you have, but you should be able to setup a host and join it using the IP with the UI screens "HostGameScreen.prefab" and "JoinGameScreen.prefab" and assigning it under Global Options -> GUI -> Screens.

As far as the netcode goes and how good it compares to GGPO, they are both systematically identical.
Rollback netcode is just one part of a big puzzle.

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.
Don't forget to check our discord channel.

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

I have UFE 2.3.0 Source.

It seems I can't. In this version the "HostGameScreen.prefab" makes me create a room (I guess it uses PUN) while "JoinGameScreen.prefab" tells me to input the Host's IP. They don't seem to be compatible.

What should I do to make it work?

Share

Thumbs up Thumbs down

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

Very sure a direct connection in the scripts current form is always going to send data through Photon. Photon does cause a lot of lag, within Terrordrome since we are now on steam we are using steam p2p. This has nat traversal so no need of port forwarding and can work over mobile networks with strict nats.

Another option to use is LiteNetLib but would need a server yourself for Nat traversal tried doing this myself but could never get it to work.

Terrordrome Reign of the Legends Out now on Steam!!
https://store.steampowered.com/app/1291 … e_Legends/
Terrordrome Project Manager

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

So, its not the fact that devs are using the free version of photon, instead of upgrading? or is there a difference?

Share

Thumbs up Thumbs down

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

Right now we end up with one of our programmers trying to implement ggpo since we can't figure out how to fix the desycing issues with the native rollback. But we're using v2.1(can't upgrade project) I'm not sure if it's still needed if you're in a newer version though.

Share

Thumbs up Thumbs down

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

xHerox wrote:

Right now we end up with one of our programmers trying to implement ggpo since we can't figure out how to fix the desycing issues with the native rollback. But we're using v2.1(can't upgrade project) I'm not sure if it's still needed if you're in a newer version though.

I'm talking about upgrading photons server. They have other packages you have to pay for.

like Photon PUN 2+ https://assetstore.unity.com/packages/t … n-2-120838

or other packages like https://www.photonengine.com/en-US/PUN/Pricing

Not sure if they will make a difference, just saying.

Share

Thumbs up Thumbs down

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

xHerox wrote:

Right now we end up with one of our programmers trying to implement ggpo since we can't figure out how to fix the desycing issues with the native rollback. But we're using v2.1(can't upgrade project) I'm not sure if it's still needed if you're in a newer version though.

Since your doing this would mean your having to create your own deterministic way of checking inputs but good luck, changing to over to use true ggpo might help. But you have to make sure everything that's going to change the direction of a fight has to be tracked. This could be the issue your having to UFE's own netcode whatever you created you have to make sure it's being included in the tracker in some form. In Terrordrome we just recently have been able to get soild matches we are getting close to a desync free online experence.

Storm87 wrote:

I'm talking about upgrading photons server. They have other packages you have to pay for.

like Photon PUN 2+ https://assetstore.unity.com/packages/t … n-2-120838

or other packages like https://www.photonengine.com/en-US/PUN/Pricing

Not sure if they will make a difference, just saying.

It will still have the issue of having to send data from one users PC to the cloud then to the opponent then back to you. Fantasy Strike in fact uses pure ggpo and doesn't use UFE's own rollback netcode. As for what network asset they are using I'm not sure I know they have everyone connect to a server for match making due to cross-play with PC and consoles.

Terrordrome Reign of the Legends Out now on Steam!!
https://store.steampowered.com/app/1291 … e_Legends/
Terrordrome Project Manager

9 (edited by Storm87 2021-02-04 11:21:00)

Re: How do I improve UFE's netcode so that it is as good Fantasy Strike's?

Mistermind wrote:

UFE's network relays on Photon servers.
If one of the players is too far from the server, ping will most likely increase.

One way to solve this is using a direct P2P connection. I'm not sure if this option is available in the version you have, but you should be able to setup a host and join it using the IP with the UI screens "HostGameScreen.prefab" and "JoinGameScreen.prefab" and assigning it under Global Options -> GUI -> Screens.

As far as the netcode goes and how good it compares to GGPO, they are both systematically identical.
Rollback netcode is just one part of a big puzzle.

Is here a way we can host without using IP? Or creating a room/join room require like in other fighters?

example:

https://youtu.be/n-yA7_DnwDQ?t=469

Share

Thumbs up Thumbs down