English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.WinUAE (https://eab.abime.net/forumdisplay.php?f=5)
-   -   Netplay on Winuae...when? (https://eab.abime.net/showthread.php?t=106538)

nivaria 09 April 2021 00:53

Netplay on Winuae...when?
 
Why not interest in adding network play ability to the latest WinUAe? or any version of lastest WinUAE?


The winuae kaillera version is very old, more than 15 years old.
The versions of FS UAE or Amigalive depends on the servers, and many times at least in my case I have a lot of lag.



If a new version of the current Winuae was created with kaillera module I am sure it would be a rebirth for Amiga games

BeamCoder 09 April 2021 07:21

How about GGPO instead of Kaillera?

https://www.ggpo.net/

It's used in emulators like Fightcade. https://www.fightcade.com/

DamienD 09 April 2021 12:06

Yeah it would be cool to add netplay to WinUAE :great

I don't use FS-UAE, for me this is it's only advantage over WinUAE, and would be the only reason I'd ever change over...

Unfortunately I don't think Toni is interested though; shame.

Maybe we could get together a kitty, say £10 each from people that want this implemented... might help Toni with motivation :p

Radertified 09 April 2021 15:53

Quote:

Originally Posted by DamienD (Post 1475778)
Unfortunately I don't think Toni is interested though; shame.

Toni's expressed interest in the past. It's been a while but I believe he wanted a simple and maintained net API before he would consider it.

EDIT: Apparently I'd suggested enet a few years ago :)

Mclane 09 April 2021 16:08

I can't imagine Toni would want to interface with a 3rd party app, the nightmare of bug reports would be a killer. So unless Toni wants to code it in which I doubt as its more about the machine working as it should than fun but trivial things..

The only one who knows is the man himself...

thd79 06 September 2021 15:07

Quote:

Originally Posted by Mclane (Post 1475844)
I can't imagine Toni would want to interface with a 3rd party app, the nightmare of bug reports would be a killer. So unless Toni wants to code it in which I doubt as its more about the machine working as it should than fun but trivial things..

The only one who knows is the man himself...

Well now GGPO is not a 3rd party app, it is an open source library. Depending on how an application is structured, it's not a huge thing to integrate. It would be amazing if it was added to UAE (FS-UAE or WinUAE) one day.

R-TEAM 06 September 2021 15:44

have used FS-UAE self over years (before i full switch to the more advanced and maintained WinUAE) and its NetPlay works most times good ... but the emu is way behind WinUAE and on windows it is no serious alternative to WinUAE...
But - i can still "NetPlay" - with WinUAE ..... flawless ... easy ...
The "secret" is -> Remote Play on Steam ...
You can set it, that Steam practicaly "every" programm accept for Remote Play ..
Have doing this with WinUAE ... StarCitizen ... WinVICE ...and a couple others ...
The only "drawback" is >
both musst have STEAM
the "server-PC" musst be powerfull enough to play the game and stream in realtime an video stream to the "client"
you musst a bitt frickle to get it running for more complex games (like StarCitizen , where start first an launcher and then the game self)

Regards

zambot3 07 September 2021 11:49

Can you make a video for example?

thd79 07 September 2021 14:30

Quote:

Originally Posted by R-TEAM (Post 1505166)
have used FS-UAE self over years (before i full switch to the more advanced and maintained WinUAE) and its NetPlay works most times good ... but the emu is way behind WinUAE and on windows it is no serious alternative to WinUAE...
But - i can still "NetPlay" - with WinUAE ..... flawless ... easy ...
The "secret" is -> Remote Play on Steam ...
You can set it, that Steam practicaly "every" programm accept for Remote Play ..
Have doing this with WinUAE ... StarCitizen ... WinVICE ...and a couple others ...
The only "drawback" is >
both musst have STEAM
the "server-PC" musst be powerfull enough to play the game and stream in realtime an video stream to the "client"
you musst a bitt frickle to get it running for more complex games (like StarCitizen , where start first an launcher and then the game self)

Regards

Steam Remote play works ok for slow paced games, but not for fast games like SWOS. For this, rollback/ggpo netcode is needed for a truly playable online experience that can match offline.

R-TEAM 07 September 2021 15:16

wrong - no visible lag with StarCitizen on the other end ...
and this is rely demanding on the video bandwidht ....

Radertified 07 September 2021 18:41

The problem with ggpo is it's not cross-platform. Granted it wouldn't matter for WinUAE since it'll work with ggpo just fine, but it would make sense to implement this once and run on the main platforms (Windows, Mac OS X, Linux).

IMHO a library would need to be:

- Cross platform
- Maintained
- License compatible
- Simple to implement

My enet suggestion still stands as it's cross platform, maintained, MIT licensed and simple to implement. That said, I have no idea how it actually performs compared to something like ggpo.

thd79 08 September 2021 02:19

Quote:

Originally Posted by Radertified (Post 1505337)
The problem with ggpo is it's not cross-platform. Granted it wouldn't matter for WinUAE since it'll work with ggpo just fine, but it would make sense to implement this once and run on the main platforms (Windows, Mac OS X, Linux).

IMHO a library would need to be:

- Cross platform
- Maintained
- License compatible
- Simple to implement

My enet suggestion still stands as it's cross platform, maintained, MIT licensed and simple to implement. That said, I have no idea how it actually performs compared to something like ggpo.

enet is a different thing really - from what I can see it's a lower level, general purpose library that provides a fairly thin cross platform layer on top of UDP. It looks comparable to something like libwebsockets. You could use it as a building block, but you'd still need to write the application layer.

GGPO is a library that deals specifically with low latency P2P gaming, and the api is designed with emulator integration in mind (it started off being bundeld with FBAlpha). It's pretty much a plug and play library(*) that gives you almost lag free netplay with a simple, logical api. It deals with remote input, keeping the games in sync, etc. Set up some callbacks, provide the IP addresses, and go.

(*assuming certain things)

thd79 08 September 2021 02:20

Quote:

Originally Posted by R-TEAM (Post 1505312)
wrong - no visible lag with StarCitizen on the other end ...
and this is rely demanding on the video bandwidht ....

Trust me, there is input lag for the remote player. It's not a fair way to play, as the host gets to play lag free, while the remote player does not.

Radertified 08 September 2021 07:14

Quote:

Originally Posted by thd79 (Post 1505403)
enet is a different thing really - from what I can see it's a lower level, general purpose library that provides a fairly thin cross platform layer on top of UDP. It looks comparable to something like libwebsockets. You could use it as a building block, but you'd still need to write the application layer.

GGPO is a library that deals specifically with low latency P2P gaming, and the api is designed with emulator integration in mind (it started off being bundeld with FBAlpha). It's pretty much a plug and play library(*) that gives you almost lag free netplay with a simple, logical api. It deals with remote input, keeping the games in sync, etc. Set up some callbacks, provide the IP addresses, and go.

(*assuming certain things)

That's true. ggpo takes care of a lot of things that enet does not, so it's definitely a better option. As I said, my only gripe with it is it's not cross-platform.

But thinking about it, WinUAE runs just fine under Linux with Wine so maybe that's not an issue.

R-TEAM 08 September 2021 12:15

@thd79
from "which" input lag we talk ...
The lag that come from non cycle exact performing of the emu on the Host side - as it not run in the real frame rate ?
The lag that come from an cheap usb joystick adapter as the poll frequency is to low for frame exact input ?
The lag that come from the difference from CRT <> LCD monitor ?
or the lag that come from the diffs in one of the above between host <> client ?
... or , finaly, from the lag that comes from the network connection self ... that is miles better on an proffesional , wide range tested environment like steam ... as in any third party network patchwork .....

it looks you know not much ...

thd79 08 September 2021 17:28

Quote:

Originally Posted by R-TEAM (Post 1505461)
@thd79
from "which" input lag we talk ...
The lag that come from non cycle exact performing of the emu on the Host side - as it not run in the real frame rate ?
The lag that come from an cheap usb joystick adapter as the poll frequency is to low for frame exact input ?
The lag that come from the difference from CRT <> LCD monitor ?
or the lag that come from the diffs in one of the above between host <> client ?
... or , finaly, from the lag that comes from the network connection self ... that is miles better on an proffesional , wide range tested environment like steam ... as in any third party network patchwork .....

it looks you know not much ...

You forget the lag that a modern GPU pipeline introduces.

But in this case, we are talking about network lag, basically ping. In a Steam Remote Play session, the remote player has additional input related to their ping. Roughly speaking, every 20ms of ping adds 1 frame of input delay. So, if I'm playing someone with a ping of 100ms, that's 5 frames extra input delay for someone. Plus ping isn't constant - so input delay can actually vary during a session.

thd79 08 September 2021 17:45

Quote:

Originally Posted by Radertified (Post 1505412)
That's true. ggpo takes care of a lot of things that enet does not, so it's definitely a better option. As I said, my only gripe with it is it's not cross-platform.

But thinking about it, WinUAE runs just fine under Linux with Wine so maybe that's not an issue.

Yes, the source code for GGPO is currently windows only, which is a pity. I'm using it myself in some personal projects, and plan to adapt it for cross platform use. It doesn't look too bad - it should just be a case of swapping out the Winsock parts for a cross platform socket library (maybe ASIO/libwebsockets/enet/SDL_Net/POCO)

R-TEAM 08 September 2021 18:26

so to sumarize ...
the network lag is only an small amount of lag that come from the whole system Host<>client and can be never soo small that an network multiplayer is at the same level as local play on WinUAE (or even real Amiga HW play) .... so the question remain why Steam remote play is "so bad" ..... it works - is fast - and actual available ...
Would i use an "in WinUAE build" network multiplayer solution ...
..... If it better than Steam (and not only theoretical on paper - in real life) ....
but as i see - it is not even clear "which" network code should be used ... from an incorporation in WinUAE from the author self foreseen .....
The "actual" best solution IS steam remote play > for an long time still ...
Simply

thd79 08 September 2021 19:31

Quote:

Originally Posted by R-TEAM (Post 1505517)
so to sumarize ...
the network lag is only an small amount of lag that come from the whole system Host<>client and can be never soo small that an network multiplayer is at the same level as local play on WinUAE (or even real Amiga HW play) .... so the question remain why Steam remote play is "so bad" ..... it works - is fast - and actual available ...
Would i use an "in WinUAE build" network multiplayer solution ...
..... If it better than Steam (and not only theoretical on paper - in real life) ....
but as i see - it is not even clear "which" network code should be used ... from an incorporation in WinUAE from the author self foreseen .....
The "actual" best solution IS steam remote play > for an long time still ...
Simply

System input lag is typically 3 frames on a PC. Another frame of lag due to the network isn't too bad. When you add 2 frames, for a total of 5 frames, it starts to become noticeably worse. When you add 3, for a total of 6 frames, fast paced games become pretty much unplayable.

I play Amiaga SWOS online all the time, using Kaillera. The difference in playability between 1 frame of network delay and 3 frames is enourmous.

Rollback netcode is a tried and tested mitigation for this problem, and has been used for over a decade in the fighting game community. It allows you to play people with far far higher pings without incurring extra input delay.

R-TEAM 08 September 2021 19:39

no doubt an diff from +1 Frame delay and +3 Delay is noticable ...
But to get an overall "only" 1 frame delay, the whole network "things" musst done in less than 20ms (on PAL 50Hz) or ~17ms (NTSC 60Hz) ... this is just as manageable on an good LAN at home - but never on Internet ... where 20ms ping "alone" would be an miracle.... so rerspectfull, I do not believe that .....


All times are GMT +2. The time now is 21:35.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04851 seconds with 11 queries