中国科学技术大学《计算机图形学》2022年春夏学期课程项目展示
项目22: 游戏 Infinite Tower
像
李苑浩 PB19000063 少年班学院
指导教师:陈仁杰

项目简介:
本项目尝试利用 Unity 引擎程序自动生成游戏迷宫,开发一个无限爬塔游戏。
项目视频:
|
下载链接:
项目细节:
- 游戏中你将置身于危机四伏的魔塔中绝地求生。魔塔的每一层都是一个错综复杂的迷宫,
周围还隐藏着危险的魔塔敌人。它们一旦发现外人的入侵就会不知好歹地与你开战。
鲁迅说的好,上帝为我们关掉一扇门,就会为我们留下一扇窗。陷入魔窟生死未卜的你,
不仅顿悟了失传已久的独门绝技——普通攻击,还觉醒了家族里绝无仅有的异能。当你在魔塔
中晕头转向时,只需暂停游戏,在某个穴位处划出熟悉的记号,史莱姆部落的智慧之神 Auto
就会来拯救你,施展 21 世纪的尖端科技 AI 来指引你的方向。
- 迷宫生成方法:
1 首先生成N×N大小的白噪声
2 利用白噪声生成分形噪声
3 保留大于某个阈值的块,选择连通的具有最大面积的部分
4 在留下来的部分中,选择面积较大的区域作为房间
5 将剩下不是房间的道路块进行同伦变换,缩小道路宽度为1

项目感想:
- 由于 Unity 的游戏状态更新都必须分散在每帧更新,因此要特别注意函数是否对不同的
帧率都可以正常运行,测试时要模拟出各种极端情况来测试代码的健壮性,若实在拿不
准可以用 FixedUpdate 函数替代 Update 函数。
- 初次尝试了 Unity 游戏制作,自行学习了 C# 编程,明白了游戏制作的基本流程。由于开始不熟悉 Unity 和 C#,导致游戏代码较为臃肿,好多地方复制粘贴,场景物体
也较为混乱,以后可能需要一定的重构。
- 项目文件组织不太好,虽然进行了分文件夹存放,但是是直接以文件类型分组的,在有
多个场景、较多预制体、代码错综复杂的项目中,至少还需分场景、分预制体在场景、
预制体等旁边放置脚本,而不是将脚本全部集中在一个地方。
致谢:
- 感谢一学期以来陈仁杰老师的 CG 授课,让我获益匪浅!
- 感谢两位助教耐心回答问题、批改作业!感谢热心的群友帮助!
- 感谢网站 https://freepd.com/ 上艺术家 Rafael Krux, Bryan Teoh, Alexander Nakarada,
Kevin MacLeod, Komiku, Phase Shift 等提供的大量高质量 Creative Commons 0 音乐!
- 感谢互联网上大量的教程、问题解决方法,包括 CSDN、博客园、知乎、简书、Unity
官方帮助等等!
返回项目主页
Copyright ©: 2022 GCL,USTC