论文部分内容阅读
摘 要:近年来,随着智能手机的普及,人们接触游戏更加便捷,这使得游戏产业迅猛发展,尤其是3D网络游戏,受到了人们热烈的追捧。本文首先介绍了什么是Unity3D,之后又分析了基于Unity3D的多人在线网络游戏的设计情况,希望能够为相关的游戏设计和开发提供一定的借鉴和参考。
关键词:Unity3D;网络游戏;系统;算法
引言
目前,3D网络游戏受到了人们广泛的欢迎,尤其是一些大型多人在线网络游戏,占据着游戏产业的半壁江山。对于3D网络游戏而言,开发工具以及开发平台具有决定性的作用,而Unity3D具有得天独厚的优势,完全能够满足游戏开发设计的需求。
1.Unity3D概述
Unity3D是丹麦一家公司推出的游戏开发工具,这款工具更加重视对游戏可玩性方面的研究,并且便于游戏设计者和开发者操作,同时价格低廉。Unity3D的显著特点包括:能够呈现出高品质的画面,尤其是使用的光照贴图技术处于行业领先地位,玩家在近距离观察时可以看到阴影以及表面的细节。同时渲染延迟的能力不俗,可以在特定场景内创建不同的光源,并且不影响整体的运行性能。另外,无论是微软系统还是苹果系统,Unity3D的脚本都完全兼容,同时在设计游戏时可以断点执行,随时处理问题。至于具体的音频参数,Unity3D产生的衰减曲线可以进行编辑,这样使用者就能够做到对声音的环境进行控制和调整。值得一提的是,对于一些大型的游戏,比如王者荣耀、绝地求生、龙之谷等,占用空间都在1G以上,而Unity3D内存管理器可以迅速查找相关的内容,并且可以预览和进行标记。因为很多玩家需要在手机、电脑以及PAD上同时存储游戏,而Unity3D完全支持在不同设备上运行同款游戏,并且进度保持一致,不需要下载和更新。
2.基于Unity3D的多人在线网络游戏的设计
多人在线网络游戏对于网络流畅方面的要求特别严格,一旦出现网络延迟,就会对整个游戏产生不可逆转的影响,所以游戏的客户端的实时率需要得到很好的保证,而且对于游戏人物的配音、皮肤以及动态效果,需要保证逼真同时形象生动。下面从结构、算法、脚本和程序四方面简要分析一下基于Unity3D的多人在线网络游戏的设计过程。
2.1系统结构
一般而言,多人网络在线游戏的结构分为两大部分:服务器与客户端。客户端包括游戏控制、美术处理与接口管理三部分,而服务器包括数据库、賬号管理与网络服务三部分。通常情况下,服务器下面有多个子程序相互连接,这样可以避免多个模块之间出现干扰,尤其是能够提高编译的耦合度。至于客户端,因为采用Unity3D技术,能够减轻后期维护的压力。网络游戏与单机游戏最大的区别在于能够实现玩家之间的实时互动,相关的代码都在服务端运行,这样能够避免一些玩家在游戏中使用外挂,维护健康的游戏环境。具体的服务器代码如下:
public class CreateServer:MonoBehaviour{
int port=100000;
void On(){
switch(Network.peerType){
case Disconnected:
Server()
break;
case PeerType.Connecting:
break;}
}
}
2.2取值算法
对于大多数网络游戏而言,鼠标的作用不容小觑,虽然在手机端或者是移动端,无法使用鼠标,但是Unity3D开发出的可触摸操作杆,与鼠标的作用一致,从而实现了交互式的替代控制。通过具体的角色,通过取值进而控制角色的行为,尤其是在一些立体场景中,需要借助地图,找到相应的位置,并根据坐标指示进行移动,而且在移动之后,移动结果会上传到服务器中,这样才能做到同步。取值算法的核心在于对角色进行精准的控制和定位,而且不应该受到场景的影响,以往在游戏中常常出现卡屏的情况,就是取值算法的代码出了问题,并不能很好地取点,对于一些特殊点也不能实现替代[1]。通过Unity3D可以对点进行分析,如果不符合要求,则会果断抛弃,之后就近选择可以替代的点。
2.3脚本系统
对于网络游戏而言,人工智能在其中发挥着巨大的作用,如果游戏配有智能系统,那么会极大地提升游戏体验。Unity3D的脚本系统采取组合的方式,不同的数据库之间脚本文件相互独立,便于查询。具体的设计流程如下:首先判断状态是否出现变化,如果出现变化,则需要切换模式动画,产生动态的效果,并且根据取值结果进行调试。以三国杀为例,当场上同时存在八名武将时,需要制定相应的出牌顺序,尤其是一些武将技能特殊,可能多次出牌或者是在回合外行动,所以需要根据人工智能启动相应的策略,决定谁有优先的行动权,并且在对战过程中,由于反馈会有顺序,而武将技能会出现类似的情况,所以一定要合理安排顺序,避免游戏出现混乱[2]。同时三国杀还有特殊的模式,就是武将暗置,身份不明,这就需要人工智能根据状态和行为的脚本,确定攻击范围,尤其是超过攻击范围应该变换颜色,禁止出牌,这样才能保证游戏卡牌产生应有的效果,并与卡牌说明保持一致。
2.4协同程序
对于游戏玩家而言,操作简单的游戏界面更易受到欢迎,尤其是创建角色和更换皮肤时,动态效果能够让人赏心悦目,同时如果游戏不占用内存,会缩短游戏的等待时间。尤其是目前很多游戏等待时间过长,通常一局游戏半小时左右,但是等待时间可能在五分钟以上,而通过协同程序,可以保证游戏中途有玩家进入,并且在游戏结束后统一计算功勋、贡献以及正负值等。虽然协同程序占据了系统的空间,但是能够显著缩短数据的读取时间,尤其是能够保证内存不被泄露。正是因为协同程序发挥作用,使得玩家能够频繁进行武将技能以及模式的切换。
结论
综上所述,笔者对基于Unity3D的多人在线网络游戏的设计进行了详细的分析,并且结合相关的例子,发现Unity3D开发和设计的网络游戏场景逼真,更为突出的是,无论是在电脑端还是手机端,游戏的运行都十分流畅,能够为玩家提供良好的游戏体验。
参考文献
[1]邓华丽.探讨基于Unity 3D游戏开发流程[J].电脑编程技巧与维护,2018(07):156-157+176.
[2]薛玉倩.基于Unity3D的网络游戏[J].内蒙古科技与经济,2018(13):86-87.
(作者单位:大连工业大学艺术与信息工程学院艺术设计系)
关键词:Unity3D;网络游戏;系统;算法
引言
目前,3D网络游戏受到了人们广泛的欢迎,尤其是一些大型多人在线网络游戏,占据着游戏产业的半壁江山。对于3D网络游戏而言,开发工具以及开发平台具有决定性的作用,而Unity3D具有得天独厚的优势,完全能够满足游戏开发设计的需求。
1.Unity3D概述
Unity3D是丹麦一家公司推出的游戏开发工具,这款工具更加重视对游戏可玩性方面的研究,并且便于游戏设计者和开发者操作,同时价格低廉。Unity3D的显著特点包括:能够呈现出高品质的画面,尤其是使用的光照贴图技术处于行业领先地位,玩家在近距离观察时可以看到阴影以及表面的细节。同时渲染延迟的能力不俗,可以在特定场景内创建不同的光源,并且不影响整体的运行性能。另外,无论是微软系统还是苹果系统,Unity3D的脚本都完全兼容,同时在设计游戏时可以断点执行,随时处理问题。至于具体的音频参数,Unity3D产生的衰减曲线可以进行编辑,这样使用者就能够做到对声音的环境进行控制和调整。值得一提的是,对于一些大型的游戏,比如王者荣耀、绝地求生、龙之谷等,占用空间都在1G以上,而Unity3D内存管理器可以迅速查找相关的内容,并且可以预览和进行标记。因为很多玩家需要在手机、电脑以及PAD上同时存储游戏,而Unity3D完全支持在不同设备上运行同款游戏,并且进度保持一致,不需要下载和更新。
2.基于Unity3D的多人在线网络游戏的设计
多人在线网络游戏对于网络流畅方面的要求特别严格,一旦出现网络延迟,就会对整个游戏产生不可逆转的影响,所以游戏的客户端的实时率需要得到很好的保证,而且对于游戏人物的配音、皮肤以及动态效果,需要保证逼真同时形象生动。下面从结构、算法、脚本和程序四方面简要分析一下基于Unity3D的多人在线网络游戏的设计过程。
2.1系统结构
一般而言,多人网络在线游戏的结构分为两大部分:服务器与客户端。客户端包括游戏控制、美术处理与接口管理三部分,而服务器包括数据库、賬号管理与网络服务三部分。通常情况下,服务器下面有多个子程序相互连接,这样可以避免多个模块之间出现干扰,尤其是能够提高编译的耦合度。至于客户端,因为采用Unity3D技术,能够减轻后期维护的压力。网络游戏与单机游戏最大的区别在于能够实现玩家之间的实时互动,相关的代码都在服务端运行,这样能够避免一些玩家在游戏中使用外挂,维护健康的游戏环境。具体的服务器代码如下:
public class CreateServer:MonoBehaviour{
int port=100000;
void On(){
switch(Network.peerType){
case Disconnected:
Server()
break;
case PeerType.Connecting:
break;}
}
}
2.2取值算法
对于大多数网络游戏而言,鼠标的作用不容小觑,虽然在手机端或者是移动端,无法使用鼠标,但是Unity3D开发出的可触摸操作杆,与鼠标的作用一致,从而实现了交互式的替代控制。通过具体的角色,通过取值进而控制角色的行为,尤其是在一些立体场景中,需要借助地图,找到相应的位置,并根据坐标指示进行移动,而且在移动之后,移动结果会上传到服务器中,这样才能做到同步。取值算法的核心在于对角色进行精准的控制和定位,而且不应该受到场景的影响,以往在游戏中常常出现卡屏的情况,就是取值算法的代码出了问题,并不能很好地取点,对于一些特殊点也不能实现替代[1]。通过Unity3D可以对点进行分析,如果不符合要求,则会果断抛弃,之后就近选择可以替代的点。
2.3脚本系统
对于网络游戏而言,人工智能在其中发挥着巨大的作用,如果游戏配有智能系统,那么会极大地提升游戏体验。Unity3D的脚本系统采取组合的方式,不同的数据库之间脚本文件相互独立,便于查询。具体的设计流程如下:首先判断状态是否出现变化,如果出现变化,则需要切换模式动画,产生动态的效果,并且根据取值结果进行调试。以三国杀为例,当场上同时存在八名武将时,需要制定相应的出牌顺序,尤其是一些武将技能特殊,可能多次出牌或者是在回合外行动,所以需要根据人工智能启动相应的策略,决定谁有优先的行动权,并且在对战过程中,由于反馈会有顺序,而武将技能会出现类似的情况,所以一定要合理安排顺序,避免游戏出现混乱[2]。同时三国杀还有特殊的模式,就是武将暗置,身份不明,这就需要人工智能根据状态和行为的脚本,确定攻击范围,尤其是超过攻击范围应该变换颜色,禁止出牌,这样才能保证游戏卡牌产生应有的效果,并与卡牌说明保持一致。
2.4协同程序
对于游戏玩家而言,操作简单的游戏界面更易受到欢迎,尤其是创建角色和更换皮肤时,动态效果能够让人赏心悦目,同时如果游戏不占用内存,会缩短游戏的等待时间。尤其是目前很多游戏等待时间过长,通常一局游戏半小时左右,但是等待时间可能在五分钟以上,而通过协同程序,可以保证游戏中途有玩家进入,并且在游戏结束后统一计算功勋、贡献以及正负值等。虽然协同程序占据了系统的空间,但是能够显著缩短数据的读取时间,尤其是能够保证内存不被泄露。正是因为协同程序发挥作用,使得玩家能够频繁进行武将技能以及模式的切换。
结论
综上所述,笔者对基于Unity3D的多人在线网络游戏的设计进行了详细的分析,并且结合相关的例子,发现Unity3D开发和设计的网络游戏场景逼真,更为突出的是,无论是在电脑端还是手机端,游戏的运行都十分流畅,能够为玩家提供良好的游戏体验。
参考文献
[1]邓华丽.探讨基于Unity 3D游戏开发流程[J].电脑编程技巧与维护,2018(07):156-157+176.
[2]薛玉倩.基于Unity3D的网络游戏[J].内蒙古科技与经济,2018(13):86-87.
(作者单位:大连工业大学艺术与信息工程学院艺术设计系)