NetHack · NetHack/NetHack
NetHack 官方 Git 仓库,C 语言编写的地牢探索类 Roguelike,是 Rogue、Hack 的远支后裔,并直接衍生自 NetHack 3.6。仓库当前包含 5.0.1 开发中版本,README 明确说明它并非正式发布版,主要用于修复 5.0.0 的问题,仍可能存在 bug;若...
Dust Racing 2D(社区常简称 Dustrac)是一个走传统路线的俯视角 2D 赛车项目:视角从正上方俯视赛道,车辆在瓦片(tile)拼成的赛道上竞速。它由作者 juzzlin 以 Qt(C++)加 OpenGL 实现,源码以 GNU GPLv3 发布,README 明确写着“将永远完全免费”。与许多小型开源赛车 Demo 不同,它不是技术演示,而是一个已经持续维护多个版本、具备完整比赛流程、设置菜单、音效与关卡编辑器的成品游戏,截图中展示的也是带 3D 感物件的 2D 场景。
比赛规则是这款游戏的核心。每场比赛固定 12 辆车,其中 1 到 2 辆由人类玩家驾驶,其余由 11 名电脑车手操控,电脑对手分为 Easy、Medium、Hard 三档难度。游戏模式包括竞速(Race)、计时赛(Time Trial)和对决(Duel)。双人同屏时采用分屏显示,并可在垂直与水平两种分割方向之间选择。赛道按进程解锁:只有在一场比赛中跑进前六名(TOP-6),下一条赛道才会开放;每条赛道还会根据玩家取得的最好名次给出星级评价。记录体系比较细致,最佳圈速与最佳名次按圈数分别保存,因此同一赛道在不同圈数设置下的成绩不会互相覆盖。
在驾驶手感层面,游戏加入了轮胎磨损机制:随着比赛推进,轮胎状态逐渐下降,车辆会越来越容易打滑,操控随之变差。赛道上设有维修站(pit,即那条黄色矩形区域),把车停在其中即可修复轮胎,这让比赛多了一层进站策略。README 还提到引擎声与碰撞音效、窗口化与全屏切换等基础体验项。玩家自制赛道有固定的搜索位置:游戏会读取用户主目录下的 ~/DustRacingTracks/,在 Linux/Unix 上还会把 $XDG_DATA_HOME/DustRacing2D/tracks(未定义时为 $HOME/.local/share/DustRacing2D/tracks)加入搜索路径,因此自己用编辑器做好的赛道放进去就能被识别。
技术实现上,整个项目是 C++/Qt 与 OpenGL 的组合:界面、菜单以及配套的关卡编辑器都基于 Qt,渲染走 OpenGL,仓库 topics 标出了 cplusplus-17,说明源码使用了 C++17 特性。物理并非使用现成的第三方物理库,而是交给一个独立的、自研的引擎 MiniCore 完成,负责车辆运动与碰撞相关计算,这也是项目在架构上比较有意思的一点:游戏逻辑与物理/图形底层被拆成两层。构建系统使用 CMake,README 强调源码是可移植的(portable source code),既可以用命令行构建,也可以直接用 Qt Creator 或其他支持 CMake 的 IDE 打开顶层 CMakeLists.txt。仓库内还内嵌了 GLEW 与 GLM 的源码,减少了外部图形依赖。
操作方面,默认玩家一(粉色赛车)用方向键加速、刹车与转向,玩家二(灰色赛车)用 W/S/A/D,键位与游戏模式都能在设置菜单里修改;ESC 或 Q 退出当前比赛与菜单,P 键暂停。命令行还提供两个实用参数:--lang 可强制界面语言(目前列出 fi、cs、de、it、fr、nl、tr),--screen 可在多显示器环境下指定全屏时使用的屏幕序号。
平台与获取方式上,项目定位是跨平台,仓库 topics 同时标注了 linux-app 与 windows-app,README 给出了 Linux 下的构建概要:安装 Qt6、OpenAL 与 Vorbis 开发库后,依次执行 mkdir build、cd build、cmake ..、make 即可,更完整的说明放在仓库的 INSTALL 文档里;GitHub Actions 上有 CI 构建状态徽章。macOS 的支持情况 README 未单独说明,需要自行核验。国内构建时的主要注意点在于依赖获取:Qt6、OpenAL、Vorbis 的开发包建议走系统包管理器或国内镜像源,Qt 在线安装器下载体积较大且速度不稳定,可以换用镜像;从 GitHub 拉取源码或发布包也可能较慢,可考虑镜像加速。
从学习角度看,这个仓库适合研究几件事:一是用 Qt 搭建完整游戏外壳(菜单、设置、本地化、全屏/多屏)的工程组织方式;二是 OpenGL 下的 2D 俯视角渲染与瓦片地图绘制;三是把物理计算抽成独立引擎模块的分层设计;四是“游戏本体 + 关卡编辑器”双程序共享数据格式的实践;五是分屏双人同屏与电脑对手难度分级的实现思路。需要注意许可边界:源代码为 GPLv3,而图片等素材除特别注明外采用 CC BY-SA 3.0,二次分发或改造时要分别遵守;仓库内嵌的 GLEW、GLM 也各有自己的许可文本,需按原文件说明处理。此外,README 未给出在线试玩或直接下载链接,实际体验需按文档自行编译。
DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...