赞
踩
博主主页:电子科技大神
博主简介:专注电子技术领域和Unity3D毕业设计项目实战,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计(单片机项目,plc,仿真,Unity3D等)、简历模板、学习资料、技术咨询。
与当前主流的注重操作与考验反应速度的刺激型游戏不同,慢节奏的策略类游戏对更多的游戏受众群体更为友好。本论文将基于Unity3D游戏开发引擎,结合刺激型战斗类游戏的趣味性以及策略型益智游戏的休闲性,开发即时战争模拟策略型游戏。多单位型游戏对比普通游戏需要更大的计算量,在单个单位的逻辑中细微的漏洞在数量的加持下也很容易成为无法处理的累赘,因此也考验着开发者的逻辑能力。本文记录了探索过程中涉及到的各领域的原理以及遇到的难点及其解决方案,希望能给到后来的开发者提供借鉴与参考。
关键词:Unity3D 3D视角 战争模拟 趣味 策略
.
本设计计划基于Astar寻路算法,以观察战略形式决定士兵落点及进攻方向的操作方式,在士兵部署后通过Astar寻路算法自动寻找距离最近的攻击目标进行寻路及攻击。制定多个士兵状态互相协调的AI系统,完成防御建筑与士兵之间的包围盒互相检测与自动攻击,制作不同的兵种AI与防御建筑类型来提高可玩性,初步设想兵种分为普通战士、拥有高额生命值的兽人族佣兵、拥有在远程攻击能力的射手或法师;防御建筑类型分为单体攻击的弓箭发射塔及范围伤害的炮塔。在士兵部署后玩家可以通过使用通关后获得的辅助魔法辅助场上的士兵进行作战。每一关根据持有的金币雇佣不用费用和属性的兵种进行战斗。让玩家在观察进攻地形的同时思考优势兵种以及进攻思路从而获得战斗奖励,在战斗中让防御类建筑概率掉了辅助魔法药水,增加战斗的多样性和未知性,从而增添游戏的趣味性。在场景中使用火焰、雷电、爆炸等粒子效果增加游戏的视觉冲击力。
撒本设计将完成一款缓解生活中快节奏状态的休闲即时战略游戏,用于调整工作生活中的不良情绪,同时在闲暇时间感受游戏的带来的快感,体验用领袖的玩家视角调遣战士进行攻击的感觉,从而达到在游戏后心旷神怡的良好状态的目的。亦能在游戏中锻炼到玩家的、判断能力和逻辑思维能力和对环境的观察能力,发挥策略型游戏的良性功能。
能够获取鼠标点击信息的按钮以及在游戏场景中再次点击后能够在鼠标指针处生成对应兵种的士兵。
生成的士兵能够自动寻找距离最近的敌方目标绕开障碍物进行寻路。
敌方建筑能够被士兵攻击并破坏消除。
士兵破坏首要目标后能够自动寻找下一个攻击目标并自动寻路。
士兵需要能够被防御型建筑物攻击造成伤害并消除。
拥有远程攻击能力的士兵需要能够隔着城墙攻击墙内的建筑物。
防御型建筑需要选中进入范围的士兵进行攻击。
防御型建筑在消灭当年攻击目标前不能将火力转向其他目标。
需要有选定防御建筑为攻击目标的兵种。
需要有范围攻击的防御建筑。
攻击目标消灭后能够自动选择下一个目标,直到范围内没有目标为止。
带有生命值的游戏物体在受到伤害时候需要能够显示血条。
血条需要以不同的颜色来动态地反映游戏物体的生命状况。
构建金币系统,玩家通过使用拥有的金币雇佣士兵,进行游戏获得金币。
构建根据破坏程度来对游戏结果进行评分的评分系统。
声音开关选项按钮、暂停按钮、认输按钮和重新开始按钮。
需要有开始界面、兵力储备界面、加载界面、结束界面。
士兵生成按钮点击后响应时间在0.2秒以内。
士兵寻路AI响应时间在0.2秒以内,寻路过程中除非目标丢失不得停顿 。
士兵在抵达攻击范围处在0.2秒内需要做出攻击。
士兵目标丢失后停顿时间在0.5秒内需要做出寻找新目标行为。
防御塔在目标进入范围的响应时间在0.2秒内。
防御塔丢失当前目标后重新选择攻击目标的响应时间在0.2秒内。
在场景中存在50个或以上AI同时自动行动时候保持流畅。
在场景中连续使用10个以上法术召唤大量陨石时需保存流畅。
建筑物在游戏中拥有最高的生命值。
单体攻击型建筑在游戏中拥有最高的攻击距离。
单体攻击建筑攻击力数值需要高于范围攻击建筑的攻击力数值。
肉盾战士在士兵中拥有最高的生命值体现肉盾价值。
肉盾战士只能拥有最低的移动速度。
远程士兵只能拥有较少的最大生命值和攻击力。
远程士兵的攻击距离应小于任何防御型建筑物的攻击距离。
游戏内的对象大致分为三种:士兵、防御塔和法术药水,士兵功能包括选择目标、寻路移动、攻击和死亡;防御塔功能包括选择攻击和受损;法术药水功能包括碰撞伤害和粒子效果,整个游戏的大体功能图如下。
图3-1 游戏功能图
玩家在进入游戏后在士兵购买页面购买士兵进入游戏场景,在场景中点击士兵选择按钮部署士兵,士兵AI开始行动,AI全部阵亡则游戏失败,摧毁所有目标则游戏胜利,整个运作过程如下。
图3-2 游戏流程图
E-R图中展示了士兵实体、法术药水实体及陨石实体的基本属性及与建筑物实体之间的联系,士兵实体中包含了两个特殊实体弓箭兵和肉盾战士,分别拥有远程攻击距离和优先攻击防御建筑的特性,图示如下。
图3-3 E-R图
在这里谈一下游戏开发过程中的感受吧,首先是在游戏开发尚未启动时的设想阶段,在体验其他游戏的时候总是会想把数不胜数的有趣炫酷的内容加入自己的游戏中来,这样的行为大大地增加了项目启动难度和前期的工作压力。缺乏完整项目开发经验会导致许多看起来简单的功能在实现过程中变成巨大的难题,因为我总是做一步看一步,分模块实现的时候缺乏整体性的考虑,只顾着当前模块的功能实现,所以在模块功能整合发现问题时,逻辑的改写需要花费大量时间,这足以直接破坏整个游戏的开发计划,因此强化整体性思维是十分重要的,条件考虑周全能大幅度减少工作量,这是我在开发过程中收获的教训,相信这个教训能够让我在下一次进行项目开发的时候轻松一些。
在开发过程中,充分查阅所使用的官方文档是最为正确且最为必要的,官方文档中有最全面的内置函数说明,熟悉API中提供的方法,能够避免在实现功能重复模块上花费大量时间的情况出现,也正是古人所总结出来的“磨刀不误砍柴工”的道理。
目 录
第一章 绪论 1
1.1 概括 1
1.2 选题的意义和目的 1
1.3 国内外的发展及现状 1
1.4 设计思路 3
第二章 游戏开发工具介绍 4
2.1 游戏引擎 4
2.1.1 Unity3D游戏开发引擎 4
2.1.2 A*PathFinding组件 4
2.1.3 物理引擎 5
2.1.4 粒子效果系统 5
2.2 C# 6
2.3 VS 6
2.4 Audacity 6
2.5 VLC 6
2.6 GIMP 7
第三章 游戏设计 8
3.1 目标和任务 8
3.2 功能需求分析 8
3.3 性能需求分析 8
3.4 数据需求分析 9
3.5 总体设计 9
3.5.1 游戏功能图 10
3.5.2 游戏流程图 11
3.5.3 E-R图 12
第四章 游戏素材 13
4.1 模型获取 13
4.2 动画获取 16
4.3 粒子效果获取 16
4.4 布置场景和预制体 16
第五章 游戏设计 17
5.1 搭建场景 17
5.1.1 场景设计 17
5.1.2 场景制作 17
5.2 士兵脚本 19
5.2.1 士兵基本属性基类 19
5.2.2 AStarPathfinding插件实现寻路实现原理与使用 19
5.2.3 肉盾战士 21
5.2.4 战士寻路函数 21
5.2.5 战士攻击函数 22
5.2.6 弓箭兵寻路函数 24
5.2.7 弓箭兵攻击函数 24
5.2.8 弓箭运动脚本 26
5.3 建筑物脚本 26
5.3.1 普通建筑基类 26
5.3.2 防御塔类 27
5.3.3 炮弹逻辑 27
5.4 法术支援 28
5.4.1 陨石法术药水脚本 28
5.4.2 爆炸粒子效果 29
5.5 摄像机脚本 30
5.5.1 摄像机旋转 30
5.5.2 摄像机运动 31
5.5.3 鼠标滚轮与正交摄像机与透视摄像机交互 32
5.6 UI设计 33
5.6.1 士兵血条 33
5.6.2 防御塔血条 34
5.6.3 士兵数量栏与摧毁度评级 34
5.6.4 其他游戏界面 35
5.7 添加音效 37
5.8 其他优化 38
5.9 游戏包导出 41
第六章 游戏测试 42
6.1 试玩体验 42
6.2 数值调整 42
6.3 玩家体验优化改进设想 42
第七章 总结 44
参考文献 45
致谢 46
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。