[开源项目]科幻背景的MMO网游Ryzom介绍

作者: NickYang 分类: 技术文章,程序开发 发布时间: 2012-08-05 14:07

Ryzom是法国Nevrax公司从2000年左右开始开发的一个MMORPG游戏,大概在2年前开始投入市场运营,这款网络游戏在市场上也获得了巨大的 成功。近期,由于多种原因,Nevrax公司濒临破产,所以正在市场上运营的Ryzom游戏和广大玩家都面临着断炊的危险。不过这也为自由软件运动提供了 一个非常好的机会,让我们有可能拥有一个自由的大型多人在线角色扮演游戏。就在最近,一些自由软件爱好者、前Nevrax员工还有游戏玩家们共同发起了一 项解放Ryzom游戏的运动。他们正在筹集一笔资金,准备从Nevrax公司购买Ryzom游戏的源代码、游戏数据、艺术作品等等,然后通过GNU GPL授权发布Ryzom游戏。这样,我们就拥有了一个完整的、自由的MMORPG游戏引擎、一个完整的C/S游戏架构等,用户就可以基于自由的 Ryzom游戏开发出自己的网络游戏。他们也计划创立一个非盈利性组织来运营现有的游戏服务器和后续的开发,让现有的Ryzom在线游戏继续发展下去。

现在流行的大型网络游戏都是由专有软件公司开发,所以网络游戏的发展也都是由专有软件公司控制,而不是用户。不过我们认为,既然用户能够参与现实社 会的发展,那么也同样有权力参与网上虚拟社会的建设。玩家是游戏虚拟社会里的公民,网络游戏应该属于全体玩家,所以他们有权力和机会实现自己在虚拟社会里 的梦想,这就需要有自由的网络游戏。自由软件基金会认为收购Ryzom游戏是一个高优先级的自由软件项目,所以决定资助此项目6万美金,并最终帮助筹集到 20万欧元左右,能够买下Ryzom游戏,将其变成一个自由软件。

项目截图:

 

科幻背景的角色扮演网络游戏Ryzom的开发商Winch Gate Properties正式宣布开源。

开发者现在能获取客户端、内容创建工具和服务器端的源代码,可以修改、增强或者创造一个新的虚拟世界。这是Ryzom漫长历史的一个 重要转折点。源 代码采用AGPLv3许可证授权,艺术资产包括3D对象、动画跟踪、粒子效果和纹理等采用创作共用-署名-相同方式共享授权。Winch Gate捐赠的源代码超过二百万行,捐赠的高质量纹理素材超过2万,3D对象多达数千。

Ryzom源代码获取网址:http://dev.ryzom.com/projects/ryzom/wiki

以下摘自互联网

Ryzom服务架构(Aervice Architecture)介绍

服务器(Server):指物理服务器
服务片区(Shard):指Ryzom世界的一个实例。当前,Ryzom有三个服务片区,一个面向法语社区,一个面向德语社区,最后一个是面向说英语的人。所有的服务片区都是独立的,他们之间几乎没有任何网络连接。
服务(Service):一个服务指的是一个可执行程序,它在服务器上运行。例如,我们有一个用于管理AI的服务。我们也可以在Windows服务器和Linux服务器上创建不均匀分布的服务片区,因此一些服务在Windows上运行而另外一些则跑在Linux上。

Ryzom的架构是完全模块化的。在2004年,一个Ryzom服务片区需要8台服务器来运行,而现在由于计算机性能的飞升,一个这样的服务区在一台单独的服务器上就能够跑起来了。

Ryzom服务
以下是Ryzom的服务和简要介绍:

AES(启动管理服务):一台物理服务器只能有一个AES。它通过启动、停止、查询这台服务器上的的各种服务来管理服务区
AS(管理服务):一个AS服务用于定位所有的AES,它是接收和发送AES指令的中心点。
AIS(AI服务):一个服务区可以配置一个或这个多个AIS,这个服务的目的在于处理Ryzom世界中的人工智能(AI)。一个AIS负责一个地理区域,例如,在Ryzom中我们有6个AIS,一个大陆配置一个。
BMS(备份管理服务):所有服务区配置有两个BMS(一个主服务和一个副服务)。他们管理诸如玩家角色、工会等数据的保存和加载,数据保存在特殊的文件格式之中。
EGS(实体游戏服务):一个服务区配置一个EGS,它管理所有玩家的状态、运行游戏逻辑规则、任务、物品、工会等等,可以说它是一个中心服务!
GPMS(全局定位管理服务):一个服务区配置一个,通过它能查询所有实体(包括玩家、NPC等等)的位置,它也负责碰撞检测。
IOS(输入输出服务):一个服务区一个,管理所有的聊天、文本、本地化等操作。
NS(名称服务):一个服务区一个,这是一个用于定位其他服务的底层服务。通过它可以查询那些服务启动了,各种服务的端口,就像黄页一样。
WS(欢迎服务):一个服务区一个,用于登录过程,该服务检查玩家数据并路由玩家连接到空闲的FES。
TS(时钟服务):一个服务区一个,这是一个用于管理游戏时间和同步其他服务的简单服务。
MS(镜像服务):一台服务器配置一个。这个服务使用共享内存和网络通信来跨服务器同步数据,因此所有的服务都能够高效地访问所有需要数据。
SU(区域统一服务):全局一个,用于管理牵涉多于一个区域的事务。例如,从一个区域传送玩家到另一个区域。这个服务也用于处理玩家登录。
FES(前端服务):一个服务区可以配置一个或者多个前端服务。它是Ryzom客户端的接口,处理客户端的信息并且路由他们到合适的服务上。假如一个服务区配置了两个FES,那么客户端连接的量在两个FES上均分。
SBS(会话浏览服务):和FES数量相同,用于管理各种会话(Session)事务(主要用于Ring系统)。
PDSS(持久数据服务):该服务用于定期备份角色数据到磁盘文件,也用于提取某些统计和测试信息。

//////////////////////////////////////////////////////////////////////

Ryzom的代码我自己下载看了一下,包含完整的客户端引擎和服务器引擎(Netnel),甚至有一套完整的脚本引擎代码,不过很抱歉,其中没有

vs工程文件,需要用CMake自己够建,里面包含了挺多的第三方库文件,所以自己暂时就没有生成文件,有兴趣的朋友可以整套弄好了贡献出来。自己打算研究下CryEngine的代码,简单看了下,代码风格稍微有点晦涩,不过商业代码都这样,先从CE3的网络库开始研究吧。它里面包含了PS,Xbox360,PC三种平台的代码,而我只打算研究PC的,其他两种暂时没什么兴趣。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

6条评论
  • 匿名

    2012 年 8 月 16 日 22:13

    Crytek怎么可能开源CryENGINE3,只是让你用罢了,所谓的开源也只不过是无关痛痒的一部分Game逻辑代码给你自定义,引擎本身和工具代码是没有的~~

    其它浏览器 其它操作系统
    1. eliteYang

      2012 年 8 月 16 日 23:45

      我看到的是代码,而不是Lib或者Dll之类的,而且他开源说了很久了,你可以下载一个看看。

      神话 其它浏览器 其它操作系统
    2. eliteYang

      2012 年 8 月 17 日 00:03

      你说的应该是收费版的吧,那个的确是没有,不过我觉得他免费开源的那块也够看的了,至少东西是全的。谢谢你访问我的博客。

      神话 其它浏览器 其它操作系统
  • egmkang

    2012 年 8 月 13 日 20:01

    CryEngine的代码哪里搞?

    吐槽 其它浏览器 其它操作系统
    1. eliteYang

      2012 年 8 月 13 日 22:07

      从crytek官网上下载,现在已经开源了,里面分为CryEngine,GameSkeleton,Sandbox,Tools,下载地址:http://www.crydev.net/dm_eds/download_detail.php?id=4

      神话 火狐浏览器 Windows 7
    2. eliteYang

      2012 年 8 月 13 日 22:12

      从crytek官网上下载,现在已经开源了,里面分为CryEngine,GameSkeleton,Sandbox,Tools,下载地址:http://www.crydev.net/dm_eds/download_detail.php?id=4

      神话 其它浏览器 其它操作系统

发表评论

电子邮件地址不会被公开。 必填项已用*标注