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

Migration to dll spawner+ares+phobos #288

Draft
wants to merge 40 commits into
base: develop
Choose a base branch
from

Conversation

Belonit
Copy link
Member

@Belonit Belonit commented Aug 14, 2023

At the moment it is still a draft

Major changes

  • CnCNet Spawner has been completely rewritten in C++. Fixes many minor bugs, but requires testing to make sure new ones haven't been created.
    Credits: @Belonit

  • CnCNet Client upgrade to .NET7 framework. This is a major update behind the scenes. Credits: @Rans4ckeR for core implementation; @devo1929, @Metadorius (Kerbiter), @Rampastring, @SadPencil and @Starkku for implementation support

    • The client is no longer compatible with older operating systems like Windows XP. You must be on Windows 7 SP1 or later.
    • Сlient itself support *nix systems (macOS, GNU/Linux) natively (not the game, only the client).
  • Ares v3.0p1 & Phobos v0.3.0.1 have been added bringing a huge amount of features, bugs fixes for desyncs and other minor issues. It also brings many UI/UX improvements, like showing what's being produced for observers, power/drain on buildings (Ares), extended tooltips with time, power (and description optionally) that can be drawn not only on the sidebar, harvester counter, power surplus indicator, next idle harvester hotkey, selection priority filtering (Phobos) and much more.

Other Features:

  • Red Alert 2 and Yuri's Revenge campaign support - Credits: @Belonit, @Starkku
  • Fixed many issues related to having multiple observers - Credits: @Belonit
  • Singleplayer saves now working. For technical reasons, saves created by this game version are not compatible with the vanilla game - Credits: @Belonit
  • Enhanced player status indicators in game lobbies - Credits: @Metadorius (Kerbiter)
  • CnCNet Client localization support added - Credits: @Metadorius (Kerbiter), @SadPencil
  • Fixed an issue in RA2 mode that prevented AI players from building base defensive structures - Credits: @Belonit
  • Fixed an issue in RA2 mode that caused the some animations not to show - Credits: @Belonit
  • Also many other minor fixes not included in this list

Special thanks:

@Sneer-ra2 for help with Ranked Match Client support

End-User Requirements

Windows requirements:
* The .NET 7.0 Desktop Runtime for your specific platform.

The XNA build additionally requires:

Windows 7 SP1 and Windows 8.x additionally require:

  • Microsoft Visual C++ 2015-2019 Redistributable 64-bit and 32-bit. On 64-bit systems you must install both packages.

Windows 7 SP1 additionally requires:

For native client on *nix systems (macOS, GNU/Linux) required:
* NET 7.0 Desktop Runtime and XSEL, Find them in your system's package manager.
* You will also need WINE to run the game.

For Campaign support requires next file in you game folder:

maps01.mix   ; For RA2 Allied campaign
maps02.mix   ; For RA2 Soviet campaign
mapsmd03.mix ; For Yuri's Revenge campaigns

movies01.mix ; For movies RA2 Allied campaign
movies02.mix ; For movies RA2 Soviet campaign
movmd03.mix  ; For movies Yuri's Revenge campaigns

For some Russian translations of the game require:

  • In game font has been updated, there may be problems with some pirated Russian translations. If you see incorrect letters instead of Cyrillic text, add this file to your game folder to fix it. This is a corrected translation from Fargus, if you need other versions of the translation - let me know

NOTE \ TODO:

@Belonit Belonit temporarily deployed to cncnet August 14, 2023 11:25 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 15, 2023 14:53 — with GitHub Actions Inactive
@Belonit Belonit changed the title Migration to dll spawner+ares+phobos Migration to dll spawner+ares+phobos+net7 Aug 15, 2023
@Belonit Belonit force-pushed the feature/migration-to-dll-spawner+ares+phobos branch from d8d6588 to 9b0a8af Compare August 15, 2023 14:57
@Belonit Belonit temporarily deployed to cncnet August 15, 2023 14:57 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 15, 2023 15:06 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 10:04 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 10:16 — with GitHub Actions Inactive
@Belonit Belonit force-pushed the feature/migration-to-dll-spawner+ares+phobos branch from 31c79f2 to 33ee302 Compare August 17, 2023 18:50
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 18:50 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 19:02 — with GitHub Actions Inactive
@Belonit Belonit force-pushed the feature/migration-to-dll-spawner+ares+phobos branch from 33ee302 to 279b784 Compare August 17, 2023 20:47
@Belonit Belonit force-pushed the feature/migration-to-dll-spawner+ares+phobos branch from 279b784 to ab18ad0 Compare August 17, 2023 20:49
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 20:49 — with GitHub Actions Inactive
@Belonit Belonit temporarily deployed to cncnet August 17, 2023 20:58 — with GitHub Actions Inactive
@Belonit Belonit marked this pull request as draft August 17, 2023 21:15
@@ -15,7 +15,7 @@ GameLauncherExecutableName=syringe.exe
; Game executable name for Linux/Mac systems.
UnixGameExecutableName=Resources/Compatibility/Unix/wine-game.sh
; Additional command line parameters applied after -SPAWN.
ExtraCommandLineParams=-LOG -CD
ExtraCommandLineParams=-LOG -CD -RA2ModeSaveID=0x8d143b95
Copy link
Member

Choose a reason for hiding this comment

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

What is this for?

Copy link
Member Author

Choose a reason for hiding this comment

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

https://github.com/CnCNet/yrpp-spawner/blob/40497cdd22d27fff38b902322f23cb52e4bdf209/src/Spawner/Ra2Mode.cpp#L117

This is a way to force the spawner to switch mode to RA2 when the game is loaded. At the moment, the client does not have a mechanism for processing saves from different game modes.
I could calculate this ID dynamically, on the spawner side, however Phobos (before version 0.3.0.2) has a bug due to which it also adds its id to the mod id instead of the engine id.

Copy link
Member

Choose a reason for hiding this comment

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

I see, so that's a temporary workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants