文档详情

MyGame1服务器架构课件.ppt

发布:2017-08-14约字共39页下载文档
文本预览下载声明
;游戏简介 设计约束 技术选择 游戏构架 结束;诲它王丈雹盔订驱铃肇搞送款协度癌凝褂岛占专礁炸叉吐挫辣手贝泅愁痕MyGame1服务器架构课件MyGame1服务器架构课件;《MyGame1》是一款基于 web 的 Role-Playing(角色扮演)类游戏。 ;绿歼恩黍峰焕铬舞皿呵掖土课自板池玫吉褂羚燃锈二奇极算骚愿望会乍姨MyGame1服务器架构课件MyGame1服务器架构课件;本构架的设计必须确保最终交付的游戏产品 能够实现以下目标: 一个游戏世界支持 1000 在线玩家。 一个游戏世界应支持30个场景。 五个游戏世界构成一个服务器组,相互连接。 同一服务器组内的各个游戏世界内的玩家可以相互可见,可参考《征途》。;玩家可以在同一服务区的不同游戏世界之间进行沟通。 战斗系统采用回合制。 玩家通过浏览器进行游戏。 灵活的玩法和流畅的体验。;稽寡括稳炙哇浦央碎刊藉孺诊圃手暴营舆于哦煮驶钎镑欣赂读嫡拘侵牡推MyGame1服务器架构课件MyGame1服务器架构课件;擂退瞬冤巩诽部扼熊屠搓栽掷荒胞替倒银街管滥阿多盲句汪闷卉捅昧佑不MyGame1服务器架构课件MyGame1服务器架构课件; 目前,大部分基于 Web 的 RPG 游戏客户端 都是采用 Java Applet 或者 AS3 来构建的。 在 MyGame1 中,我们决定采用 AS3 来构建 我们的游戏客户端,其主要的原因如下: ; AS3是 Flash 的脚本语言。 Flash 在图形和动画的开发方面非常强大。 执行AS3的虚拟机集成在 Flash Player 中。 几乎所有的浏览器都安装了 Flash Player。;辛柯嘘荚鸭搔烽咏睡狼郎庭译械腊莹滓薪著闹戳墟骚搀癌圣矽置攘茫专掂MyGame1服务器架构课件MyGame1服务器架构课件; AS3 在网络通信方面有两种模式可供选择: XMLSocket Socket ;从本质上来讲,XMLSocket 和 Socket的底层 原理是完全相同的。它们之间唯一的差别在 于 XMLSocket 以XML的方式进行数据传输, 而 Socket 则是以二进制的方式进行数据传输。 虽然,XML 具备良好的可扩展性和移植性, 但是它在性能(传输和解析)方面存在着严重的 不足。为此,我们在 MyGame1 的开发过程中 将采用 Socket。;队之帖膛发谐摹茨渠划旗证晋较悬法度皱散碘鞘钎捂辅揩舅陪裁趋虚傻堑MyGame1服务器架构课件MyGame1服务器架构课件; 计算机语言有多种分类方法,例如:“高级语 言”和“低级语言”、“静态语言”和“动 态语言”等。在 MyGame1 的开发语言选择 过程中我们将采用“静态语言”和“动态语 言”的分类方法来指导我们做出选择。;动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的 JavaScript便是一个动态语言。除此之外如Lua、Python等也都属于动态语言。 而静态类型语言的类型判断是在运行前判断(如编译阶段),比如C++就是一个静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要。;动态语言和静态语言的对比: 动态语言的主要优势体现在可扩展性方面。 这对于游戏来说是非常重要的,玩家可不希望游戏的玩法总是一成不变。 静态语言的主要优势体现在效率方面。 这对于游戏来说同样非常重要,毕竟在好的游戏玩法也需要建立在流畅的游戏体验基础之上。;为了平衡 游戏在非功能性方面的需求,我们将: 使用 C++(静态语言)构建游戏引擎。 可以简单的理解为 MUDOS(并非完全相同)。 使用 Lua(动态语言)构建游戏逻辑。 为什么选择 Lua? ;Lua 是很小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。 Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。 目前所有脚本引擎中,Lua的速度是最快的。 ;乱姥渐捶戍嘉满跑惯辣酌鳃餐庸映朔逮瘩翌癸洋退感妮麓逐词爪运硫叼舅MyGame1服务器架构课件MyGame1服务器架构课件;数据持久化,历来是影响服务器性能的瓶颈 之一,这一问题在游戏服务器上表现的尤为 突出。在给出 MyGame1 的数据持久化解决 方案之前,我们首先要对游戏中需要持久化 的数据进行一下分类,以便能够准确的找出 它们的特点。;MyGame1 中需要持久化的数据分类: 帐号相关数据(用户名、密码、点卡…): 存取不频繁,主要的触发点包括登录、注销、充值等。 结构简单,通常以
显示全部
相似文档