文摘
网络游戏的发展是近年来全面展开,这是3 d的方向发展,细腻,达到显著的受欢迎程度。然而,有许多设计3 d游戏时所面临的挑战,针对特定的用户组和可以稳定运行。数据驱动技术可以收集游戏偏好和识别常见的技术缺陷等问题在游戏设计框架的有效完成。解决问题和困难的获得3 d游戏的数据和框架设计的缺陷的可能性,本文采用数据驱动技术描述性的分析获得的数据通过网站日志文件,网络信标,JS页面标签和构造一个网络后尝试游戏的3 d建模的数学模型。为了这个目的,一个3 d游戏框架设计成功。测试服务器的数据后三种情况虽然有4000年,8000年和12000年玩家在线在给定的时间,在每个连续3天,并得出结论:这三个病例的平均CPU占用率低于50%,尤其是在约30%的范围对于大多数这些球员。此外,它可以稳定支持约10000同时在线玩家相对较长的一段时间。游戏服务器和角色服务器,结果是优秀的和有潜力成为未来采用3 d游戏产业。
1。介绍
数据驱动指的是创建数据分析工具,构建数据分析功能,最重要的是,创建一个数据驱动的决策和行动的文化。数据驱动的组织不同于其他的分析方法。数据收集和获取需要一些先决条件,然后比较详细的报道,警报,和分析。有许多类型的未来的数据分析方法,和他们不同的复杂性。数据驱动的创新的基础在于识别、采集和融合不同来自不同数据源的数据。不同或创新的数据主要分为互联网数据和公益方面的内部数据。互联网数据主要是指大量的网络数据提取技术、博客、技术报告、专利信息,和社交媒体。另一方面,企业内部数据参考数据从企业资源规划(ERP)和网络交易系统,企业报告,产品交易数据和内部专业知识。收集、融合和创新的大数据分析可以精确地监控和预测用户的需求和技术发展趋势,并为企业创新提供方向和游戏或软件设计。
在线游戏已经持续增长年均超过30%在过去的10年里,仍然有很多的发展空间。网络游戏产业日益标准化随着时间的发展。网络游戏的负面报道和描述在过去是很常见的消失。网络游戏越来越适合任何年龄段的娱乐需求,已逐渐成为一个低成本国家休闲和娱乐的方式。数据驱动的技术也可以用来作为网络游戏设计的有力工具。本文的创新如下:(一)本工作采用数据驱动的方法,获取数据的不常用的游戏设计的早期阶段(b)本工作设计一个相对大规模3 d服务框架。从这部小说的角度来看,它可以使用其他同行研究人员参考
本文的其余部分组织如下:在部分2,给出了相关工作。节3,提出了网络化数据驱动技术的3 d游戏设计。节4,给出了实验结果。最后,这项工作是总结部分5。
2。相关工作
在过去的十年里,许多领域取得了数据驱动模型中的一个突破。是否经营或软件设计,数据驱动技术为其发展提供了技术支持。促进研究在这一领域,作者在1)进行了一次广泛的调查公开数据集适用于数据驱动学习的对话系统,用它们学习不同的对话策略,而其他可能使用数据驱动技术的建议。然而,这项研究缺乏数据集之间转移学习方法和利用外部知识为学习目标选择合适的评价指标。在[2),作者研究了输出一致性问题的一类非线性多智能体系统与网络切换拓扑和时变延迟数据驱动的,并提出了一种新颖的分布式数据驱动的共识协议。该方法的缺点是依赖于相邻的输入和输出数据代理和不能保证闭环稳定性和一致性。在[3),作者提出了一种数据驱动的,基于近似方法主要•库普曼特征值,特征函数,高维状态空间问题的模式。然而,患有计算的方法问题,由于存在大量的功能需要跨越“丰富”的子空间在此应用程序中所有可能的标量可见。在[4),作者提出,数据驱动的ROI选择nonindependent,它使用的数据分析来确定ROI的位置,因此,它有可能选择ROI基于experiment-specific信息检测效果和提高能力。然而,他提议方法仍然需要改进的准确性。
除了这些研究,作者在5]采用数据驱动的方法,尤其是基于系统识别、开发非线性自回归外源输入模型结构对应于热带湿地动态替代经典的地形建模方法。本研究提出的工作为数据驱动的环境研究提供了许多经验教训,但需要进一步加强实用性。在[6),作者提出了一种数据驱动的决策支持系统(DSS)实现路线基于教育数据集市,这导致了数据驱动的设计领域的教育,和其他数据驱动的研究人员提供灵感。研究有很大的帮助电脑设计师,但研究的范围不够广泛,和适用性仍然需要改进。在[7),作者提出了一种数据驱动的多变量系统控制设计模型参考框架来估计固定结构控制器不使用流程模型通过嵌入控制设计问题的预测误差识别最优控制器。然而,由于控制器的特殊结构设计,优化问题的解决方案很复杂,和许多研究仍需要大规模推广。
3所示。数据驱动的方法技术在网络3 d游戏设计
指标和数据分析的基础。是否定性分析或定量分析,数据总是作为原材料和基础进行分析。因此,为了充分理解数据驱动,有必要从数据分析的基本指标(8]。当解释各种指标和数据从不同的网站分析报告,需要了解它们的定义和计算规则。必须获得的基本知识是如何获取数据的网站(9]。下面描述了数据采集的基本方法和原始数据的形式存在。
3.1。数据驱动技术的数据采集方法
事实上,数据统计有很长的历史,因为网站管理员需要了解和监控网站的访问状态记录和统计网站流量的基本数据。然而,由于网站技术和业务的不断发展,人们有越来越多的数据需求。实现更复杂的操作来提高质量的网站,网站的数据采集方法还与网站技术的进步不断发展,深化人们对网站的需求数据10]。从利用和开发的角度来看,主要分为三类:网站日志文件,网络信标(俗称点),JS标签页。事实上,这三个数据采集方法也反映了一个先进的过程。从网站日志JS标签,每个部分以下技术跟踪和改进之前的技术,避免一些可能的先前技术的缺陷和不足。
3.1.1。网站日志文件
这些资源请求网站日志文件不仅包含页面请求,而且所有相关元素要求显示的页面将被记录,比如图像、CSS和文件(flash,视频,音乐),和一些框架也将记录为请求。这些内容生成的筛选和过滤的工作带来了很大的成本,同时会导致不准确的统计数据(11]。日志文件的另一个缺陷是,由于数据采集是在服务器端执行的,许多用户操作页面上的边(如点击和Ajax使用)不能被记录,这限制了某些指标的统计和计算12]。
3.1.2。网络信标
网络信标的方法实现的分离日志服务器和应用程序服务器的网站。当请求一个页面时,传统的网站日志记录是6到10。日志记录的数量由网络信标的方法只有1/8的原始服务器日志(13]。传统的流量统计工具,如AWStats和Webalizer用点击来记录原始记录的数量,一般6 - 10倍正常页面浏览量的PV甚至超过20倍一些复杂的网站。网络信标的出现保证了数据统计的效率和准确性。网络信标的数据采集方法如图1。
网络信标的最大缺点是有限的获取信息;尤其是记录(推荐)的源页面图片所在页面,页面的前一页。与此同时,由于分离从网站应用程序服务器,用户cookie的记录和其他信息也可能丢失。因此,简单地使用网络信标不能完全获取所需的信息网站分析指标,所以JS页面标签出现。
3.1.3。JS页面标签
JS页面标记方法具有数据采集的灵活性和可控性的优势,以及信息采集的完整性。它可以监视页面上的各种操作,如点击和Ajax。唯一的缺点是,当用户禁用JS函数时,所有信息将不可用(14]。JS页面标记的数据采集过程如图2。
3.2。数据驱动和应用方法
本节列出统计和可视化工具来了解所需的数据,和描述性的分析是最简单的一种分析。定量描述和总结了数据集,重要的是,它所描述的数值特征数据样本,并避免描述关于人口的数据所属的任何信息,这自然始于单变量分析是指描述一个变量(列或域)的数据(15]。
描述性分析是一个重要的第一步,但数值泛化到目前为止只能得到它。一个重要的问题是,大量的数据被压缩成几个通用指标。因此,不难想象不同的样本分布,形状和属性可能获得相同的汇总统计。在图3两个样品有相同的意思,即。,100, but their distributions are quite different [16]。
这种情况并不奇怪,有许多可能的“解决方案”的简单归纳统计单变量的意思是,因为很多不同的样本可以得到相同的意思。在这种情况下,一批新的数据挖掘可以出现,改变分析处理大量数据的方式,允许我们来获得期望的结果更快、更经济地(17]。它不仅可以处理结构化数据,还分析和处理各种各样的半结构式和非结构化数据,并在某种程度上,它是更好的在处理非结构化数据。特别是在分析软件或网站的设计,正是这种类型的数据,需要更多的集成,所以结果更准确、可靠的,它有一个质的提高处理的数据量(18]。
在获得所需的游戏数据,这些数据可用于关键技术在游戏中网络层架构设计。这些关键技术是针对某个方面的设计要求,并给出了设计思路和解决方案。服务器网络层体系结构的基础设施服务器应用软件,这对服务器的发展至关重要。服务器网络层需要有效地处理大量的网络消息,从而减少客户端请求服务器的响应时间,提高游戏的实时性能。服务器的网络带宽是一种宝贵的资源,占很大一部分的游戏操作成本。有必要减少网络带宽的消耗网络尽可能多的消息。在一定的网络带宽条件下,减少网络带宽被每个玩家占领意味着服务器可以处理更多的球员请求,服务器操作提高了收入。所有应用程序服务器组采用一致的网络层的架构,这不仅使代码更容易维护,但也提高了代码的可重用性(19]。服务器网络层架构设计本文数据分析后得到如图4。
网络层采用独立于平台的通用网络消息描述语言作为网络协议和采用线程池技术。在此基础上,网络层之间的统一界面,游戏逻辑层设计,所以网络层适合所有类型的服务器应用程序服务器组。
3.3。在线游戏3 d建模量化的数学模型
在游戏中,3 d建模图像预处理的具体过程如下:首先,在产品作品受到二进制图像平滑、阈值分割图像背景的不属预定目标的信息过滤掉,然后产品的轮廓和边界特征提取。可以获得,从轮廓边界上的一个特定的点,让周围一圈顺时针或逆时针方向的边界,中心坐标的轮廓可以进一步表示为
为了方便下一个傅里叶变换,复杂的函数关系是用来表达三维轮廓点坐标序列
后消除偏心
假设新插值点的统一编号,样品的周边形状限制
然后,采样间隔相等的弧长
假设年代th新的插值点之间的初始轮廓点z(米),z(米+ 1),从最初的轮廓点的距离z(米)的起始点 然后,的距离年代th新的插值点的起点
公式基于两点之间任意点的坐标
下一个是三维建模的数学描述椭圆傅里叶:
因此,任何闭合轮廓可以被描述为一组椭圆傅里叶系数包含n谐波频率为
以来的公式,位置,方向,和规模不同的轮廓图像预处理后是不同的,他们的椭圆傅里叶系数数据不一致,并且由于直流分量的椭圆傅里叶系数只反映了轮廓的位置,它是无用的在描述建模20.]。与该组件 ,的第一个椭圆轮廓的中心可以搬到坐标标准化的起源位置。
取向规范化是通过改变椭圆傅里叶系数根据以下公式:
在这里,起点之间的角的轮廓线连接原点和椭圆的主轴;是椭圆的旋转的顺序; , , ,和是第一个椭圆的四个系数。
计算第一个椭圆的大小E1,然后每个系数除以E1规模达到规范化,有
作为一个方法来探索相关的变量,主成分分析是基于线性变换,和原来的多元数据由少量的线性独立主成分数据。主成分数据显示原始数据之间的内在联系,消除其相关性,从而降低数据维度和简化高维数据的分析和处理过程,获得X:
计算相关系数矩阵的矩阵X,得到每个主成分的表达式
DF2D包含所有建模的主要元素数据信息的整个3 d建模样本和一个重要的数据库和数据来源产品三维图像建模设计(21]。通过使用不同的每个建模样本的主要元素,不同外形的影响建模样本可以重建。
3.4。网络3 d游戏服务器框架设计原则
通过前面的分析,网络游戏服务器的基本要求设计被理解。本节提供了一个服务器框架设计方案分析的基础上游戏需求和游戏服务器需求。在服务器架构设计之前,需要了解一些重要的设计原则。
3.4.1。简单的架构设计
所谓的简单意味着软件设计应保持尽可能简单的前提下满足用户的需求,包括服务器的物理拓扑结构和软件的框架设计。简单的架构设计可以极大地提高系统的可靠性和可维护性。
3.4.2。改善糟糕的设计
服务器架构的设计之初,最坏的可能的问题是评估尽可能和改进计划为这些问题而设计的。也就是说,提高整个系统的瓶颈将改善所有用户的体验。
3.4.3。减少带宽消耗
游戏服务器的带宽是一个重要的资源,所以减少带宽消耗应该是一个高优先级的设计。
3.4.4。尝试使用一个分布式架构
服务器的分布式体系结构具有以下优点:服务器的可扩展性强,可以增加或减少服务器的数量根据负载情况,以适应不同的负载情况。避免单点故障可以防止损坏一台服务器或一个服务器进程崩溃影响所有球员。增加动态负载平衡的能力减少特殊类型的服务器的数量。当负载增加时,可以根据负载情况动态调整在一组相同类型的服务器,利用现有的硬件和软件资源尽可能多的(22]。它减少了硬件需求和节省成本,因为当负载增加时,可以增加处理能力增加机器,所以多个低成本、低档次机器可以代替一个高成本,高性能机器,从而节约成本。同时,因为服务器可以根据负载情况增加或减少,它避免了高成本的空缺,高性能机器当负载是不够的。游戏操作由多个组服务器,和每组服务器都是一个独立的游戏世界;也就是说,每组服务器之间没有关系,如图5。
玩家使用游戏客户端通过广域网连接到web服务器,通过身份验证后,他们选择登录游戏服务器组玩游戏。客户端通过身份验证后web服务器,web服务器返回一个登录服务器的IP地址和端口号在游戏服务器组,和客户端连接到登录服务器通过这个IP地址和端口号(23]。后由登录服务器对客户端进行身份验证,它返回一个代理服务器地址,然后客户端连接到代理服务器启动游戏的过程。它可以看到客户端连接到代理服务器是由登录服务器,因此可以实现一定程度的动态负载平衡。例如,登录服务器可以允许客户端连接到代理服务器CPU使用率较低。
游戏服务器的选择也类似:当球员们在房间里准备开始战斗,大厅服务器将选择一个游戏服务器,这群玩家可以连接到这个游戏服务器计算逻辑。角色的选择服务器是由代理服务器,采用一致的散列算法,系统的性能可以通过增加或减少动态调整角色服务器根据负载情况。
4所示。设计实验和在线3 d游戏的关键指标
基于前面章节中介绍的方法和框架,这一章进行实验分析游戏设计和关键指标。下面首先介绍了实验环境,然后进行测试并给出结果和评价。测试选择Windows Server 2003作为操作系统,安装在2 8核刀片服务器3 4核刀片服务器,其中一个用于运行测试的工具。服务器监控和管理软件(GMTool)安装在台式电脑上的Windows XP操作系统。特定的硬件和软件配置的服务器组如表所示1。
web服务器、代理服务器和登录服务器听外部网络端口,和其他服务器上运行的内部网络。代理服务器,登录服务器使用双网卡隔离内部和外部网络。如图6,一个服务器组包括8类型的服务器,这些服务器是通过TCP协议连接到对方。
4.1。一致性哈希算法的测试对象映射
一致性哈希提出了解决分布式存储在动态网络拓扑结构和路由问题。它本质上是一个散列算法。优点是有更少的重新计算(冲击)当添加或删除节点在网络拓扑。例如,如果多个对象存储在一个服务器群组成的n机器,希望这些对象可以均匀分布在这组机器。最简单的公式可以被认为使用一个散列算法 ,其余的散列算法,在哪里o是对象存储,国防部是模函数。然而,问题就在于增加或减少服务器的数量,这个公式 增加服务器,减少服务器 。图7显示相应的趋势和服务器的对象之间的关系。可以看出,几乎所有对象在服务器需要重新映射到不同的服务器,所以这些对象需要移动到新服务器。显然,这种方法不适合。一致性哈希算法可以确保当减少服务器,只有减少服务器上的对象需要搬迁。当添加服务器,只有少数的对象需要搬迁,从而减少需要添加或减少服务器冲击。一致性哈希算法的主要功能是使用相同的哈希函数对象和服务器映射到相同的散列空间。
当服务器的数量很小,这些服务器上的对象的分布可能不均匀,加入虚拟节点和解决方案。服务器对应多个虚拟节点和对象映射到这些虚拟节点属于同一个服务器。
如图8四个物体,即对象1到对象4,结果在使用一致性哈希允许定义对象之间的对应关系和服务器如下:一个对象属于第一个服务器节点上发现的环顺时针方向。因此,对象1和对象2属于服务器2,对象3属于服务器3,和对象4属于服务器1。当有两个服务器,服务器1和服务器2,服务器1对应于两个虚拟节点,也就是说,服务器1和服务器1 b,服务器2对应于两个虚拟节点,即服务器服务器2 a和2 b和分布对象对象1到2的结果进行了比较。1属于服务器3,显然,对象和对象2属于服务器4。当添加或删除一个服务器,虚拟节点对应于相应的服务器可以添加或删除。
4.2。服务器的动态增减
的动态增加或减少服务器指的是处理的服务器数量增加时根据服务器的负载组或服务器崩溃时由于一些异常没有重启服务器组。在这里,一致的散列算法的特征也被用来减少重新计算玩家的冲击由于增加或减少服务器的位置。
4.2.1。准备减少服务器的数量
当一台机器在一个服务器组死了,希望对玩家的影响降到最低。逻辑上独立的服务器类型,如代理服务器和游戏服务器崩溃只会影响玩家连接到这些机器,不是播放器连接到其他服务器。角色服务器的分布式处理,情况有点复杂。
4.2.2。添加服务器
逻辑上独立的服务器类型,如代理服务器和游戏服务器,添加服务器没有影响球员和新玩家将使用新添加的服务器根据一致性哈希算法。对于角色服务器,玩家对象的重新映射需要处理。当角色服务器3是补充说,以前的球员1对象映射到服务器1重新映射到新添加的字符服务器3,但玩家1字符服务器上的对象仍然是1。游戏的运行过程中,玩家1的对象数据迁移到角色服务器3太贵了。
如图9,当删除服务器2,对象在服务器2重新计算的散列值并将它映射到服务器3。添加服务器4时,键值散列由服务器4位于1和对象之间2。这个时候,只有服务器1和服务器2将重新计算之间的对象的散列值并将其映射到新的服务器4。当添加角色服务器3,所有角色服务器发现玩家需要重新映射的对象,并通知服务器3的人物,这节省了对这些对象的引用。当客户端调用玩家1的方法通过代理服务器对象,它与角色服务器通信3根据一致性散列的映射。角色服务器3发现,玩家1对象的引用关系,将客户端请求转发到玩家角色服务器1对象处理。
4.3。服务器组性能测试结果和评价
的人工智能在游戏中怪物通常有相对复杂的逻辑,可以表示在程序中通过大量的条件语句的形式如果…那么……,但这种结构很难转换成一个数据驱动的方式。在数据驱动的工作方式,这些复杂的逻辑必须先转化为结构化的定义由有限状态机,然后可以进一步自定义数据。
是数据驱动的,定义了两种类型的对象:条件和行动。条件条件树中的对象是指条件,和操作对象是指行动中执行转换和状态。各种条件和动作表达函数的形式和参数列表,和函数自动导出配置文件中定义的代码后,状态机编辑器所使用的。
这里,ConditionBegin对象定义了一个条件,他的名字叫“查找目标”的条件列表中显示状态机编辑器,和对应于CFindTarget类在代码中。其中,“发现目标距离”是状态机的帮助文本编辑器,AddParameter定义一个参数的名称,代码中的值类型,默认值,和帮助文本,ActionBegin是类似的定义方法。这些对象的定义导出到一个XML文件使用状态机编辑器通过执行应用程序使用特殊的命令行参数。状态机的状态函数表所示2和操作函数表所示3在代码中。
一旦我们得到操作对象和条件,它就可以开始构建状态机。通过编辑器中,可以定义一个完整的状态机,包括状态和状态之间的转换。当在编辑器中添加一个条件对象类似于添加一个操作对象,条件的参数对象或动作对象可以在编辑器中输入。状态机编辑器可以编辑各种怪物AI和导出XML格式的文件,可以读取和运行的服务器。这样,只要有条件的对象和操作对象提供足够的粒度,怪物的逻辑可以定制的计划在一个大范围,和新的条件和操作对象可以添加到满足游戏的新要求。
服务器上的性能测试进行了组,测试结果和评价,以及不同负载下测试服务器的CPU使用条件和连续操作的可靠性测试很长一段时间。通过完成压力测试,主要测试的平均CPU使用率服务器组的每个进程在处理不同的玩家数量大小和是否稳定在一段时间内运行。首先,介绍了使用压力测试工具,然后给定的压力测试结果。测试服务器端性能的工具是一个工具,模拟的环境中大量的玩家玩。在实现方面,主要模拟播放器客户端软件发送的消息到服务器,实现的逻辑模拟客户端。本文使用的压力测试工具,网络层模块使用相同的代码作为服务器,和逻辑层模拟多个客户端向服务器发送消息和使用Lua脚本。压力测试工具实现不同的特定的函数通过调用不同的脚本。
压力测试工具有以下主要特点:系统配置越高,更多的人可以模拟,可以模拟多个玩家的不同的行为,和用户可以复制;也就是说,一定数量的用户可以导入同样性能的模拟有许多玩家的游戏环境。每个用户可以设置不同的参数来生成单独的日志文件,以方便查询。中列出的模仿用户可以运行和停止任意用户列表。
图10显示的平均CPU使用率的统计结果每个服务器软件压力测试三次,不包括web服务器和压力测试工具本身。因为每个压力测试软件可以模拟3000玩家,共有12000名球员可以模拟一组游戏服务器同时在线时。模拟情况不同的负载,测试服务器的数据在三个条件下的4000年,8000年和12000玩家同时在线,每次跑连续3天。从图可以看出,三个cpu的平均入住率是50%以下,特别是对于大多数的范围约30%,和最高的入住率达到60%当第三测试负载是最大的。这表明设计的3 d游戏可以在大多数环境中运行。
由于分布式设计,当服务器组的负载增加时,每个服务器应用程序的CPU使用率基本线性增加,所以玩家的数量可以增加了增加服务器的数量。游戏服务器的逻辑与物理和碰撞的判断更复杂,所以CPU使用率高。和角色服务器也有很多逻辑,如项目交易、聊天,公会,和邮件,所以CPU使用率也很高。和其他服务器的CPU使用率基本上是在一个合理的水平。
5。结论
本文使用数据驱动技术来设计一个框架网络3 d游戏。采集的数据来完成每一帧结构,服务器的设计和实现框架基本上达到预期的目标。试验后游戏3 d建模的数学模型,本研究采用数据驱动技术叙述地评估数据收到网站日志文件,网络信标,和JS页面标签,并开发一个网络。3 d游戏框架已成功创建。后确定检查服务器的数据对三个4000的情况下,8000年,和12000玩家同时在线和每一次竞选连续三天的平均CPU占用率低于50%,尤其是在大约30%的范围的大部分这些球员。唯一的缺点是,文章长度是有限的,不足以总结设计的方方面面,并只能使用现有的技术来提高所需的设计。在未来,它将使用更先进的技术来设计游戏的其他方面,做一个更完整的系统更好的性能。
数据可用性
数据共享不适用本文没有生成数据集或在当前的研究分析。
的利益冲突
作者宣称没有利益冲突。