注意:本教程补充了剩余的功能模块 - 双人联机房间版的多人网络游戏功能模块,并且还在持续更新中。
记得以前玩“双人同行”和“冰火人”等3D 冒险类游戏时,就有一个梦想,即作出这样的游戏。今天有幸腾出时间和精力完成这样的作品,希望更多的人投入到这样的梦想中来。
本教程是一篇Unity从入门到精通的3D动作益智冒险类双人联机房间类游戏课程。玩家既可以控制两个角色——威廉和安娜,通过他们的协作来克服各种障碍,完成关卡挑战。
另外也可以和网络上的其它玩家通过房间号进入同一个房间进行游戏。
教程并不是纯项目源码讲解,而是提前策划功能,然后逐步实现,代码也是边写边讲解的,所以既适合初学者,也适合有一定经验的朋友进行学习。
如果学习者学完并掌握了我的课程,相信能制作出和本教程一样的3D动作益智冒险类游戏。
进入游戏主界面,有三种玩法,第一种是单机模式,第二种是联机模式即类《双人同行》、第三种是乱斗模式。
第一种-单机模式(单人操作模式),玩家需要操作两个角色,两个角色配合过关,目前实现了7个关卡,后面会不定期增加;在每个关卡里威廉和安娜一起冒险,根据限定的游戏时间、闯关是否成功、收集到所有的金币、宝石才能过关,并进行关卡评级。
第二种-乱斗模式(单人操作模式),玩家操作角色进行打怪过关,当所有的怪物被消灭后即可完成关卡。
第三种-双人模式(双人联机房间模式)即类《双人同行》玩法,该玩法需要用户先进行用户注册,以从“游客”角色转变成“登陆用户”,从而登陆到后台服务器端。具体为,一个玩家首先进行用户注册,然后建立房间,并把房间号告诉给别的玩家;另一个注册玩家拿到房间号后通过房间号查询并登陆到同一个房间,就可以进行类《双人同行》的玩法了。
* 游戏模式1:用户双人控制模式,一人饰两角,双人配合协同过关
* 游戏模式2:乱斗模式,经典RPG风格 - 和关卡内的各种怪物进行战斗
* 游戏模式3:双人模式(双人联机房间模式)即类《双人同行》玩法
* 通用关卡逻辑的封装:在每个关卡复用同一套过关逻辑
* 各关卡独立部分的游戏逻辑封装:每关通过逻辑接口派生的方式衍生出各自独有的游戏逻辑
* 主角和怪物角色脚本动画组件:通用的角色脚本,支持角色的逻辑业务,如idle、追逐、攻击等等,方便建立你自己的怪物角色。
* 通用的模型动画功能组件:功能组件有,如模型的简单、复杂运动的封装(旋转,移动、来回移动、多次移动)、各种功能性的开关(一次按钮触发,持续触发)、辅助角色加速跳跃的螺旋桨和模拟风力的粒子效果等等。然后可以通过这些已经封装好的众多功能组件,组合出可复用的创意形功能,当然你也可以开发出自己特有的功能组件,然后结合项目中其它功能组件组合出更多的创意形的关卡。
* 游戏教程适合初学者,同时适合中高级Unity开发人员,原因如下
* 项目的开发以逐步功能的实现为顺序准则,代码也是尽量以逐行手写的方式,力求大部分学习者能够学习到游戏开发的习惯和完整的游戏开发技术
* Unity中角色控制和Animator动画:首先使用5节基础实操课进行讲解以帮助入门,然后通过若干节的课程,讲解主角和怪物的实现,以帮助更深入的掌握
* 关卡复用的“模型动画功能组件”的制作:帮助大家掌握动画的制作,通过这部分内容大家同时也能学到3D数学在游戏开发中的使用。
* MVC的UI游戏框架的学习:首先使用9节课程进行MVC的基础DEMO讲解;然后通过若干节的课程,讲述在游戏中MVC框架的业务实现技术细节,以帮助更深入的掌握。
* 多人在线的游戏服务器开发:首先使用6节课进行基于C++和Python的游戏服务端的讲解,然后使用若干节课进行类《双人同行》的双人联机的网络游戏的开发学习。
* “图形学相关的知识和3D数学应用”在项目功能开发中进行了完整的讲解:如Vecto3向量、Quaternion方位、模型旋转之插值计算方法、Vector3.Dot点乘计算角度等等都在项目开发中应用并进行了详细的讲解。
* 教程遵循严格的C#编码规范:帮助大家养成良好的编码习惯,以适应正规公司多人协同下的开发流程
*由于教程是包含有基础部分的,所以不强制要求学习者掌握游戏图形学方面的知识
* 基于KBEngine分布式的多人在线游戏服务器,C++和Python的游戏中心架构技术
* 当前关卡独有的通用关卡逻辑(所有关卡派生功能)
* 对象池技术:对象的生成和回收复用技术,如关卡4中采用的铁球障碍物
* 乱斗模式中怪物的可复用技术,多种类型怪物通用同一套功能架构