世界末日,赶快逃离!Unity学员用游戏打造《行尸走肉》“续集”
高速子弹
强化子弹
小 U 想,按照这样的逻辑,即使面前的敌人很多,只要我多积累一些爆炸威力大,杀伤范围广的子弹,那战斗时即便敌人再多不也无所畏惧了吗?游戏的挑战性瞬间就被拉低了。
“高杀伤力的武器弹药设计初衷是为玩家解决少数的一些困境,提升玩家的对抗体验,而非让游戏变得‘索然无味’,如果成了 FPS 式的割草游戏,那就偏离我们设计这款游戏的核心了。”仿佛是看出了小U的疑惑,《ISLAND》的策划如是说。
为了防止游戏因为某些大威力武器或者技能而变得没有挑战性,《ISLAND》有一套比较特别的战斗机制。玩家子弹的发射和体力、技能(CD)挂钩,威力越大的子弹消耗的体力越大,CD 激活的时间也就越久。
为此负责游戏玩法实现的同学利用 Unity 引擎开发了射击机制,当玩家按下射击键时,系统会对当前状态进行判断,让玩家只有在子弹充足,体力充沛且相应的 CD 激活的情况下才能正常的发射相应种类的子弹。
玩家的方向转向主要是通过 Screen to View,鼠标在屏幕的位置的映射去控制玩家脸部的朝向,这样相比于鼠标射线检测会更加精确,受到的地形因素的影响更小。举个例子,前面有个高低的地形差,那么当鼠标射线进行检测的时候,玩家脸部朝向有一个较大的误差,这样设计就可以减少误差的影响。
而在怪物的设计过程中,技术策划同学给游戏设计了三种不同类型的怪物,负责美术的同学将他们按照等级和属性细分为六个小类,并为他们设定了不同的动画。
值得一提的是,负责技术美术的同学还利用 Unity 引擎制作了一个怪物自动生成器,可以在后期非常方便地调整怪物的种类、生成速度和生成个数和移动属性等参数。
项目组的同学告诉小 U,作为一款末日题材的 2.5D 射击游戏,《ISLAND》制作需求是很大的,但实际的课程又要求在短短一个月的时间内的时间实现游戏主要的功能,因此,对开放团队来说,如何尽可能地提升整个项目的工作效率,是他们面临的首要挑战。
每个人的分工不同,很多功能又需要几位小组成员的共同搭建下实现,如何才能更好掌控每个人制作的进展,减少 BUG 的产生,高效地推进项目流程呢?
在 Unity 老师的建议和帮助下,《ISLAND》团队学习到了许多巧妙的方法,能更方便地进行协同合作。比如利用思维导图直观地呈现 Assets 文件结构和 Scene 场景的逻辑图,不仅能让组内各成员更方便的查看对方资源的实现过程,也方便了整个项目管理和维护。
在构建程序框架的过程中,小组灵活使用插件和 Unity 的高级特性,将 Odin 插件与 ScriptableObject 结合,支持字典序列化、配置动态加载,便于开发维护。使用拓展方法获取特性,资源管理,本地化,非 mono 继承 mono 脚本启用生命周期函数和协程。同时为具有特定目的的类指定自定义属性,例如 UI 类和对象池类,结合反射找到所有被 UIElement 属性标记的 UI 窗口类并根据属性路径参数加载对应的预制体和层级,是否需要缓存,与 UI 框架结合完成了复杂 UI 层级的管理。
框架整体基于观察者模式的设计方式构建事件系统,解耦了方法之间的调用,使得事件调用发生时不用关心对方是否存在,只需要获取事件系统的单例,对方做好触发,事件系统做中转。结合框架级 GameRoot 的 Awake 方法、管理器级 Manager 的 Init 方法,游戏场景级 LVManager 的 Start 方法,使得 UI 框架中的 UIManager 能够调用/销毁所有事件监听方法,某个窗口不关心何时注册/销毁监听。
为了能让小组成员更清晰的了解游戏代码开发的框架,主程对游戏中的每一个代码系统都撰写了一份代码开发说明文档,这个文档从系统的功能出发,将系统的主要类别,每个类别的主要方法,甚至是每个类别的参数以及返回值代表的意义,以及使用的案例都进行了详细说明,这样小组的其他成员就可以以一个很低的学习成本,了解自己系统代码的开发流程。
而在文件交接流程上,小组的学员自己撰写了规范的操作流程文件来保证素材资源交接不出现问题,同时利用 Unity 引擎的打包机制来筛选出工程项目文件中实际需要的素材。来避免实际素材收集时的混杂性。
此外,他们还使用了本地代码仓库的方式进行版本控制,设计了规范拉取流程,有效的控制了代码的简洁,提高了传输的速率,比如一个 5G 的项目,他们只用 30 秒即可完成克隆,仅需 2-3 秒完成拉取,而在项目的开发过程中,仅出现过一次代码冲突,并且快速通过备份完成了现场恢复。
而这样高效的团队协作,必将埋下友谊的种子。通过《ISLAND》游戏的开发经历,让 5 位素不相识的学员变成了工作上默契配合,私下形影不离的好伙伴。
小 U 相信,在未来的职业生涯中,他们也会继续延续着这份对游戏开发的热情、严谨、高效、真诚的心,完成彼此游戏人生中更大的梦想。
Unity 集训营就是这样一个有干货,有温度的 U 地方!如果你也想和一群有见识,有知识,有方法的大咖和牛人,一起在 Unity 实战课中学习制作游戏的技巧,在实战项目中收获合作开发游戏的友情。那就快点击下方阅读原文,了解详情吧!
长按关注
第一时间了解Unity引擎动向,学习最新开发技巧
点击“阅读原文”,了解Unity集训营