# 鼓楼 南京大学鼓楼校园。步行、骑行、开车、滑翔,在昼夜与晴雨中探索建筑、街道和校园故事。 [在线体验](https://wang-jiahao.github.io/gulou/) · [作者](https://wang-jiahao.github.io/) · [赞赏](#支持这个项目) 无需安装或注册,支持电脑与手机浏览器。 https://github.com/user-attachments/assets/64f70df5-09b0-4dcb-8535-eec05b15587e ## 为什么做鼓楼 从2022级开始,本科生都需要在鼓楼寻根一年,大家或多或少都对鼓楼有些感情。 这个项目在 **GPT 6 Astra 的协助下,历时 11 天** 开发,希望把熟悉的校园变成打开网页就能探索的空间,也用一个能亲手玩的作品,让大家直观看到,今天的 AI 已经能把一个想法推进到怎样的完成度。 学校 Minecraft 社团的校园复刻给了我启发。对于想随时逛逛校园的人,我希望再提供一种无需购买游戏、安装客户端或连接服务器的方式,让同学、校友和对南大感兴趣的人都能轻松开始。 ## 一起共建 如果你觉得这个项目还不错,欢迎**转发给同学、朋友和校友,也欢迎点一个 Star** ⭐,或[赞赏](#支持这个项目)。 欢迎通过[Issues](https://github.com/wang-jiahao/gulou/issues)指出建筑、路线与交互问题,或提供有使用许可的照片、视频等资料。也欢迎提交模型、代码和玩法建议。 可以先查看[建筑精修与对齐清单](docs/building-status.md),了解各处已经核对的细节、仍待修改的问题,以及尚缺哪些实景资料。 后续希望扩展到仙林、浦口和苏州校区,逐步加入建筑内部空间、更多场所玩法、多人漫游与社区角色素材。 ## 怎么玩 | 场景 | 操作 | | --- | --- | | 行走与观察 | **WASD / 方向键**移动,**Shift**加速,**空格**跳跃;鼠标拖动观察,**V**切换视角 | | 骑行与驾驶 | 靠近单车或汽车按 **E**上下车;**G**随时开车 / 下车,**Shift**加速,**空格**刹车,**S**倒车 | | 飞行 | **F**起飞 / 降落,**Shift**加速,飞行时**空格 / Ctrl**升降 | | 地点与互动 | 右下角小地图显示位置与朝向;**M**打开地图、搜索与传送;**I**看地点故事;**E**坐下、起身或进行球类互动,**R**重置球 | | 画面与环境 | **T**调时间天气,**P**拍照,**H**隐藏界面;右上角 **⛶**切换全屏 | | 暂停与返回 | **Esc**释放鼠标 / 打开设置;设置里可返回开始页,再从原位置继续 | 手机使用左侧摇杆移动、右侧拖动转向,其余操作由屏幕按钮完成。默认使用男生角色,设置中可切换人物、穿搭和画质,默认在校园加载期间从 Minecraft 官方资源服务器预加载 C418 的《Minecraft》,点击进入后播放;保留约 2.53 MB 的原始 Ogg 编码,不再次压缩。音乐可暂停、调节音量,也可导入自己的音频;个人文件只在浏览器本地播放,不上传。 访问展示由作者估算的历史基数加上统计启用后的实测访问构成,页面显示合计,数字提示中保留统计口径。历史基数未经访问日志验证,社交平台帖子浏览量不等于游戏进站量。实测部分在每次打开或刷新网页时计入,网络重试不重复计数;这是访问人次,并非独立玩家人数。 ## 在校园里 - **地标与街道**:北大楼、大礼堂、汉口路门、教学区、图书馆、校史博物馆、运动场和南园生活区,沿校园道路自由探索。 - **自己的路线**:散步、骑行、驾驶或滑翔;通过地图搜索楼名,在熟悉的门前停留,或找一个新的拍照角度。 - **流动的环境**:晴日下午、黄昏与夜晚自然交替,支持雨天与手动调整时间。 - **校园故事**:阅读来自学校与院系资料的地点介绍,在大纛坪升降国旗,在松林休憩点坐一会儿。 - **随手游玩**:运动场足球、篮球练习、简约人物、男女形象与三套穿搭、照片保存和本地音乐播放。 场景依据资料近似重建,部分建筑细节、尺寸与植被位置仍有偏差。欢迎熟悉校园的同学指出问题、提供参考。 ## 技术栈 | 技术 | 用途 | | --- | --- | | TypeScript + Vite | 游戏逻辑、界面、资源处理与静态构建 | | Three.js / WebGL2 | 三维渲染、PBR材质、阴影、植被与天气 | | Rapier | 人物运动、楼梯与场景碰撞、球类刚体 | | glTF / GLB + Meshopt | 人物、树木与模型资源的组织和压缩 | | Web Audio / HTML Audio | 环境声、音量控制与本地音乐 | 建筑的资料核对、建模与通行验证过程,见[建筑是怎样做出来的](docs/building-process.md)。 ## 本地运行 建议Node.js 22.18或更新版本,并安装pnpm。 ```bash pnpm install --frozen-lockfile pnpm dev ``` ```bash npm run typecheck npm run lint npm run check:assets npm run build npm run preview ``` 构建产物位于 `dist/`,可部署到支持静态网站的服务;子路径构建与资源排除规则见[部署说明](docs/deployment.md)。不要直接上传整个工作目录。 原创代码使用[MIT License](LICENSE),第三方数据与素材保留各自许可。 ## 开发投入 | 项目 | 统计 | | --- | --- | | 时间与迭代 | 11 天 · 151 个版本号 · 当前 v0.155.0 · 205 次提交 | | 代码与工具 | 26,576 行 · 326 个文件(游戏 13,801 行,工具 12,775 行) | | 素材与参考 | 游戏资源 83 个 / 38.88 MiB;参考图 1,019 张、视频 4 个、来源 52 处 | | 需求与协作 | 256 条需求 · 12 个主任务 / 5 个子任务 · 19,745 次模型调用 | 累计 **1,840,939,693 token**,按 [GPT 6 Astra 官方 Standard 价格](https://developers.openai.com/api/docs/pricing)折算 **$5,896.51**。 | 类别 | Token 数 | 折算费用(美元) | | --- | ---: | ---: | | 普通输入 | 642,335 | $6.49 | | 缓存读取 | 1,562,336,095 | $1,765.35 | | 缓存写入 | 264,178,406 | $3,414.51 | | 输出(含推理) | 13,782,857 | $710.16 | [统计与费用明细](docs/work-metrics.md) · 更新于 2026-10-14。 ## 参考资料 建筑外观与校园细节主要参考[南京大学官方VR](https://vr.nju.edu.cn/newUI/#/);空间布局依据[官方校园平面图](https://zcc.nju.edu.cn/cssy/dzdt/glxqdt/index.html)并结合OpenStreetMap。另参考[鼓楼校园步行漫游](https://www.youtube.com/watch?v=aGgqEV3syjw)、[南京大学徒步参观](https://www.bilibili.com/video/BV1iL411h7G2/)及补充照片,核对道路衔接、入口、台阶与生活设施。 [参考资料导览](docs/reference-guide.md)收录图片、视频与具体用途;[第三方资源说明](THIRD_PARTY.md)列明可分发资产的许可。本项目非南京大学官方产品,也不是精确测绘成果。 ## 支持这个项目 从一个想法到整个鼓楼,这个项目投入了大量时间,也消耗了大量 token。如果游戏让你想起一段校园时光,欢迎自愿赞赏或者帮作者点个免费的star。 赞赏完全自愿,所有游玩功能均无需付费。愿意指出问题、提供校园资料,也是一份支持。 Zackaria 的微信赞赏码