[Enhancement]: Add Support for Other Games via Plugin System
Is your request related to a problem?
No
How is the feature request related to the problem?
This feature brings support for other games which are published/developed by a developer other than miHoYo/HoYoverse.
Describe your proposed solution
The feature will involve plugin loading (via an external .dll library) which will then load the required APIs. The initial implementation of this feature brings basic functionalities, including:
- Game Launcher API to Collapse Launcher-compatible API conversion (including Game Resource download reference, News API, Social Media API and Background API).
- Game Installation/Update/Verification/Uninstall functions.
- Game Launch + Game Additional Launch Argument.
The .dll itself will be compiled using NativeAOT and then invoked into the main launcher process via Interop. The launcher itself doesn't necessarily need to be compiled into NativeAOT since the Interop will return a unified, non reflection-based interface.
Here is a preliminary list of games we are targeting for support in the first iteration of this feature:
- Heaven Burns Red
- Engine: Unity 2021.x (2020.3.15f2)
- Developer: Wright Flyer Studios/GREE Holdings, Inc., Key
- Published by:
- Global: Yostar (November 15th, 2024)
- Japan: Wright Flyer Studios/GREE Holdings, Inc., Key (February 10th, 2022)
- Wuthering Waves
- Engine: Unreal Engine 4 (build 4.26.2)
- Developer: Kuro Games
- Published by:
- Global: Kuro Games (May 22nd, 2024)
Note: As in coincidence that this posted on April 1st, 2024, this plan isn't a part of the April Fools :)
Describe alternatives you've considered
None
Additional context
- Submodule core (Collapse)
- Submodule for HBR
- Submodule for WuWa: Pending