java有什么好的mmorpg的nodejs游戏服务端框架架

MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要
服务器的基本设置   在大型网络游戏里,通常设计为C/S结构,客户端不再对数据进行逻辑处理,而只是一个收发装置,从玩家那里接受到操作信息,然后反馈给服务器,再由服务器进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。 登陆服务器   在这里也可以称之为连接服务器,网络游戏的客户端一般是连接到这里,然后再由该连接服务器根据不同的需要,把游戏消息转发给其它相应的服务器(逻辑和地图服务器)也因为它是客户端直接连接的对象,它同时也负担了验证客户身份的工作。 地图服务器   在这里也可以称之为连续事件服务器。在这个服务器里要处理的对象(玩家)所做的动作都是一个连续事件。例如玩家从A点移动到B点,这样一个动作,需要一定的时间进行移动,因此说移动是一个连续事件。 逻辑服务器   在这里可以称之为瞬时事件服务器,在这个服务器里,处理对象(玩家)所做的动作均可以在非常断时间内完成完成。例如玩家从商店购买一瓶药书,当玩家确认购买后,服务器先扣除玩家的游戏币,然后再把相应的药水瓶加入玩家的背包里。这2个操作对于服务器来说,只是2个数字的加减,计算完这两个数字的加减,这个事件就可以结束了。因此,我们可以说这个事件是一个瞬时事件
服务器组的改进 不过在实际应用的过程中,游戏服务器的结构要比上面所说的3种服务结构要复杂些,不过也都是在这3种最基本的服务器架构下进行扩充,扩充的主要是其它辅助功能。在实际应用里可能增加的2种服务器,数据库服务器,计费服务器,由逻辑服务器独立出来的聊天服务器。
数据库服务器   数据库服务器其实就是专门利用一台服务器进行数据库的读写操作。这点特别是在大型的网络游戏里尤为重要。因为在大型网络游戏里,要处理玩家的数据量非常大,如果不利用专门的服务器进行处理,很有可能会拖累这个服务器组。 计费服务器   通常在商业的网络游戏里出现,用于记录玩家在线的时间,给收费提供依据,同时也是整个服务器组里最重要的部分,一旦出现问题,运营商就不用赚钱了。 聊天服务器   在游戏里的聊天功能是属于一种瞬时动作,理论上是放在逻辑服务器里进行处理。不过在大型网络游戏里,因为这个部分功能与游戏里的其它部分联系并不紧密,因此可以独立出来做一个功能服务器。
服务器的集群设置   在大型游戏的应用过程中,实际需要处理的玩家数量可能过万,一台普通的服务器是无法完成所要完成的工作,因此,在实际应用的时候,通常是由一组多台服务器共同完成一个功能。   例如地图服务器,可以根据需要,把游戏里所有的地域进行划分,划分为N个区域,然后让这一个区域里发生的事件都用一个特定的服务器进行处理。这样做的目的是减少一个服务器所承担的计算量,把整个系统组成一个分布式的网络。   不过这样做的同时会造成一个麻烦:当一位玩家从区域1,移动到区域2。这个时候,就必须先在服务器1里把玩家删除,然后再在区域2里加入玩家。同时需要由服务器1向服务器2转移玩家的数据信息(因为服务器组在工作的时候,玩家的信息只能保存在当前所在区域的服务器里),也就是说一旦玩家发生服务器间区域移动,服务器端就不可避免的造成数据通讯。因为这种移动并不是有规律的,玩家所在的服务器都有可能到达其它服务器。这样,如果服务器组里有N台地图服务器,那么,每个服务器都可能向其它N-1台服务器产生连接,总共就可能产生N×N个连接。如此数量连接如果只是使用普通的socket设计,就很有可能会给服务器通讯间的各种问题所困扰,为此,在商业网络游戏的服务器之间,通常都使用成熟的第三方的通讯中间件,如ACE,ICE等作为网络连接的传输层。
本文转载自:http://www.javagg.com/diary/
人打赏支持
开源中国倾力打造的一款写代码无bugT恤
领取条件:拥有开源T恤的OSCer可以领取
参与源创会
领取时间:
“”在线下联结了各位 OSCer,推广开源项目和理念,很荣幸有你的参与~
领取条件:参与过开源中国“源创会”的 OSCer 可以领取
码字总数 8004
哈哈,好东东西
评论删除后,数据将无法恢复
这里给出一种宏观把握MMORPG服务器设计的文章,适合入门,读完后对服务器端的设计能有大概的掌握,方便对感兴趣的部分进行深入了解。 1、首先是常见的服务器端结构,其中包括:登陆服务器、网...
大家好,小弟garfieldmc初到本论坛,发一篇自己正在写的文章《MMORPG战斗系统设计》。本文尚未写完,目前发表出来时为了对战斗系统设计做一种理论方面的探讨,即不是特指某款游戏的战斗系统设...
Pomelo 0.3版正式发布 Pomelo 0.3版为移动端性能优化做了很多工作, 新协议的数据包压缩后的传输量仅为0.2版的20%, 并保留了0.2版基于socket.io的传输协议。socket.io对开发浏览器端器端的实...
最近在做mmorpg服务端的开发,正在研究mangos。它是一个开源的网游服务器框架,适合所有网络游戏,代码编写技术含量很高。一定是高手之作。下面网址教你如何架设wow私服。 http://www.reape...
《游戏安全——手游安全技术入门》读后知识点提炼 @(读书)[外挂 手游] ----------[TOC] 前言 下文中有“”标志的,代表从知识点中的联想。 下文均为知识点提炼,所以不一定是书中原话。不提炼...
TrinityCore 是一个开源的 MMORPG 游戏框架,允许来自客户端的连接,采用 C++ 编写,使用 MySQL 作为数据库系统。 访问 TC中国
版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/243 来源:腾云阁 https://www.qcloud.com/community 作者介绍:韩伟,1999年大学...
偶素浅小浅 ?
这周的工作主要是写代码。 开发计划制定好后,我们便分头写代码去了。我们希望一期早点做出可以运行的东西来,一切都从简。整体的代码量并不多,如果硬拆成很多份让很多人来做的话,估计设计...
亚历山大痒 ?
是否有人对mmorpg游戏服务器框架结构有兴趣? 我在sourceforge开源了一个框架,向有兴趣的朋友请教指正:) http://sourceforge.net/projects/mmorpg-xfw/...
lujf1978 ?
MMORPG MMORPG是一个可以用来学习ARPG核心战斗的项目 视频地址: http://v.youku.com/vshow/idXOTE5NDg1MTg0.html?firsttime=0 简介(大家通过学习,可以理解mmorpg的核心思路) 1、含有mmo...
没有更多内容
加载失败,请刷新页面
前端代码 &html class="media"& &head&
&meta charset="UTF-8" /&
&title&&/title&
&meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum......
liangxiao ? 28分钟前 ?
在centos6下查看iptabls status时,使用以下 /etc/rc.d/init.d/iptables status 在centos7下需要使用以下语句: /usr/libexec/iptables/iptables.init
apishow ? 30分钟前 ?
1、ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:Spring框架程序通过配置文件手工初始化......
卯金刀GG ? 昨天 ?
安装软件包的三种方法 rpm工具 yum工具 源码包 rpm rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广...
蛋黄Yolks ? 昨天 ?
学员们在参与“基于Spring Boot的博客系统实战”课程的时候,可能没有太注意版本的问题。其实,版本是一个非常重要也是一个非常容易忽略的问题。 版本不一致会导致各种奇怪的问题,比如: 应...
waylau ? 昨天 ?
在之前的文章中使用了observer包装App, 实现了页面的动态刷新,这里主要了解一下另外两种reaction的实现:when和autorun When when(predicate: () =& boolean, effect?: () =& void, option...
pengqinmm ? 昨天 ?
使用webpack 开发时,完成项目后,发现字体缺失无法显示相应的字体图像 正常应该是这样的 修改配置文件webpack.prod.conf.js 将extract 值改为false即可 看请求情况 值为true时 缺失三个字体...
阿豪boy ? 昨天 ?
安装软件的三种方法 rpm工具 yum工具 源码包 rpm包介绍 挂载系统安装镜像,右击vmware右下角的小光驱图标,点击打开 然后挂载光驱到 mnt目录下,然后cd进入mnt目录下有一个Packages目录,这个...
黄昏残影 ? 昨天 ?
首先是要 安装 Anaconda 。 默认情况下,安装好 Anaconda 后打开 jupyter notebook, 访问本地 localhost:8888 即可。但是如果要访问另一台机器,比如远端服务器上的 notebook, 即默认是不支持...
JungleKing ? 昨天 ?
云计算技术的出现,给大企业造成了不小的影响,因为在他们有人力,更有财力,可以先于小企业尝试新鲜技术。那么云计算对小企业有哪些影响? 云计算技术的出现,给大企业造成了不小的影响,因为...
六库科技 ? 昨天 ?
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有后使用快捷导航没有帐号?
 论坛入口:
  |   |    |   | 
一位程序员的2016年回顾总结:Java游戏服务器成长之路
QQ截图56.png (69.6 KB, 下载次数: 86)
12:03 上传
  文/何小成
  写在开头
  Java游戏服务器成长之路的系列,已经很长时间没写了,不是不想写,而是这一年,基本都是在忙别的了,今天特地挤出时间,对我的2016年,做一个不留遗憾的总结。
  <font color="#8b的事件
  不知不觉,又到了春节抢票的时候了,这两天除了盼着年终能发点奖金以外,就是盼着能买一张合适的火车票,今年是离家最久的一年,幸运的是,我成都的小房子要结房了,必须要我本人到场,这就能给我一个理由多请一周的假提前回去几天,很久没看到家人了,离家这么久,还是挺想念的。另外就是,盼着发年终奖了,毕竟工作了一年,也没什么存款,哎。。。
  互联网泡沫破灭
  这一年,相对于以往来说,是过得比较平淡的,去年,跳槽了,前年,毕业了,今年,既没跳槽也没毕业,也没有涨工资,哎……说起来,今年互联网行业的整体形势都不大好,有位做iOS的同学一年跳了三次槽,其中两次是公司做不下去黄掉的,好在我这个同学的基本功是没问题的,技术很扎实,要重新找个工作也不难,其实这既是我们这个职业的风险,也是这个职业的机遇,谁知道下一份工作,又会给我们的薪资提升多少个档次(这是一个跳槽比加薪来钱快的职业……),我们被称作程序猿,码农,IT男……话说回来,我们游戏行业也差不多,一夜之间,就听说好多游戏公司开始裁员,这一切都源于政府开始对互联网行业的整顿,互联网泡沫终究还是会破灭,从游戏行业来说,中国区所有的游戏想要上架应用市场,都需要申请游戏版号,而版号申请又需要一大堆资质,总之听公司领导说起来这个流程,是很麻烦的,通常办下来,至少需要半年时间,还不包括中间如果出现问题打回去重新调整的时间。国家还真的是说到做到,半年前,我们公司的游戏申请了版号,果然在半年后申请下来了……
  公司每况愈下
  国家这一举动,也确实是对不少中小游戏公司造成毁灭性的打击,半年前,我们公司开始裁员,裁掉几个人,一个月前,公司又是一波裁员,又走了几个人,本来公司人不多,现在裁员过后,人更少了,每天去上班就不到十个人在那儿坐着,我没被裁掉的原因,大概就是公司就我一个服务器的开发吧,如果我都走了,公司的所有网络游戏都要垮掉,就只能做单机了……所以我们剩下几个人,目前是在做最后的挣扎,希望最后的一搏还能有一点收获,对公司而言,能收获一笔钱来运转,对我个人来说,当然也是钱,赚了钱,肯定能发奖金了,另外还是希望能涨点工资,这也是我2017的愿望之一,除了钱之外,对我个人来说,也终于可以有一款上线赚大钱的游戏项目经验了,这款游戏也是从始至终我一个人包揽服务端所有工作的一款游戏,对我个人的技术成长来说,它的意义也是无可厚非。就算是按照最坏的情况下,游戏崩了,公司倒闭了,对公司来说,是一个毁灭性的打击,但是自私点来讲,对我个人来说,也不会有太大的影响,并且这一年多的独立开发游戏服务端的经验,也是抹不掉的,所以退一万步讲,无论结果怎么样,对我个人的职业生涯来说,都是成长,我要做的,就是做好我的本职工作,好好学学技术,时时更新我的知识数据库。
  主流技术发展迅速
  说到技术,不得不说当前软件技术的飞速发展,实在是超乎了我们的想象:
  1.一年前,我还认为,HTML5无非就是html加几个新的标签嘛,然而现在的h5,能做游戏,能做App,能做网站,能做各种酷炫的特效,这些都是HTML4的技术标准无法实现的,用几个HTML标签,你能做出来?
  2.一年前,我还认为,Javascript不就是个浏览器脚本语言嘛,然而现在的js,不仅能做app,能做游戏,甚至能做服务器,能做数据库,不只是能做,而且各大厂都开始支持js技术。谁能想到,当年大学课堂上,老师一带而过的浏览器脚本语言,如今已经火便整个互联网?
  3.一年前,我还不知道什么是大数据,而现在,在这个信息量爆炸的时代,大数据早不是什么新鲜事情了,身边处处都是大数据,像Docker,Hadoop这样的技术,早就已经耳熟能详了。
  4.一年前,做一个网站的前端,需要用到的技术可能是Html,JQuery;一年后,做一个网站的前端,需要用到的技术可能是HTML5,Css3,es6,Angular,bootstrap……
  一年前,JDK的版本还是1.7,tomcat还是7,Spring还是3,Hibernate还是4,而现在…所有的技术的版本号都升了,都或多或少的加入了很多新的特性来支持我们当前这个信息时代的需要,如果说,我们停止了学习,那我们技术上的思想和思维,就会完全跟不上这个时代的需要,最终只会被淘汰掉。学习一个新技术,不是多难的事,只需要在有空的时候,大致了解一下它是做什么的,有什么特性,如果有兴趣,再写个Demo来研究研究,当你真的搞懂一个非常的技术的框架的时候,你会非常赞叹这个框架的创作人的这个成果。就比如前段时间,我研究了Pomelo,一个网易的开源游戏服务器框架,底层是基于Node.js的,它在github上的文档介绍的非常详细,我看完它的整个设计的架构,它的整个架构的思想,我特别的欣赏,再回头想想当初我所设计的架构(就是在当前公司所负责的游戏的服务端架构),简直不是一个档次的,别人家的架构,具有良好的伸缩性,无论是开发效率还是生产高可用,以及服务器架构中很重要的扩展性,都是做的非常好的,而我的架构,我甚至不知道它能够支撑多久,这真的是看了别人的东西,才知道自己的东西有多垃圾……
  其实说到底,还是我们自己的一个思维的固化,我们总是容易跟着固化的思维走,多看看新的技术,学学新的思路,真的会感觉到一个不一样的视角,你会突然发现,诶,原来这个还能这么做啊!而且我们的这个行业,有一个跟所有行业不一样的特性,就是他的发展速度是非常快的,如果我们跟不上,我们就会out掉,就打比方说,人家会新技术,单服承载十几万压力,而你的过时技术,单服只能承载几千压力,那用人单位又不傻,单服承载越多当然越为公司省钱啊,那你直接就被out了。时刻保持警惕,任何一个新技术,都可能成为今后的主流,不要活在自己的固化思维里。回头看看整个2016年,不知道github上又涌现出了多少的优秀的开源框架,阿里网易这样大厂又开源了多少它们的组件,这些技术,或许我们不能都掌握,但我们一定要去了解,与时俱进,才是最重要的。
1.jpg (144.07 KB, 下载次数: 96)
11:59 上传
2.jpg (237.69 KB, 下载次数: 98)
11:59 上传
  工作完成还行
  前面也说到了,这一年,基本上,公司感觉快要不行了,但对我个人来说,技术的成长还是不小的,首先,当下开发的这款游戏,我负责整个服务端,从架构,开发,到上线运维,这对我个人来说,不仅一个学习的过程,更是宝贵的经验,这之间,爬过多少坑,都只有我自己的知道,对我以后的工作也是非常有帮助的。除了正常工作中给我的需求之外,我也学着去了解各方面的东西,也就是上文说到的与时俱进。我负责公司的游戏服务端的工作,除了正常的需求开发,关于服务端的运维工作,肯定也是少不了的,我也必然去了解一些Linux环境下的各种操作,再比如服务端程序的一些优化也必须去掌握了解(前段时间读的一本书《深入解析JVM虚拟机的原理与实践》,真的是刷新了我的Java世界观,因为我在这之前一直只会写代码,并不了解JVM层次的原理,读完整本书,我觉得不了解JVM的Java程序员不能叫做Java程序员),再然后就是要给公司的人提供一些游戏的管理工具,比如游戏中改改数据(当然不会瞎改的……),写写公告,发发奖励什么的,再到游戏的开服关服的一系列工作,如果在大公司,服务端开发就只是做开发,运维是给运维同学做的,管理工具会交给做管理工具的人做的,然而小公司,只能一个人把所有的都包揽了,当然这对我个人来讲,也是好事,我如今能学到这么多东西,也得感谢公司的平台,让我迅速的成长,从一年前,在大公司的打杂性质的写代码,到如今跳到现在这家公司到现在能包揽服务端所有工作,这些成长,都是能够看见的。除了平时的工作,我也会经常看一些新的技术,有时也会写一些Demo,像Node.js,Go这些服务端的语言,都有去研究,又比如今年新浪微博开源的Motan Rpc框架,我掌握之后是直接运用到公司的项目中的,因为这款框架已经经过了微博千万并发压力的验证,我就可以毫不犹豫的拿过来用。如果明年我还有机会单独负责服务端工作,或者做主要负责人,我希望可以在我的项目中引入更多先进的框架和技术,这个不是赶潮流,这是与时俱进。
  今年我在工作中的成长,离不开公司给我的平台,不是所有的人都会有单独负责所有工作的经历,其实这不是苦难,我反而会觉得自由,因为在这其中,在保证工作的前提下(像服务器的稳定性,扩展性等),你可以用你想用的技术,写你想写的架构。每当我看到工作空间中,所有类文件的头部描述的author都是我的名字,所有的svn提交者记录都是我的名字,就会有一种成就感,就像是一个建筑师,一层一层的筑起来的高楼,不知不觉,它已经耸入云端(不管最后项目在市场效应如何,它都是我2016年最大的成果)。
  深入解读Java游戏服务端开发
  这个小标题有点特别,因为他是一本书的名字,这本书的作者,是我。这是我的第一本书,我今年花了一年的时间,最终才出版的这本书,这其中包括半年的写作和半年的调整校稿,整个写书的过程,让我明白了坚持的意义,甚至说,我不认为这是坚持,我只是每天有事没事的写一点,但无论如何,这花费了我一年的时间来完成,不敢说是什么大作,但确实是辛勤劳动的成果。我的这本书,是属于技术类的书籍,在写整本书的过程中,很多技术点,我自己都还没整明白,我必须要自己先弄清楚,然后再用文字描述给我的读者,这个过程,对我来说,其实也是一个学习的过程,很多东西,我都是从头到尾自己再研究了一遍的。
  这本书算是我的第一本书,内容算不上完美,也有不少小瑕疵,不过对于想要入门游戏服务器开发来说,还是足够了。或许是因为后来我看了几本书,在大作的面前,感觉到了自己的渺小,李林峰老师的《Netty权威指南》,对我来说,真的是经典,后来看的《深入解读JVM虚拟机》那本书,也是一部神作,还有来自国外的《Java性能优化指南》的翻译版本,以及腾讯GAD出品的系列丛书,以上每一本,都是内容非常丰富,也非常值得一看的。我不能否认我自己一整年的辛勤劳动成果,但也不能绝对偏袒它里面的内容,跟很多大作来比,确实是由很多不足之处。鉴于以上几点,加之我16年参与了Cocos CVP的课程,我决定在2017年,结合我在Cocos2d-JS领域的技术探索,再写一本,基于Cocos2d-JS实战的书,从项目结合来讲一下游戏开发。因为我本身不从事游戏客户端开发,所以我觉得这对我来说,也算是一个挑战,所以2017年的第一个挑战,就是这本书,多学学多看看,再通过项目实战来进行讲解(其实感觉,写实战代码,比写理论描述,要容易得多)。
  另外,《深入解读Java游戏服务器开发》,在淘宝京东当当亚马逊等各大网站,直接搜就有的哦。
3.jpg (220.39 KB, 下载次数: 98)
11:59 上传
4.jpg (140.35 KB, 下载次数: 94)
11:59 上传
5.jpg (106.81 KB, 下载次数: 93)
11:59 上传
6.jpg (174.67 KB, 下载次数: 97)
11:59 上传
7.png (573.85 KB, 下载次数: 104)
11:59 上传
  其实还有很多事没总结完的,2016年,是看似平淡的一年,但我个人,却感觉积攒了一年的能量,在个人的能力上,有了不少的提升。除了上文说到的工作中的进步以及写书的成长,在整个2016年,我也完成了不少事情,总结起来,可以列举以下几条:
  1.用近一年时间完成《深入解读Java游戏服务器》一书
  2.复习近半年时间并参加信息安全工程师考试(上午科目过了,下午没过,不过也算尽力,不枉此行,来年继续!)
  3.学习Cocos CVP课程(课程还没出完),基本掌握Cocos2d-JS引擎
  4.在Github上搭建hexo个人博客,并已经写了48篇博文,主要涉及Cocos2d-JS游戏前端开发和Java游戏后端开发
  5.签约腾讯GAD游戏开发者社区特约撰稿人
  6.获得腾讯GAD手游服务器解决方案征文比赛一等奖(据说奖金就要打过来了,有点小兴奋呢)
  7.用业余时间写了10款项目源码(包含一些游戏前端源码,游戏后端项目模板,框架demo等)开源在Github,填补了Github几乎为0的记录
  当然,有好的,也有不好的事情,可以列举以下几条:
  1.吸了一年北京雾霾
  2.一年下来,几乎没有积蓄,每月工资也不少,但就是莫名其妙的,月底就余额不足
  3.薪资无任何提升
  4.在公司努力了一年的项目,最后的市场效应很不好,游戏付费率低的可怜
  5.因第4条,公司接近倒闭,估计明年又要重新找工作了
  6.政府对游戏行业整顿,整个国内游戏行业不景气,造成第4,5条的影响
  不管怎么说,2016即将过去,不管是好与不好,都已成为过去,放眼2017年,做更好的自己,不谈过去,只看将来!
  总结2016
  整个2016,在工作和技术上,我的成长还是不错的,不过相对来说,我在生活上,却没什么变化,依旧不怎么会说话,不怎么会处事,17年希望能够有所改进,多了解社会上的交往礼节,世界不因我改变,而我,只能改变我自己。融入社会,是每个想要生活在这个社会的人必须做的事。
  最后还要感谢我的家人,在16年的工作上,以及写书的支持上,都离不开我的家人的鼓励和支持,同时也很感谢我的女朋友,能容忍包容我的一切不好的缺点和脾气,来陪伴我,度过我的2016,我如今的一切,都离不开你的陪伴与支持。
  希望无论是生活中还是工作中,我在2017年,都能有所突破,引用小学课本的一句话,就是“逆水行舟,不进则退”!,不做井底之蛙,拒绝固步自封,放眼远方,迎接未来!
  展望2017
  17年,我的心愿就4条:
  涨工资
  赚钱(1如果达成了,2应该就不远了)
  能出门旅游一次,带上父母和女朋友(在2的基础之上)
  生活越来越好,账户余额越来越多,存款越来越多(在2的基础之上)
  写到最后
  时间已过一点,本来想在年前就写总结的,一直没找到合适的时间,今天想想,不能拖了,今天一定要写完,让2016不留遗憾!文章结尾特地再次感谢一直陪伴我的女朋友……
8.jpg (188.58 KB, 下载次数: 98)
11:59 上传
  相关阅读:
关注我们官方微信公众号
下载我们官方APP-游戏行
关注手游动态微信公众号
游戏版号7月将下放一批 同时游戏公司资质审吉比特、飞鱼继续投资TapTap 估值增长至近2MMORPG《楚留香》手游架构首次深度分析一道简单的BUFF题,资深游戏策划都容易答错《仙剑四外传o回到起点》有没有做出来?H5游戏渠道今后该怎么走(一)
微信扫一扫关注我们→时间在人们的生活中是多么重要的东西,如果打乱了时间,不知道这个时间会成什么样子。在客户端中,自然也有时间模块,因为不同的时间可能会处理不同的事情,特别是在追求高度自由化的同时,时间也成为了一个很重要的核心。没有时间,游戏世界将失去平衡,没有时间的游戏,会让人觉得乏味而单调。好了,我不用再强调时间多重要,想必大家已经明白了。比如游戏中的时辰变化,天气变化,这个是有时间的吗,答案是肯定的。在此次设计中,时间的接口中又提供了哪些方法呢?
& 模块time 文件system.h
* PAP Engine ( -- )
* $Id system.h
* @link -- for the canonical source repository
* @copyright Copyright (c)
* @license
* @user viticm&/viticm.&
* @uses vengine time system module
#ifndef VENGINE_TIME_SYSTEM_H_
#define VENGINE_TIME_SYSTEM_H_
#include &time.h&
#include "vengine/config.h"
#include "vengine/kernel/node.h"
namespace vengine_time {
class VENGINE_API System : public vengine_kernel::Node {
VENGINE_KERNEL_DECLARE_DYNAMIC(vengine_time_System);
virtual void init(void*);
virtual void tick();
//取得最近20ms以来每祯平均花费的时间
float get_looptime() const;
//取得上一帧花费时间
float get_lastframe_time() const;
//根据looptime_取得运行时间
float get_runtime() const;
uint32_t get_nowtime() const;
//获取帧率(FPS)
float getFPS() const;
//算时间差,考虑时间阙(49.71天)
uint32_t get_difftime(uint32_t starttime, uint32_t endtime);
//获得帧数
uint32_t get_tickcount() const;
//设置服务器时间
void set_servertime(time_t _time);
time_t get_servertime();
protected:
float looptime_;
float lastframe_time_;
float runtime_;
uint32_t nowtime_;
float FPS_;
time_t servertime_;
time_t localtime_;
uint32_t tickcount_;
}; //namespace vengine_time
#endif //VENGINE_TIME_SYSTEM_H_
& 什么是帧率?
& 帧率在客户端中至关重要,因为它影响着客户端的运行速度,即客户端的性能。
&&每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。
&笑傲江湖OL中的各种活动
& 时间模块里提供的方法,大家不难看出有tick(每帧处理),获取程序运行时间,当前客户端时间,以及服务器时间,这些各种时间都会影响到客户端的一些特殊的逻辑处理,我就不在这一一叙述了。下一节讲的是UI模块。
阅读(...) 评论()}

我要回帖

更多关于 java 主流 服务端框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信