SanAndreasUnity · in0finite/SanAndreasUnity
SanAndreasUnity 是用 Unity 对《GTA:圣安地列斯》游戏引擎进行的开源重实现,主要语言为 C#。项目说明其并非完整重实现,重点放在玩法功能、多人联机,以及便于扩展和模组制作的框架;首次运行会要求填写 GTA 安装路径,需自行拥有 GTA...
ppy/osu 是 osu! 官方游戏客户端的下一代实现,也被官方称为其“最终形态”,发布代号为 lazer。项目以 MIT 协议开源,README 将这一版本描述为“开放时代”的起点:它不是概念验证,也不是简化复刻,而是一个可以日常游玩的完整客户端,并会在相当一段时间内与旧的 osu!stable 版本并行存在。官方对该作品的定位是“免费游玩(free-to-win)的节奏游戏”,口号写作“rhythm is just a click away”。仓库主页指向 osu.ppy.sh,玩家既可以到官网下载,也可以直接从 GitHub Releases 获取对应平台的安装包。
游戏本体围绕 beatmap(谱面)展开,仓库话题标签里直接列出了 beatmap、catch、mania、taiko,对应的正是 osu! 标准模式以及 taiko、catch、mania 等不同玩法。lazer 在架构上的一处关键设计,是把“规则集(ruleset)”当作可扩展单元:任何开发者都能基于官方提供的模板创建自己的玩法变体,复用已有的谱面库、游戏引擎与通用界面交互,而不必从零搭建整套客户端。README 因此专门给出了仓库内的 Templates 目录,以及讨论区中的自定义规则集目录,作为想尝试新玩法的开发者的起点。
代码库以 C# 编写、基于 .NET,构建前需要安装对应平台的 .NET SDK。项目同时依赖 osu-framework(游戏框架)与 osu-resources(游戏资源)两个独立仓库,README 提供了 UseLocalFramework / UseLocalResources 脚本,方便把这两个仓库检出到相邻目录后进行交叉验证。解决方案文件按平台拆分为 osu.Desktop.slnf、osu.Android.slnf、osu.iOS.slnf,用它们加载可以减少无关依赖;命令行下可以直接用 dotnet run --project osu.Desktop 启动,做性能测试时应附加 -c Release,以避免 Debug 配置带来的额外开销。移动端构建通常需要先执行 dotnet workload restore 安装 Android/iOS 工具链,若构建失败可尝试 dotnet restore 还原 NuGet 包。
项目对代码质量有明确要求:提交前要运行 dotnet format 或使用 IDE 的格式化命令;仓库引入了跨平台、与编译器集成的分析器,在编辑与构建时给出警告;此外还用 JetBrains ReSharper 的 InspectCode 覆盖更大范围的规则集,可通过 PowerShell 脚本执行。官方推荐的开发环境是 Visual Studio、JetBrains Rider,或安装了 EditorConfig 与 C# Dev Kit 插件的 VS Code,并提供测试用的项目与配置来验证新增组件。
发布渠道覆盖面较广:Windows 10 及以上 x64 有安装器,macOS 12 及以上提供 Intel 与 Apple Silicon 两个包,Linux x64 提供 AppImage,Android 7 及以上提供 APK,iOS 13.4 及以上则通过 TestFlight 分发。README 特别提醒,TestFlight 名额受苹果 10000 人上限约束、链接会不时重置,官方目标是把游戏尽快上架移动应用商店。项目仍在持续开发,但维护者力求保持稳定状态,鼓励玩家从 release 安装并与 stable 客户端共存,直到大多数用户更愿意使用新客户端为止。
参与方式主要是报告 issue 和提交 pull request,本地化工作则通过 Crowdin 进行;详细的发布变更日志在 osu! 官网,wiki 中可以看到团队的项目管理方式。需要特别注意的是,团队明确表示只接受“人的贡献”:任何由 AI/LLM 生成、由 AI 辅助撰写文档或借助 AI 完成的 issue 与 PR,通常会被直接关闭并锁定,打算提交代码前必须先了解这条规定。许可证方面,代码与框架采用 MIT,但 osu! 与 ppy 的品牌、商标不在授权范围内,不得随意用于软件、资源、广告或宣传;游戏美术与音频等资源另有许可,需参考 ppy/osu-resources 仓库。
从学习角度看,这个仓库更像一座大型工程样板:可以观察一个商业级游戏客户端如何用 C# 组织跨平台(桌面与移动端)代码,如何把玩法抽象成可插拔的规则集,如何划分 framework、resources、client 三层仓库并做本地联调,以及如何用分析器与格式化工具维持大型代码库的一致性。它的门槛也相应较高——需要熟悉 .NET 工具链、IDE 与 Git 工作流,代码量巨大,不适合作为第一个练手项目;如果只想体验游戏,直接下载 release 即可,无需自行编译。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...