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

Update Rise of Nations Extended Edition #52

Merged
merged 2 commits into from May 20, 2024

Conversation

LukeShortCloud
Copy link
Contributor

to include DirectPlay for more reliable multiplayer connections.

@LukeShortCloud
Copy link
Contributor Author

I have not personally tested this yet but I have seen many reports of this helping. The latest report being from 1 month ago.

https://www.protondb.com/app/287450

On vanilla Proton, game matches will randomly disconnect and then crash about 1 hour into the game. That is a problem when games can last many hours. My last match took 2.5 hours.

Luckily, this game has a unique multiplayer save feature. My friends and I have been using that as a short-term workaround to save and reload games when they crash (the person whose game did not crash is still able to save).

util.winedll_override('dpnhupnp', 'n')
util.winedll_override('dpnsvr.exe', 'n')
util.winedll_override('dpwsockx', 'n')

Copy link
Member

Choose a reason for hiding this comment

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

I believe lines 30-37 may be redundant here as specifying the directplay verb already applies the native overrides for those files.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree. I was confused because the DirectMusic workaround did the same thing. I already checked the winetricks source code and all of the overrides for both DirectMusic and DirectPlay are handled. I will go back and refactor both of those.

@Root-Core
Copy link
Contributor

Root-Core commented Apr 2, 2024

I have not personally tested this yet

I'm not sure this fix is necessary. Others say that directmusic and sound=alsa are sufficient. It would be nice if someone could give feedback on the current fix.

@LukeShortCloud
Copy link
Contributor Author

Most people are not playing multiplayer. directmusic and sound=alsa only affects being about to hear the music and sound affects throughout the game.

There are 2 reports in the GitHub Issue and 15 reports in the ProtonDB page that directplay is needed for online play. I am able to play online with no workarounds but me and my other friends on Linux constantly run into random connection issues. I believe DirectPlay will fix that.

I will test this out with my friends next time we play online and report back (by applying protontricks directplay to everyone's game).

@LukeShortCloud
Copy link
Contributor Author

LukeShortCloud commented May 12, 2024

I wanted to give a quick update on this. I have not forgotten about this. It just takes an extremely long time to reproduce this issue.

I'll summarize by saying I've tested a wide range of vanilla Proton, GE-Proton, with protonfixes, without protonfixes, with Windows or Linux as hosts, with Windows or Linux as clients, etc. What I can say is that Proton 9 (GE or otherwise) by itself runs a lot more reliably. However, I believe the multiplayer connectivity issue only specifically exists between a Linux host and Linux clients.

The directmusic workaround is also still needed with Proton 9. Despite there being major progress in DirectMusic for the stable Wine and Proton 9.0 release, without the workaround, the audio either (1) does not play or (2) it plays two songs at the same time.

@LukeShortCloud
Copy link
Contributor Author

After playing a bunch more games, I can 100% confirm that directplay helps Linux clients when connecting to Linux hosts.

Without this change, a timeout of 10 seconds appears at some random point. It always counts down to 0 and the client gets disconnected. With this change, no timeouts appear. With the workaround, the game "lags" to compensate for any connection issues which is better than completely kicking a player out after a few hours of gameplay!

I'll go ahead and simply the patch based on some of the original feedback.

to include DirectPlay for more reliable multiplayer connections.

This makes the connection between Linux clients and Linux hosts
more reliable.
to remove the manual overrides that are not needed. This is
already handled by 'protontricks'.
@R1kaB3rN R1kaB3rN merged commit 25cc9c5 into Open-Wine-Components:master May 20, 2024
1 check passed
@LukeShortCloud LukeShortCloud deleted the ron-multiplayer branch May 20, 2024 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants