本篇文章旨在从玩家视角介绍一个游戏的开发过程
目录
1游戏介绍
Ruby是一个冒险家。一天,她意外地来到了一个奇妙的世界。
在这个世界里,她需要通过多重考验,完成青蛙长者的任务,修复损坏的机器人。
2游戏场景设计(游戏概况)
2.1.0菜单界面
有三个选项:
开始、关于、切换操控方式
2.1.1切换操作方式
本游戏有两种操作方式,三种操作方案,在菜单界面选择:鼠标+键盘、鼠标、键盘
2.2.0关卡1
2.2.1 游戏UI界面
左上角:
脚本实现篇:血条、游戏计时、子弹数、敌人数
右上角:
左下角:
右下角:
要击杀两个机器人才能通关
本关卡的机器人有两种状态
2.3.0关卡2
要击杀3个机器人才能通关
本关卡的机器人亦是两种状态
3 游戏功能设定(游戏细节)
3.1.0 任务开始横幅
3.1.1 与NPC长者对话
3.1.2 自动提示对话框
3.1.3 游戏的道具与道具的自动掉落
两个核心道具对应着生命值与子弹数
击败敌人奖励,自动掉落物件,灵感来自合金弹头
>>击败敌人随机掉落物件(比例1:2)
3.1.4 游戏的背景音乐与音效
分析
背景音乐
音效随距离的衰减
3.1.5 游戏状态的判定(任务完成/任务失败)
分析
3.1.6 第一关的机器人(定时切换脚本)
第一关的机器人有两种运行状态:来回巡游,追踪
每10秒自动切换一次状态
核心思想
机器人上挂载两个脚本,一个是AI脚本,一个是机器人自动巡游控制脚本
用一个空对象挂载一个管理脚本,定时切换两个运动控制脚本的激活状态
>>来回巡游脚本(机器人自动巡游控制脚本)
>>自动追踪脚本(AI脚本)
3.1.7 游戏进入下一关
空对象添加碰撞盒,挂载脚本
3.1.8 第二关的机器人(被攻击后切换脚本)
第一关的机器人有两种运行状态:来回巡游,追踪
初始一直处于来回巡游状态,直到第一次被攻击
立刻切换到自动追踪状态
跑得飞快,一不小心就GameOver了
核心思想
机器人被子弹攻击后,打开AI脚本,关闭机器人自动巡游控制脚本
>>来回巡游脚本(机器人自动巡游控制脚本)
>>自动追踪脚本(AI脚本)
3.1.9 游戏地图与游戏主角的创建
步骤
3.2.0 游戏小怪的创建
步骤
3.2.1 子弹的发射
步骤
3.2.2 人物动画的添加
在之前的基础上新增两个动作
改变后的动画状态集
部分参数
3.2.3 机器人冒烟的特效
3.2.4 游戏时长的显示与记录
UI管理脚本从玩家脚本接收其获取的游戏时长totalTime(单位:秒)
将这个数值以00:00的格式显示出来
min : sec
求min:totalTime /60
求sec:totalTime %60
min格式处理:不足10的补0
sec格式处理:不足10的补0
3.2.5 游戏的操作方式
键盘操作:
WSAD上下左右
E 与长者对话
J 攻击
鼠标操作:
左键 移动
右键 攻击
左键导航功能
玩家上只需要挂载一个脚本,无需任何插件,即可实现点哪走哪。
为了人物动画的正常显示,还需要获取人物移动的方向向量,传给动画状态集。
玩家脚本加入鼠标的瞄准和攻击功能
通过在玩家脚本上实现鼠标的瞄准和攻击功能。
获取鼠标点击处到玩家的方向向量,按照这个向量把子弹发射出去
>>点此查看玩家脚本PlayerControl
3.2.6 选择界面(彩蛋)
第二关、进入城堡即可触发
3.2.7 通过tag查询场景中剩余子弹袋
3.2.8 游戏失败时重新开始键高亮
3.2.9 解决了点击按钮造成的不必要移动
3.3.0 调试模式
4 游戏脚本实现(合集)
5 游戏功能流程图
6 游戏逻辑设定
7 游戏测试与功能展示
8 学习总结
本游戏是一款基于Unity的2D闯关系统,利用C#语言进行相关脚本的开发,实现交互功能,具有一定的可玩性和游戏体验。
玩家的目标是击杀所有机器人,为了让机器人的动作更加逼真,为机器人写了两个脚本,一是自动巡游脚本,二是自动追逐脚本。不仅如此,还为机器人添加了血量,第一次攻击被激怒,第二次才被消灭。玩家通过按下键盘WSAD键来实现虚拟角色的前后左右移动,E键与NPC对话,J键攻击。此外,还开发了鼠标操作的方案,按住鼠标左键亦可以进行移动,且更为便捷,按住鼠标右键可以瞄准并发射子弹,操作更为容易。玩家可以在菜单界面选择操作方式。
用户交互界面有很多个按钮,基本实现了当下流行游戏的常见功能,如帮助、重启、退出、菜单、静音、音量调节等。功能围绕着击杀敌人这一核心玩法来展开,为了便于新手操作,增设了新手帮助功能。玩家处于无子弹的状态、玩家死亡、玩家完成任务前往下一关、玩家操作不当、玩家通关,均会给出对应的提示。除此之外,还加入了AI技术,机器人通过AI脚本和自动寻路插件,可以实现对人的主动攻击,可玩性大大提高。
由于时间紧促,本游戏还存在着许多不足。首先,场景的布置没有十分恰当,应该明确出一条闯关的路线,玩家不击杀敌人,就无法继续前进。其次,场景设计上也有待完善,场景的元素不算太丰富,这次只用了一个Ruby的资源包。我本来打算再增加三个功能:一、敌人的随机运动,二、通关自动导航到城堡入口,三、获取道具,加快移动速度。但由于时间的原因,不能在课设上完成了。
近年来,游戏成为人们生活中不可缺少的娱乐活动,存在着广阔的前景。学好游戏开发,对于数字媒体技术专业的学生来说,是十分必要的。这次课程设计不仅使我学会了游戏开发的知识,也让我感受到了游戏开发的乐趣,希望未来可以开发更多好玩、有趣的游戏。
下载