[控场AI]
· 5 分钟阅读· 2,581 字

PCL:星标8.5k的Minecraft启动器,为何用VB.NET写成?

PCL:星标8.5k的Minecraft启动器,为何用VB.NET写成?

用VB.NET编写的Minecraft启动器PCL以轻量原生和国内网络优化赢得8500+星标。

Plain Craft Launcher(PCL)是一个用VB.NET编写的Minecraft启动器,在GitHub上获得超过8500颗星标且仍处于活跃增长期。文章分析了其“反直觉”的技术选型:VB.NET依托.NET生态和WinForms,在Windows平台上实现了极短的启动路径和轻量资源占用,与Electron方案形成鲜明对比。功能层面,PCL覆盖版本管理、模组加载器自动安装、Java检测、整合包导入导出等完整能力,并针对国内网络环境做下载源镜像优化,构成其与HMCL等竞品的差异化优势。文章同时指出VB.NET生态萎缩和Windows-only定位带来的长期维护风险,但认为项目当前健康,其成功印证了技术选型应由目标用户和实际场景定义。

在GitHub上,一个用Visual Basic .NET(VB.NET)编写的Minecraft启动器——Plain Craft Launcher(PCL)——已经积累了超过8500颗星标,并且今天仍有115颗新增星标。这个项目由Meloong-Git维护,用最“不现代”的技术栈之一,解决了数百万玩家启动游戏的实际问题。

PCL项目主页

一个“反直觉”的技术选型

PCL最引人注目的标签是用VB.NET编写。在Java、C#、Rust甚至Electron统治桌面工具开发的今天,VB.NET几乎被视为“上古技术”。但PCL的作者显然不这么看。

VB.NET是.NET生态的一部分,拥有完整的CLR运行时支持,能够直接调用Windows API,同时在UI开发上可以沿用WinForms的成熟控件库。对于一个以Windows为主要平台的启动器来说,这种组合的开发效率极高——不需要引入额外的运行时,打包体积可控,与系统原生交互的路径最短。

这个选择带来的直接好处是启动速度和资源占用。相比基于Electron的启动器动辄上百MB的内存占用,PCL的轻量特性在低配置机器上优势明显。这也解释了为什么它在国内Minecraft社区中拥有大量忠实用户。

VB.NET 是微软在 2002 年随 .NET Framework 一同推出的语言,语法上继承了经典 Visual Basic 的易读性,但底层完全运行于 CLR(Common Language Runtime),与 C# 共享同一套类型系统和基础类库。它并非“过时的 VB6”,而是一门支持面向对象、泛型、LINQ、异步编程的现代语言。WinForms 是 .NET 自带的桌面 UI 框架,通过拖拽控件和事件驱动模型即可快速构建 Windows 界面,不需要额外运行时,编译产物直接调用 Win32 API。这种“语言 + 框架 + 平台”三位一体的组合,在 Windows 桌面工具开发中至今仍有极高的开发效率,也是 PCL 选择 VB.NET 的技术合理性所在。

功能覆盖:不只是“启动游戏”

PCL的功能列表相当完整:版本管理、模组加载器(Forge、Fabric、Quilt、NeoForge)自动安装、Java运行时检测与下载、皮肤管理、整合包导入导出、下载源镜像切换等。

PCL界面示意

这些功能在同类启动器(如HMCL、MultiMC)中也有覆盖,但PCL的差异化在于对国内网络环境的适配。它内置了多个下载镜像源,并且针对国内用户常见的网络问题做了专门优化——这一点在官方文档和用户反馈中反复被提及。

从工程角度看,PCL的模组加载器自动安装逻辑需要处理大量版本兼容性判断和文件校验,这部分代码的复杂度不低。用VB.NET实现这样一套系统,说明作者对.NET平台和Windows生态有相当深的掌握。

模组加载器是 Minecraft 启动器必须处理的核心概念。原版游戏本身不支持第三方模组,Forge、Fabric、Quilt、NeoForge 等加载器通过修改游戏启动流程、注入字节码或提供事件总线来加载模组。不同加载器对应不同的游戏版本和模组生态,且彼此不兼容。启动器需要根据用户选择的游戏版本自动匹配加载器版本、下载安装器、执行安装逻辑并校验文件完整性。此外,Java 运行时检测同样关键:Minecraft 不同版本对 Java 版本有硬性要求(如 1.17+ 需要 Java 16 以上),启动器必须扫描系统已安装的 JRE、判断版本兼容性,并在缺失时自动下载合适的运行时。这些逻辑的复杂度远超“双击启动”的表象。

社区信号:星标增长背后的真实需求

8525颗星标、1173个fork,以及单日115颗新增星标,这些数字说明PCL处于活跃增长期。一个用VB.NET写的项目能在GitHub上获得这种关注度,本身就是社区对“实用主义”的投票。

Minecraft启动器赛道并不缺竞争者。HMCL用Java编写,跨平台性好;MultiMC及其衍生项目在Linux和macOS上更成熟。PCL选择聚焦Windows平台,用原生技术栈换取性能和易用性,这是一种清晰的取舍。

对于想学习桌面开发的开发者来说,PCL的代码库也是一个有趣的样本:如何在VB.NET中组织一个中等规模的应用,如何处理异步下载和文件校验,如何设计面向普通用户的UI流程。这些经验在主流技术社区中讨论得并不多。

值得关注的风险与局限

VB.NET的生态活跃度确实在下降,这意味着长期维护可能面临库依赖老化的问题。同时,Windows-only的定位限制了项目的用户天花板。如果未来.NET的跨平台UI框架(如MAUI)成熟,PCL是否会考虑迁移,是一个值得观察的方向。

另一个现实问题是,启动器类项目对上游API(如Mojang的版本清单、模组平台的接口)有强依赖,任何上游变更都可能带来适配工作量。PCL的更新节奏能否跟上,决定了它的长期可用性。

从目前的数据看,这个项目仍然健康。它提醒我们:技术选型的“正确”与否,最终由目标用户和实际场景来定义,而不是由流行度排行榜决定。

.NET MAUI(Multi-platform App UI)是微软在 2022 年正式推出的跨平台 UI 框架,旨在用一套代码构建 Windows、macOS、iOS 和 Android 应用。然而 MAUI 的桌面端成熟度、第三方控件生态和性能表现至今仍受争议,尤其对于需要深度调用 Windows API 的工具类应用,迁移成本并不低。另一个常被提及的跨平台方案是 Avalonia,它支持 Windows、Linux、macOS,社区活跃度较高,且兼容 C# 和 VB.NET。对于 PCL 这类 Windows-only 项目,是否迁移取决于目标用户是否真的需要跨平台——而从其用户分布看,短期内迁移的动力可能并不充分。

#PCL启动器#Minecraft启动器#Plain Craft Launcher#VB.NET#Meloong-Git#开源启动器#GitHub项目
分享:

相关推荐