- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MyGame1服器架构
;游戏简介
设计约束
技术选择
游戏构架
结束;傣熄刘掘缔渴巧嘉呈苞查增潍志份宜须捎沮新棚汤仔篮嗜碘究土棒嚼榨市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 中需要持久化的数据分类:
帐号相关数据(用户名、密码、点卡…):
存取不频繁,主要的触发点包括登录、注销、充值等。
结构简单,通常以用户名为键值进行读写。
玩家相关的数据(经验、物品、金钱、魔法等级…):
存取频繁,
文档评论(0)