HMCL-dev / HMCL-dev/HMCL

[Feature] 弃用隐藏启动器功能

Open
#4,216 2 comments 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
10.1k
Forks
934
Avg merge
1d 5h
Merged PRs (30d)
82

Description

概述 | Summary

弃用“游戏启动后隐藏启动器”和“隐藏启动器并在游戏结束后打开”两个选项。

作为替代,我们需要开发一个子项目作为独立进程来监视游戏进程状态,在游戏结束后负责分析游戏是否崩溃,并可选的重新拉起 HMCL。

原因 | Reason
  1. HMCL 在一些情况下隐藏后不能正常重新打开窗口(#1991);
  2. 虽然 HMCL 在隐藏时会尽可能清理内存,但依然可能会泄漏部分资源,而且 GC 也可能不会将内存返回给系统,这导致 HMCL 可能挤占游戏的可用资源。
详情 | Description

我们应当在 HMCL 中提供一个新的入口点,新的入口点可以在不初始化 HMCL 的大部分功能的情况下独立工作。

这是使用新的入口点时应当支持的功能:

  • 监视游戏进程的状态,在游戏进程退出后负责分析游戏是否崩溃,弹出提示窗口,并可选的重新拉起 HMCL;
  • 显示日志窗口;
  • 支持作为 Yggdrasil 服务器运行,保证 HMCL 本体退出后依然能使用离线账户功能;
  • 支持一些信息浮窗 UI。

原先在 HMCL 进程中完成的部分工作,应当转而通过创建新进程实现。

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the proposed new entry point and the standalone process described in the issue. Determine how game-process monitoring, crash analysis, log display, optional HMCL relaunch, Yggdrasil service support, and information overlays should be separated from the main HMCL process. Done requires an agreed design and implementation plan for these responsibilities.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.