Unity3D在线游戏.docx
《Unity3D在线游戏.docx》由会员分享,可在线阅读,更多相关《Unity3D在线游戏.docx(9页珍藏版)》请在冰豆网上搜索。
Unity3D在线游戏
网络游戏设计与制作课程设计报告
课程:
《网络游戏程序设计》
题目:
多人在线射击类游戏—火线突击
小组成员:
指导教师:
完成日期:
2014年1月
1概述
《网络游戏设计与制作》是《网络游戏程序设计》课程的配套实践课,主要课程内容为学生在教师指导下完成规定的制作内容。
为了更好地与《网络游戏程序设计》课程内容相衔接,本次实践课程内容可以《网络游戏程序设计》大作业为基础,拓展开发一个适用于移动平台的多人在线网络小游戏。
2具体要求
1、要求游戏内容与移动平台的游戏特性相适应,主要如场景大小、触控输入、交互简洁等;游戏可设计为轻松休闲主题(其它也可),辅以一定的智力难度,不要求很强的3D效果。
2、能输出至Android或IOS手机平台,在局域网内能试玩成功。
3、最多可三人一组。
3设计主题
本游戏是一个多人在线射击类游戏。
游戏以群山环绕的秘密军营为主题场景,通过三维模型的构建与导入,以及例子特效的使用,增加了场景的真实感。
场景中建筑数量颇多,使得玩家可以适时躲避对手的攻击,而游戏中回血方块和回血胶囊的贴图风格均与场景其它物体贴图风格保持一致,不易被发现,因而增加了游戏的难度和趣味性,同时使得游戏主题风格更加突出。
游戏过程中,每个玩家与新加入的玩家对战,被其他玩家击中会被扣血,当然玩家可以通过击打回血方块或回血胶囊加血,若玩家血量为0,则游戏失败。
4具体设计步骤
4.1构建游戏场景
(1)制作地形,编辑地形参数,添加地形贴图,添加树木等地形元素。
(2)制作天空盒,贴图。
(3)添加灯光,调整位置和光参数。
(4)在Project视图中导入素材模型,坦克、屋子、水塔、宝箱等并添加碰撞器。
(5)将各个模型拖到游戏场景中,并调整其位置和数量。
(6)添加火焰粒子系统,调整位置和参数。
(7)创建回血方块与回血胶囊,贴图,调整大小、位置以及数量。
(8)给子弹模型添加AudioSource组件,使得发射子弹有音效。
回血方块
回血胶囊
给子弹模型预制件添加音频组件
游戏场景部分截图
游戏场景部分截图
4.2实现主要游戏逻辑
(1)创建一个出生点SpawnPoint,绑上代码,把玩家创建成一个Prefab预制件,实现动态创建玩家,该部分通过RPC调用实现游戏大部分逻辑以及玩家状态的同步,如进入游戏、发射子弹、加扣血、游戏失败等等。
主要代码如下:
(2)创建一个对象NetworkLogic,绑定代码,该部分主要实现聊天功能。
(3)给摄像机绑定代码,实现镜头跟随鼠标移动。
(4)给回血方块和回血胶囊绑定碰撞检测代码,并添加NetworkView组件,通过PRC调用,实现给特定的玩家加血。
碰撞检测代码如下:
加血部分的代码如下:
(5)根据给的示例的代码,完成其他游戏逻辑的实现。
服务器、客户端界面绘制代码如下:
5游戏测试运行效果
初始界面:
打开服务器后界面:
该界面右下角会文字显示当前活动玩家数量
连接服务器后的界面:
点击进入“游戏按钮”即可开始游戏
游戏过程界面:
左上角会有文字提示玩家当前血量
游戏失败界面:
当玩家血量为0,屏幕提示游戏失败,点击“退出游戏”按钮结束游戏
6游戏说明
打开可执行文件,建议选择800*600窗口大小,然后运行,进入游戏初始界面,先点击“打开服务器”创建一个游戏服务器,然后各个玩家运行游戏,在初始界面左上角输入服务器IP地址,点击“连接服务器”按钮到连接服务器,成功后点击“加入游戏”按钮即可开始游戏。
游戏过程中,玩家被对手击中会扣血,此时玩家可以通过躲避或者击打回血方块、回血胶囊的方式来加血。
玩家每被击中一次扣5点血,而每击中一个回血方块可以加5点血,每击中一个回血胶囊可以加10点血。
回血方块和回血胶囊不易被发现,所以玩家要仔细寻找哦!
如果在找到回血方块或回血胶囊前玩家被对手击打至血量为0,则玩家不可动弹,游戏失败。
游戏基本操作:
按W/A/S/D键或者方向键前进,F键发射子弹。
7总结与体会
这次的课程设计,一开始拿到要求的时候,有点摸不着头脑,由于平时没有做过完整的网络游戏,再加上自身网络知识功底差,根本不清楚玩家状态同步等这样一些问题的实现。
不过幸好有了之前大作业的经验,前期在构建游戏场景、实现一些基本逻辑的时候并没有遇到太大的问题。
而游戏的网络部分,通过老师实践课上的讲解以及研读老师给的示例的代码、请教老师同学,也在经历重重波折后得以实现。
整个游戏制作的过程中,小组成员分工合作,包括模型的构建与挑选、场景的构造、游戏逻辑的实现等等,大家全程参与,通力协作,根据自身能力负责各自擅长的方面。
而过程中遇到一些问题,大家或相互探讨,或查找资料,或请教老师、同学,将问题一一解决。
最后通过不断试玩调试,终于完成最终的游戏作品。
通过这样一次课程设计,使我们发现并解决了上次大作业之外的一些问题,
更多的是意识到了自身存在的一些问题。
以前的《网络与通信》课程没有好好学习,而本次课设网络部分又是重点、难点,直接导致整个制作过程遭遇重重阻碍。
加之平时又不愿意多动手实践,导致有些游戏逻辑的实现难以理解,软件常规操作不熟练等等,而这一些都成为了这次课设过程中的绊脚石。
还是那句话,熟能生巧、勤能补拙,只有通过自己不断动手实践,才能发现问题、解决问题,真正掌握知识。
虽然游戏中还少一些不足,比如没有成功实现输出至安卓平台,游戏机制稍显简单,没有关卡等等,游戏中可能还有一些其他bug,我们将会在今后的学习过程中不断改进、完善。
最后,要特别感谢老师这次课设过程中给予的帮助,给我们解决了很多问题,让我们受益匪浅。
8参考书目
[1]宣雨松.Unity3D游戏开发[M].人民邮电出版社,2012.
[2]MichelleMenard.Unity游戏开发实战[M].机械工业出版社,2012.