网游中有本书写,游戏公司的网游服务器多少钱主机是主人公电...0pS班

公司局域网如何禁止电脑玩游戏、禁止玩网页游戏_百度经验
&&&&&&&&&电脑软件公司局域网如何禁止电脑玩游戏、禁止玩网页游戏
百度经验:&在企事业单位局域网中,如何禁止qq游戏、限制员工玩qq游戏,一直是网络管理人员的重要工作内容。本文汇总了几种有效禁止网络游戏,尤其是禁止局域网QQ游戏、屏蔽网页游戏的方法供网管员参考:&方法一:通过禁止网络游戏端口的方式来屏蔽网络游戏,通过禁止游戏网站的方式来禁用网页游戏。&对于QQ游戏,由于登录过程中一般通过443端口传输,因此可以通过完全禁用443端口的方式来封锁QQ游戏。但是由于公司的网银、很多加密邮箱的登录也需要经过443端口。因此封堵QQ游戏端口的方式的有些困难,除非你还同时结合封堵腾讯IP地址,尤其是QQ游戏服务器IP地址的方式,这就需要网管员精通网络抓包技术,然后把嗅探到的QQ游戏的服务器IP地址都添加到路由器或防火墙里面,以此来达到完全禁用QQ游戏的目的。&方法:在路由器上封端口是很简单的,首先进入路由器设置里面,应该有个数据包过滤或则相似的选项,在里面可以设置过滤的IP地址和端口范围,你想封443端口,直接在过滤的端口范围里面输入443就行了,比如443-443。同时在IP过滤哪里依次输入QQ游戏服务器IP地址即可。&而对于屏蔽网页游戏、过滤在线游戏的方法就更为简单,可以通过路由器里面直接屏蔽网页访问的方式,在路由器里面陆续加入网页游戏的网址即可。&方法二:通过部署一些网络限制软件、网络游戏控制软件来实现禁止局域网玩网络游戏的行为。&当前,监控局域网网络游戏最直接、最简单的方法还是部署专业的网络游戏控制软件,也就是一些网管软件。如当前国内知名的聚生网管软件,百度搜索“聚生网管”,然后就可以找到很多下载地址,随便下载一个就可以了(当然,最好还是从他们官方网站下载最新版,封堵网络游戏功能最好),然后就可以在聚生网管的“限制网络游戏”这里勾选你想要控制的网络游戏,目前聚生网管可以控制的网络游戏高达50余钟,是当前国内限制网络游戏数量最多、最有效的网络管理软件。经过笔者测试,可以完全禁止QQ游戏、传奇游戏、联众游戏、劲舞团游戏等等国内知名的网络游戏。此外,互联网还有一些免费的网络管理软件,小型局域网也可以下载用用。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&图:聚生网管禁止网络游戏、限制qq游戏截图&方法三:建立相对严厉的上网管理制度和员工上网手册,一旦发现员工上班玩游戏了就进行严厉的处罚,从而也可以有效管理员工上班玩游戏的行为。&通过建立相对严厉的上网管理制度和员工上网手册,然后规定员工上班时间禁止玩网络游戏,违者罚款多少,情节严重中可以通过扣罚奖金、甚至直接开除等方法,从而在很大程度上威慑员工上班时间玩游戏的行为,敦促员工上班好好工作。同时,对于一些不太重要的部门,则可以通过直接禁止上网、通过物理断开其公网连接的方式来从根本上禁掉员工上班玩游戏的行为,从而实现网络管理的最大效果。&总之,有效控制网络游戏必须采取多种方法,通过有效利用网络设备、网络管理软件和员工上网管理手册的方法才能从根本上实现有效封锁网络游戏、禁止办公室玩电脑游戏、限制QQ游戏的目的。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。投票(2)已投票(2)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验02000热门杂志第1期你不知道的iPad技巧3657次分享第1期win7电脑那些事6427次分享第2期新人玩转百度经验1318次分享第1期Win8.1实用小技巧2614次分享第1期小白装大神1830次分享◆请扫描分享到朋友圈网络游戏服务器集群的设计和实现_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
网络游戏服务器集群的设计和实现
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩77页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢> 这是什么游戏的人物?
网页游戏的宣传画.
其它回答 呃 &米见过
其它回答 4552655
其它回答 不知道啊,没见过
发表我的评论实名赞同 &a data-hash=&670a7d8b6f1ebed21f1ec00& href=&///people/670a7d8b6f1ebed21f1ec00& class=&member_mention& data-editable=&true& data-title=&@DalYz& data-hovercard=&p$b$670a7d8b6f1ebed21f1ec00&&@DalYz&/a&的回答&br&补充一个资料:&br&&a href=&///?target=http%3A//blog.csdn.net/gddsky/article/details/1831658& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深入剖析MMORPG游戏服务器端的设计&i class=&icon-external&&&/i&&/a&&br& MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要&br&&br&&strong&服务器的基本设置&/strong&&br&&br&  在大型网络游戏里,通常设计为C/S结构,客户端不再对数据进行逻辑处理,而只是一个收发装置,从玩家那里接受到操作信息,然后反馈给服务器,再由服务器进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。&br&&img src=&/9d09ebef63d185cbdaf1_b.png& data-rawwidth=&375& data-rawheight=&220& class=&content_image& width=&375&&&br&&br&  登陆服务器&br&&br&  在这里也可以称之为连接服务器,网络游戏的客户端一般是连接到这里,然后再由该连接服务器根据不同的需要,把游戏消息转发给其它相应的服务器(逻辑和地图服务器)也因为它是客户端直接连接的对象,它同时也负担了验证客户身份的工作。&br&&br&  地图服务器&br&&br&  在这里也可以称之为连续事件服务器。在这个服务器里要处理的对象(玩家)所做的动作都是一个连续事件。例如玩家从A点移动到B点,这样一个动作,需要一定的时间进行移动,因此说移动是一个连续事件。&br&&br&  逻辑服务器&br&&br&  在这里可以称之为瞬时事件服务器,在这个服务器里,处理对象(玩家)所做的动作均可以在非常断时间内完成完成。例如玩家从商店购买一瓶药书,当玩家确认购买后,服务器先扣除玩家的游戏币,然后再把相应的药水瓶加入玩家的背包里。这2个操作对于服务器来说,只是2个数字的加减,计算完这两个数字的加减,这个事件就可以结束了。因此,我们可以说这个事件是一个瞬时事件&br&&br&&strong&服务器组的改进&/strong&&br&&br&  不过在实际应用的过程中,游戏服务器的结构要比上面所说的3种服务结构要复杂些,不过也都是在这3种最基本的服务器架构下进行扩充,扩充的主要是其它辅助功能。在实际应用里可能增加的2种服务器,数据库服务器,计费服务器,由逻辑服务器独立出来的聊天服务器。&br&&img src=&/306df2b9b63b9a565b565477bffd28af_b.png& data-rawwidth=&554& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&/306df2b9b63b9a565b565477bffd28af_r.png&&&br&&br&  数据库服务器&br&&br&  数据库服务器其实就是专门利用一台服务器进行数据库的读写操作。这点特别是在大型的网络游戏里尤为重要。因为在大型网络游戏里,要处理玩家的数据量非常大,如果不利用专门的服务器进行处理,很有可能会拖累这个服务器组。&br&&br&  计费服务器&br&&br&  通常在商业的网络游戏里出现,用于记录玩家在线的时间,给收费提供依据,同时也是整个服务器组里最重要的部分,一旦出现问题,运营商就不用赚钱了。&br&&br&  聊天服务器&br&&br&  在游戏里的聊天功能是属于一种瞬时动作,理论上是放在逻辑服务器里进行处理。不过在大型网络游戏里,因为这个部分功能与游戏里的其它部分联系并不紧密,因此可以独立出来做一个功能服务器。&br&&br&&strong&服务器的集群设置&/strong&&br&&br&  在大型游戏的应用过程中,实际需要处理的玩家数量可能过万,一台普通的服务器是无法完成所要完成的工作,因此,在实际应用的时候,通常是由一组多台服务器共同完成一个功能。&br&  例如地图服务器,可以根据需要,把游戏里所有的地域进行划分,划分为N个区域,然后让这一个区域里发生的事件都用一个特定的服务器进行处理。这样做的目的是减少一个服务器所承担的计算量,把整个系统组成一个分布式的网络。&br&  不过这样做的同时会造成一个麻烦:当一位玩家从区域1,移动到区域2。这个时候,就必须先在服务器1里把玩家删除,然后再在区域2里加入玩家。同时需要由服务器1向服务器2转移玩家的数据信息(因为服务器组在工作的时候,玩家的信息只能保存在当前所在区域的服务器里),也就是说一旦玩家发生服务器间区域移动,服务器端就不可避免的造成数据通讯。因为这种移动并不是有规律的,玩家所在的服务器都有可能到达其它服务器。这样,如果服务器组里有N台地图服务器,那么,每个服务器都可能向其它N-1台服务器产生连接,总共就可能产生N×N个连接。如此数量连接如果只是使用普通的socket设计,就很有可能会给服务器通讯间的各种问题所困扰,为此,在商业网络游戏的服务器之间,通常都使用成熟的第三方的通讯中间件,如ACE,ICE等作为网络连接的传输层。&br&&img src=&/5cc37e134e48d665096dce3dbf2d5718_b.png& data-rawwidth=&371& data-rawheight=&323& class=&content_image& width=&371&&
实名赞同 的回答 补充一个资料:
MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要 服务器的基本设置 在大型网络游戏里,通常设计为C/S结…
前年开始带服务端,去年开始带双端。这个问题略有心得。&br&&br&1.开始做服务器主程主要负责起什么&br&===============================&br&服务端主程主要负责游戏开发中服务端的各项工作&br&&br&2.会做的事情&br&============&br&包含但不限于:解决团队中别人解决不了的问题,制作提升工作效率的工具;服务端技术人员管理(下面细说)&br&&br&3.项目经理眼里&br&==============&br&向上有汇报,向下能统筹&br&&br&4.策划策划眼里:&br&===============&br&4.1 执行力&br&----------&br&尽可能的快速实现策划的需求,提供解决方案&br&&br&4.2 爱沟通&br&------&br&达到一个里程碑后能反馈,遇到难点短时间无法攻克,即时沟通,并说说自己能做到的程度,帮助策划思考替换方案;&br&&br&4.3 包容&br&--------&br&改需求无法避免。网上产品经理(策划)是被各种程序员黑,现实中调侃调侃可以,别过了,人家也是没办法。如果策划在改需求时说明了明确的原因,作为服务端老大就别吐槽了。&br&&br&4.4 会反思&br&----------&br&策划的功能对吗?为何有会这么设计?配表方便吗?&br&&br&5.手下心中的好大哥&br&==================&br&人品过关,技术过关。&br&&br&&br&--------------------------------------分割线-------------------------------------&br&以下随便说说游戏主程,&br&本岗位工作的决定了游戏的真正是否能够成型,而且一个技术是否成熟,决定了游戏是否能够真正长期的持续运作。另外程序的工作是&b&还原美术表现和实现策划设计&/b&,尽可能高地还原和实现。所以从这个角度来说,程序不是一个游戏制作过程中的主角。游戏主程需要的能力大致有下:&br&技术&br&====&br&当前:&br&----&br&基本功要扎实,大致有四块,数据结构与算法,操作系统,计算机网络,如果只是后端主程加个数据库,如果是前端主程需要加个计算机图形学。比如题主说得后端主程,因为你是一台机器要服务前端多台机器,在网络那块性能调优也要懂。另外要非常娴熟的操作当前使用的版本管理工具,至少你得知道怎么合并,怎么打分支,怎么回退版本。&br&未来:&br&----&br&保持对新技术的好奇心,多关注业内比较新的解决方案。因为一旦做新项目,技术选型就是你的本职工作,而且影响整个项目周期,换句话说到底未来需要踩多少坑,由你决定。所以你要有一套经过实践证明行之有效的学习方法论。&br&&br&管理:&br&==== &br&对于一个刚刚晋升的同学来说,这块是最棘手的。这块其实也比较通用,不限于技术管理领域,但是管理这东西不能靠书本,在实践中总结,才是深刻的。我这里给出零碎的一些点滴,想哪说哪。&br&*你是主程了,那就意味这有一堆人会看着你做事。你怎么做事将间接的影响组员的做事态度。所以一个词——以身作则。别以为主程了就可以有些特权,可以迟到,可以工作时间扯淡,始终牢记:能力越大,责任越大。之所以把这条列在这里,我觉得管理包括自我管理和团队管理,而且前者是后者的基础;以前吧,你只要把自己的事情做好就算完成本职工作了,超出边界的工作,你做了那是加分,你的主程看到了或许还能表扬你,你不做也没关系。而现在你的事情就是整个游戏的服务端(甚至整个技术),任何报错,组员解决不了的诡异的bug,那都是你要解决的事情。&br&*你的工作会被各种打断,来自各位组员,主策,主美,项目经理。所以整片的工作时间几乎只在这些人都回家了,你留下来加班才能获得。&br&*可能你还有一件事情,就是给每个组员打绩效,项目经理说,SABCD各占一定比例,所以给你出个难题,你想想你怎么解决:这个月是项目上线前夕,大家表现得都很拼,都很优秀,你怎么打绩效。&br&*你的内心要足够强大,因为会有人质疑你的决策。&br&*你的沟通表达能力需要提升一个档次,因为你要给各个层次的人解释同一个问题;你会有许多跨部门的沟通;&br&*你的组织能力要跟上节奏,定期组织这帮程序单身男“腐败”,严谨点叫团建。还要开技术分享会议。&br&*你要保持谦虚,明白个人能力再强,都不可能解决所有事情,你需要咨询你的组员。再优秀的人都有他的短板,你要做就是把一群互补的人凑在一起,各自发挥优势。&br&*你要给组员尽可能清晰地提供上升阶梯。多年以后,当他成为主程了,你可以骄傲地对他说 我曾经推动过你的进步。&br&*你最好能充分了解你的组员,分配任务要有明确的范围,不能存在模糊地带,要能给与一定的帮助。&br&*你的组员能力不均匀,做事情不要一刀切,换句话说管理要分层, 不同层关注点不同&br&*你是Leader,不是Boss。在雇佣关系中,好人谈钱,坏人谈理想。所以多为组员谋取福利吧。&br&*你其实也是个打工的对项目经理负责,所以要有汇报,题主问题3,&br&*谁都不希望加班,但问题总得解决,更要命的是你还不知道怎么解决。咱们程序和美术不一样,美术基本上是工作量的事情,程序会有bug,deadline就在那里,问题还没解决怎么办?关于加班问题 参看 我在这个问题下的回答 &a href=&/question//answer/& class=&internal&&手游公司加班的主因是什么?能否通过合理的管理手段加以改善? - mingchaoyan 的回答&/a&&br&暂时说这些
前年开始带服务端,去年开始带双端。这个问题略有心得。 1.开始做服务器主程主要负责起什么 =============================== 服务端主程主要负责游戏开发中服务端的各项工作 2.会做的事情 ============ 包含但不限于:解决团队中别人解决不了的问题,制作…
&p&后端是以不变应万变。&/p&&p&前端是以万变应不变。&/p&
后端是以不变应万变。前端是以万变应不变。
把游戏登陆逻辑单独成一个服务的优点有如下几点:&br&&ol&&li&登陆入口唯一.:游戏如果不是自己运营,则需要上其他平台。每个平台只能有一个登陆服务器,但是游戏逻辑服务器要跟着玩家数量的增加而增加。&br&&/li&&li&方便扩展:游戏可能会在多个平台一起运营,不同的平台对登陆的处理方式可能不一样。单独把登陆部分分开的话,只要修改登陆服务的代码,然后发布就可以了,其他部分的服务器不需要做任何修改。&br&&/li&&li&部署灵活:游戏中玩家数量较少的时候,可以将登陆服和逻辑符部署到一台物理服务器上。当玩家增多,服务器压力增大时,可以将登陆服单独部署到性能更强大的物理服务器上。&br&&/li&&li&减少耦合:登陆服和逻辑服独立后,登陆服挂了不会影响正在游戏中的玩家。某一个逻辑服挂了也不会影响到登陆。&/li&&/ol&
把游戏登陆逻辑单独成一个服务的优点有如下几点: 登陆入口唯一.:游戏如果不是自己运营,则需要上其他平台。每个平台只能有一个登陆服务器,但是游戏逻辑服务器要跟着玩家数量的增加而增加。 方便扩展:游戏可能会在多个平台一起运营,不同的平台对登陆的…
&p&本人6年手游从业经验,一直从事游戏服务端工作,现任公司架构师&/p&&p&普通的游戏服务端程序员,每天具体干什么?&/p&&p&1. 上午开会听需求案:这尼玛策划脑洞太大了,这么一个小功能实现成本太高,你想的这案子根本不好玩吧!我是玩家我都觉得无聊! ——跟策划撕逼&/p&&p&2. 下午根据需求案与前端沟通设计接口:哎,这部分数据我已经在那个XXX接口传给过你了,你干嘛又要传一遍,神马?你说这样你方便展示?拜托,从我们后端角度想想好伐? ——跟前端撕逼&/p&&p&3. 晚上加班功能提测:我靠,这你也找我,这明显是前端表现的问题,我传的数据没错! ——跟测试、前端撕逼&/p&&p&4. 夜里睡觉被电话吵醒:什么?线上出事故了?有接口能刷资源?论坛里还有截图?你确定截图不是PS的?我写的代码是经过测试的!有BUG也是他们没测出来! ——跟运营,测试撕逼&/p&&p&没错,后端唯一看的顺眼的就是美术团队,啧啧,看人那妹子才叫妹子,姑娘,画啥呢?哎,你这个黄色用得好啊,我觉得你有艺术家的气质~~&/p&&p&====抖机灵结束,正经答题,说说我对新人的一些建议====&/p&&p&首先做游戏大的方向是确定自己的要做客户端还是服务端,根据自己的兴趣来&/p&&p&从技术上来说,并没有高低优劣之分,客户端做深了做到引擎级别,图形图像算法,兼容性,内存优化等层面,当你成为这一方面的领域专家,工资方面一样不会亏待你,但更像是吃青春饭的行业,原因后面会细说&/p&&p&服务端呢就像你所说的,主要的价值含量在高并发,高负载,高可用,这些架构层面的东西对每个大规模并发的应用来说都是必不可少的,你已经有了一定认识,这方便我就不再细讲&/p&&p&客户端和服务器从技术发展层面来说,一个比较重要的区别是客户端技术更新迭代较快,今天是cocos2dx,明天就是u3d,后天可能是就是VR了,如果你具备较强的学习能力和时间,做客户端应用其实更能体现你的价值(需要学的东西更多),相比而言,服务端其实更为稳定,优势在于,技术的更新迭代没有客户端那么快,同时将来你有一天不想做游戏了,转行其他互联网服务,比如传统的B/S应用,那么你所积累的知识70%~80%还是用得上的。&/p&&p&虽然上述描绘的蓝图很美丽,但其实不论你是做客户端还是服务端,只要你是给人打工,那么做什么并不是由你决定的。&/p&&p&君不见你做了多么高大上的架构,然而游戏测试数据不好,项目被砍根本没有机会上线来验证你的服务器架构,承载能力,伸缩扩展性。&/p&&p&君不见你做2d游戏做的很熟了想做3d?对不起公司没有3d项目,你继续做你的2d去。&/p&&br&&p&另一方面,你所做的游戏承载了多少用户,代表你面临着多大的挑战,也代表着你需要处理多大的问题,即你水平的提升空间。举个例子,你在小公司做一个平时几百并发在线的2D卡牌游戏,和你再腾讯做5000wDAU的3DMOBA王者荣耀,那么无论从服务器架构到客户端表现甚至美术原画细节上,需要考虑的问题都是天差地别的。所以有些人运气不好在小公司打工几年不管是水平还是薪资待遇都是原地踏步,而有些实习生一毕业进入大公司的大项目,学习成长各方面都很快。&/p&&p&做游戏还有一点比较坑的地方在于,你所在公司的管理体系如何,你的价值如何体现。一般的游戏公司项目组都是制作人制度,即制作人说了算,也是你的直接领导,决定着你的升职加薪,而制作人往往是策划出身,他们更多关注的是“看得见”的功能性需求,你今天完成了几个游戏模块,写的代码有多少BUG,你加班加了多少h,这些是他们能够认知的范畴,至于你说提底层优化了多少性能,做了什么高可用架构,使得服务器稳定运行了多少天。excuse me? 这不是你应该的吗? 也就是说真正能够代表你价值技术含量的东西在制作人那里往往是不被重视的,当然这种情况在其他技术岗位也是普遍存在的,所以还是看你的公司体系,看你的领导。&/p&&p&综上所述,不管是从技术成长角度还是公司管理角度,作为新人,都建议你先去正规的大公司学习积累&/p&&p&再说说游戏行业的好处,互联网拼的是流量经济,而流量需要变现,还有比游戏更好的变现渠道吗?没错,去看看新闻,不论是王者荣耀还是阴阳师,项目组一年的奖金有多少,努力+运气,当你具备这两者,那么行业的回报还是相当不错的,当然死了的项目也是不计其数,那么如何能拥有好的运气,看看appstore畅销榜排名前10的游戏都是出自哪家,没错,去大公司做大IP项目游戏可以显著提高你的成功概率。。。&/p&&p&最后,作为一个新人,不论是游戏行业还是任何其他行业都一样,先端正你的态度,工作不要挑肥拣瘦,先把领导交给你的工作哪怕是没有任何技术含量的重复性劳动做好做到极致,让领导对你产生足够的信任,同时保持自己的主观能动性和学习能力,再去申请更多更有技术含量的工作,不要一上来就好高骛远,整天想着搞一些高大上的东西。&/p&&br&&p&希望回答能对你有帮助,以上。&/p&
本人6年手游从业经验,一直从事游戏服务端工作,现任公司架构师普通的游戏服务端程序员,每天具体干什么?1. 上午开会听需求案:这尼玛策划脑洞太大了,这么一个小功能实现成本太高,你想的这案子根本不好玩吧!我是玩家我都觉得无聊! ——跟策划撕逼2. 下…
以前负责过网游数据访问层的部分。一般就是每个区服对应一个数据库,比如合服就是在合并数据库,有时候两个区因为版本问题数据库架构也可能会有细微不同。访问方面一般实时数据都在内存里,通过缓存和日志的方式每隔一段时间持久化一次,同时保证数据完整性。&br&&br&而所谓服务器就是一组程序,用来响应来自客户端的消息。平衡负载可以简单让不同的程序负责处理不同的消息,比如一个负责战斗,一个负责聊天等,或者每个程序负责不同的地图区域之类的,这个取决于架构师的设计。不过大部分的运算都只访问内存中的数据,数据库只负责保证数据持久和完整。&br&&br&做过的游戏比较小,MMO,大概一个区几千人左右同时在线。更大型的游戏设计上要有更强的可扩展性,等高手回答吧。
以前负责过网游数据访问层的部分。一般就是每个区服对应一个数据库,比如合服就是在合并数据库,有时候两个区因为版本问题数据库架构也可能会有细微不同。访问方面一般实时数据都在内存里,通过缓存和日志的方式每隔一段时间持久化一次,同时保证数据完整性…
下面有童鞋问到了具体表是什么样子的,这里给一个我们项目里面实际用到的表:引导表:&br&&img src=&/76afda87ef260_b.png& data-rawwidth=&1207& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&1207& data-original=&/76afda87ef260_r.png&&你看,这里有行号(就是引导号),有脚本,有跳转,基本上就是个代码,你一行一行解析然后对应生成成脚本,然后直接跑脚本就好(这里是客户端脚本,实际上服务器端脚本也没问题)。&br&&br&关键是,很多人都有一个误区,策划指导怎么做,程序就要直接实现。这样是不好的,你要有习惯把数据甚至逻辑都抽象出来,让策划可以饶过你直接动程序的逻辑,这样你就闲下来了。当然,策划肯定会提出你的框架里面无法解决的问题的,到那个时候你就不得不动代码了,但是这就是经验啊,下次你设计的时候,这部分就可以包含进给策划的部分了,所以你的系统越设计,代码量实际上是越小的。&br&&br&--------------------------------------------------&br&原回答:&br&&br&蟹妖(好兴奋233333)&br&&br&不过,似乎邀请错人了呢,虽然我的确做过服务器端开发,不过现在似乎是负责Lua脚本为主,不过鉴于服务器主程不干活,事情都推给脚本,这么说来是服务器开发也没错呢。&br&&br&上面提到了很多加班的问题,其实我想说:&br&&b&尽量把事情推给策划!&/b&&br&&br&嗯,这就是我的一点微薄经验。要加新功能?行啊,配表先拿来。然后保证自己的代码里面&b&没有任何涉&/b&及到策略的地方,策略全部扔给配表,然后开始写&b&通用&/b&代码。&br&&br&最后你想改?自己改表吧。表是你自己提供的,事先告诉了你怎么方便怎么设置,我负责转换,至于最后是不是真的方便,那就不干我的事了啦。&br&&br&所以最后几个月的时间,基本上偶尔改点小bug,被叫过去问配表怎么配,基本上就很闲了。当然偶尔坐班还是有,虽然我会耍无赖第二天下午才到公司来表示一下抗议,不过真有事情我也是义不容辞的。&br&&br&反正总的体验就是,要想成为一个好的程序员(其实也不仅仅是服务器还是客户端了),一定要学会&b&推锅&/b&,这里的“推锅”绝不是“我的事情我也偷懒不做完”,或者“做一个壳子然后告诉你做完了”,而是记得“&b&你自己是功能机制的实现者,而不是策略的实现者&/b&,任何策略问题,给策划开绿色通道,争取在完全绕过你的情况下就能改”,做到这点了,基本上工作量根本不是问题。&br&&br&顺便空下来一堆时间在研究新的服务器框架,目前写了一点点:&a href=&///?target=https%3A///starwing/loki& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - starwing/loki: loki&i class=&icon-external&&&/i&&/a&&br&&br&嗯,我对工作的标准是这样的:无论是谁的原因,如果我忙到了没法顾及写开源软件的业余爱好,那么肯定是出问题了,如果是我的原因,就改,公司的原因嘛~你懂的~&br&&br&以上。
下面有童鞋问到了具体表是什么样子的,这里给一个我们项目里面实际用到的表:引导表: 你看,这里有行号(就是引导号),有脚本,有跳转,基本上就是个代码,你一行一行解析然后对应生成成脚本,然后直接跑脚本就好(这里是客户端脚本,实际上服务器端脚本…
因为现在手游几乎全部是运营商和开发商(CP)分开的模式了。&br&&br&================&br&首先大概介绍一下运营商的概念,或者换个现在更常用的说法,“渠道”。&br&因为如果对国内手游产业不是非常了解的话,可能不是很能理解国内手游产业中“渠道”的角色。&br&传统的单机游戏行业,开发商负责整个游戏的研发,而真正的纯单机游戏并没有“运营”的概念,所以只有所谓的“发行商”,负责对游戏进行包装、营销和发售。例如《暗黑破坏神2》在中国的发行商是奥美,《伊森疯狂赛车》在中国的发行商是天人互动。最后的营收则是由开发商和发行商按一定的比例瓜分。&br&而传统的PC网游(俗称“端游”),由于有开发大型端游能力的公司往往也同时具有强大的运营能力(包括营销推广、维护服务器、客服等等),因此开发商与运营商往往是同一家公司(如网易、完美、腾讯、西山居等等)。而国外的网游如果要在中国市场运营,则往往会委托中国的公司来进行运营活动(也就是俗称的“代理”)。而最后的营收同样由开发商和运营商进行分成。例如《魔兽世界》与网易、《龙之谷》与盛大、CF(我就不打书名号了)与腾讯等等。也有极少数国内网游由别家的国内公司进行运营。例如盛大也曾经运营过西山居的《剑网三》。然而这些游戏由于往往是国外的公司全权委托给国内公司进行代理,因此往往账号登陆和游戏本身还是要通过同一家公司的服务器。&br&而到了手游时代,整个产业的运作方式进行了一次大洗牌。所谓的“渠道”如今承担了更重要的角色。因为这个时代的“渠道”商往往是几年前霸占了更多用户流量资源的公司。例如有微信和QQ的腾讯、有贴吧等等的百度、有自己的手机平台的小米等等。由于拥有更多的用户资源,这些平台往往比传统的自研游戏大厂本身的推广能力要强上几个数量级。许多端游大厂在转型手游的过程中对于“渠道”的认识严重不足,往往都付出了惨痛的代价。如今“渠道”+开发商的模式已经成为常识。&br&需要指出的是,APPSTORE和国外的GOOGLEPLAY也是“渠道”的一种。APPSTORE的首页推荐几乎是苹果平台上最有力的推广手段。&br&&br&===================&br&介绍完渠道的概念后,再来理解为何要把登陆和游戏服务器分开就很容易了。&b&因为在手游时代,是个网游都是要接入渠道登陆功能&/b&的,因此在开发游戏的初期就应该把接入渠道的工作纳入开发计划之中。&br&一般运营的游戏实际负责保存游戏数据和执行服务端逻辑的服务器由开发商进行部署和维护,而负责登陆的服务器则由渠道负责部署和维护。由于渠道往往拥有很多现成的用户,以及各种方便快捷的登陆方式(例如微信的自动登录),而这些登陆方式不同平台往往差别很大,而渠道间的竞争也很激烈,因此大多数渠道都会通过给出现成的登陆模块(SDK)和统一接口的方式供开发商进行接入。&br&不过要指出的是,这里的“登陆”应该是只单纯的用户名密码、游客账号等等单纯的“验证身份”的模块。事实上,开发商在自己的游戏服务器中也会有单独的登陆功能模块。&br&举个例子,现在有个由“NETHARD”的公司开发的叫《枕头大战》的游戏在小米的平台上进行运营。&br&有个叫小A的玩家是小米的用户,账号是,昵称是“巭孬嫑莪”。&br&然后他玩了小米上的《枕头大战》,用了小米的账号进行登陆。&br&然后进入游戏后他建了个叫“伊藤诚”的角色。&br&在普通玩家看来,这整个一套是一个非常简单的登陆流程。但其实这里面有三套可以称之为“账号”的系统。&br&首先是小米平台的账号( - 巭孬嫑莪)。这套账号保存在小米的服务器上。&br&在登陆了“巭孬嫑莪”后,NETHARD公司获取了小米提供的身份验证信息,如果这个身份是第一次在NETHARD的服务器上登陆,那么NETHARD的服务器会为该用户分配一个NETHARD内部的用户身份,例如“%%MI”,并将这两个身份进行映射。而每次“巭孬嫑莪”在用“”的账号登陆《枕头大战》时,NETHARD的服务器上也会自动通过“%%MI”的账号进行登陆。&br&最后,存在NETHARD游戏服务器内的角色“伊藤诚”则相当于第三重账号。由于现在的手游网游往往在同一个账号下的角色不共享货币(如常见的“元宝”、“钻石”等等),因此在NETHARD的服务器内,“伊藤诚”则是一个独立的身份。而NETHARD的账号系统则会将“伊藤诚”和“%%MI”再一次映射起来。&br&&br&====================&br&最后需要指出的是,在上述的流程中其实是有三台服务器存在的。分别是小米的登陆服务器、将小米账号“”和NETHARD账号“%%MI”进行映射的服务器以及将“%%MI”和“伊藤诚”进行映射的服务器。而最后那台服务器往往才是真正的游戏服务器。&br&至于为什么要将第二台服务器和第三台服务器分开?因为除了“登陆”功能外,手游还有“计费”模块。&br&NETHARD公司自然不会只有《枕头大战》一款游戏。而NETHARD公司还有自己独立的财务、审计,那么玩家花的每一块软妹币,最后都是要通过第二台服务器的流水的。&br&当“伊藤诚”在游戏里消费“¥100”买了一瓶“妹汁”时,首先第三台服务器会生成一张订单,告诉第二台服务器“玩家%%MI买了道具No8989,订单号XXX”。第二台服务器则会告诉小米的服务器“你的那个玩家买了道具No8989,订单号XXX”。然后小米在自己的服务器上查了下,道具No8989的售价是¥100(这个信息是游戏在平台上发布前事先注册好的信息),然后在获得“伊藤诚”的确认后,小米和支付宝进行了一系列肮脏的交易,最后小米获得了¥100,然后告诉第二台服务器“已收到的赃款,可发放No8989,订单号XXX已完成”,第二台再把该信息传达给第三台服务器,最后第三台服务器(也就是游戏服务器)在游戏里把妹汁发放给了“伊藤诚”先生。&br&当然这事儿还没完,在月底时,小米会把¥100中应该分成给NETHARD的那一部分给NETHARD,然后两家公司再各自给自己的临时工们发了饷,大家就各回各家各找各妈了。
因为现在手游几乎全部是运营商和开发商(CP)分开的模式了。 ================ 首先大概介绍一下运营商的概念,或者换个现在更常用的说法,“渠道”。 因为如果对国内手游产业不是非常了解的话,可能不是很能理解国内手游产业中“渠道”的角色。 传统的单机…
办公用的比较好维护。因为软件都是微软写的,只要公司给够钱,出了事有我们顶着,你什么都不用干,只要负责监控,做做配置(这个需要学习)就行了。
办公用的比较好维护。因为软件都是微软写的,只要公司给够钱,出了事有我们顶着,你什么都不用干,只要负责监控,做做配置(这个需要学习)就行了。
有些编辑器自带SFTP,SCP等功能,可以远程直接编辑文件,小范围编辑可以用用,大范围就傻逼了,比如有些安全性较高的服务器,两层ssh跳转是很正常的事情,这时候SFTP、SCP就完全没法联通了。&br&&br&再者对于编译型语言,你怎么编辑/编译?本地编辑器使用scp打开远程文件,编辑好,然后ALT_TAB切换成终端窗口跑一下make,测试一下然后又 ALT_TAB切换回来接着编辑?远程编译错误你还需要滚屏到最上面查看错误代码,然后又切回来用sftp打开出错的那个远程文件?&br&&br&太慢了,直接在终端上编辑可以彻底的加快你的 edit-compile-edit 循环,比如我在终端下 vim里配置按下 F7就开始编译,有错误直接输出在vim下面的quickfix windows中,一个快捷键就可以跳转到错误的代码,修改后再次 F7编译,通过后 F5直接运行,看一下效果,还好的话,又返回编辑状态。scp/svn/git这类同步工具就傻逼了。&br&&br&编译有问题了,里面修改再编译,试运行跑出问题来了,立马修改两行再试,不对再修改两行加一些日志再试,直到正确再返回编辑,这个循环如果其中1-2个环节比较麻烦的话,会让你的思路经常被打断,来处理那几个麻烦的小环节,久而久之效率奇低。&br&&br&所以说使用本地编辑器编辑/同步远程文件和直接在终端上编辑比较起来,就像玩星际争霸的时候你把基地建造在离矿比较远的地方,而对方直接把基地建造在矿边上一样被动,虽然都可以打下去,但是随着战局的复杂化,越到后面你会变得越被动。&br&&br&同时,候写代码不光是编辑,还要在文件中搜索各种符号,比如你用scp远程打开一个文件,你就只能编辑下,没法在那个目录下搜索各种符号。使用 svn/git 镜像一份代码在本地虽然可以解决各种符号搜索问题,但是你每次操作同步所花费的时间却得不偿失。&br&&br&再者,一个项目代码量&=1MB 很正常,一个源代码超过100KB也很常见,你同时打开几个这样的远程文件,每一轮修改就传一次不觉得开销大么?或者你反复提交到svn、git上滚版本,产生一堆用于调试的垃圾版本,你觉得好么?&br&&br&最后是运行环境,小程序没问题,大程序你又依赖这个服务,又依赖那个模块,还有各种配置的,这时候你还坚持使用svn/git同步代码,或者scp远程编辑的话,就有点隔鞋搔痒了。&br&&br&仔细反思你的工作流,日常工作中最核心的循环是什么?这个循环上如果某几个环节可以优化的话,能够让你的工作效率有本质改变。&br&&br&---&br&vim多开文件可以使用:bufferhint + nerdtree &br&或者使用vim自带的TAB(标签)功能,见我的文章:&br&&a href=&/p/& class=&internal&&更好的使用 Vim的标签(Tab)和 Alt映射功能 - 韦易笑的文章 - 知乎专栏&/a&
有些编辑器自带SFTP,SCP等功能,可以远程直接编辑文件,小范围编辑可以用用,大范围就傻逼了,比如有些安全性较高的服务器,两层ssh跳转是很正常的事情,这时候SFTP、SCP就完全没法联通了。 再者对于编译型语言,你怎么编辑/编译?本地编辑器使用scp打开远…
&p&我听说有只用C++做后端、只用C#做后端、只用go做后端、只用erlang做后端的,就没听说过只用python。&/p&
我听说有只用C++做后端、只用C#做后端、只用go做后端、只用erlang做后端的,就没听说过只用python。
&p&更新,没有看到服务器(逃。&/p&&p&下面仅为游戏引擎和框架推荐,需要的小伙伴简单看一下,正确的答案努力撰写中。&/p&&hr&&p&从角色扮演游戏到即时策略游戏,从冒险解谜游戏到动作射击游戏,甚至是只有一兆大小的迷你游戏,都有起着核心作用的技术组成部分。下面给题主推荐十款好用的开源游戏引擎和框架,希望能给你的游戏开发带来帮助,也供大家一起交流学习。&/p&&p&&br&&/p&&p&&b&1. 项目名称:分布式游戏服务端引擎 KBEngine&/b&&/p&&img src=&/v2-7ecd1ba4bdc_b.jpg& data-caption=&& data-rawwidth=&960& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/v2-7ecd1ba4bdc_r.jpg&&&p&&b&项目简介:&/b&KBEngine 是一款开源 mmog 服务端引擎, 使用统一协议能够轻松与前端对接,能轻松使用 unity3d、 ogre、 cocos2d、 html5 等作为前端表现。&/p&&p&底层框架由 C++编写, 逻辑层使用 Python(支持热更新), 开发者无需重复实现一些通用的底层服务端技术, 使开发者能够真正集中精力到游戏开发上来, 快速打造各种游戏。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A///likecg/kbengine& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&likecg/kbengine - 码云 &i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&2. 项目名称:开源跨平台游戏开发框架 Cocos2d-x&/b&&/p&&img src=&/v2-19ee8a535efa8adc2ad37_b.jpg& data-caption=&& data-rawwidth=&1096& data-rawheight=&629& class=&origin_image zh-lightbox-thumb& width=&1096& data-original=&/v2-19ee8a535efa8adc2ad37_r.jpg&&&p&&b&项目简介:&/b&Cocos2D-X 是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。Cocos2d-JS 统一了使用 JS 进行开发的开发体验,将 HTML5 引擎与 JSB 的 API 高度统一起来。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A///mirrors/cocos2d-x& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&码云极速下载/cocos2d-x - 码云 &i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&3. 项目名称:2D 和 3D游戏引擎 Godot&/b&&/p&&img src=&/v2-cf5a39e6e8a_b.jpg& data-caption=&& data-rawwidth=&900& data-rawheight=&509& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/v2-cf5a39e6e8a_r.jpg&&&p&&b&项目简介:&/b&Godot 是一个全新开发的游戏引擎,其功能集类似知名的跨平台游戏引擎 &a href=&///?target=http%3A//www.oschina.net/p/unity3d& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity&i class=&icon-external&&&/i&&/a&,可用于开发 PC、主机、移动和Web游戏。开发者&a href=&///?target=http%3A///scan.php%3Fpage%3Dnews_item%26px%3DMTU1ODg& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&声称&i class=&icon-external&&&/i&&/a&引 擎的2D和动画支持要强于 Unity,表示在功能和特性上没有其它开源游戏引擎能相媲美。&/p&&p&Godot 引擎内置了类似Unity的编辑器,GUI 工具包,2D/3D 物理支持,支持 OpenGL ES 2.0 功能集的 3D渲染器,易于学习的语言和 API,支持用 ASM.js 或 Google Native Client 输出 HTML5 代码,支持
Linux、Windows 和 OSX 开发平台。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A///mirrors/godot& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&码云极速下载/godot - 码云 &i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&4.
项目名称:&/b&网易游戏服务器框架 Pomelo&/p&&img src=&/v2-b3a0731fff6f41c409dfddb5e0b07155_b.jpg& data-caption=&& data-rawwidth=&692& data-rawheight=&372& class=&origin_image zh-lightbox-thumb& width=&692& data-original=&/v2-b3a0731fff6f41c409dfddb5e0b07155_r.jpg&&&p&&b&项目简介&/b&:Pomelo 是由网易开发的基于 &a href=&///?target=http%3A//www.oschina.net/p/nodejs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Node.js&i class=&icon-external&&&/i&&/a& 开发的高性能、分布式游戏服务器框架, 也可作为高实时 Web 应用框架。&/p&&p&&b&Pomelo 包括三部分:&/b&&/p&&ul&&li&框架,Pomelo 的核心, 与以往单进程的游戏框架不同, 它是高性能、分布式的游戏服务器框架,并且使用很简单&/li&&li&库,包括了开发游戏的常用工具库, 如人工智能(AI)寻路, AOI 等&/li&&li&工具包,包括管理控制台,命令行工具,压力测试工具等&/li&&/ul&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/pomelo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pomelo首页、文档和下载 - 网易游戏服务器开发框架 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&5. 项目名称:C++ 纸牌游戏引擎 Wagic&/b&&/p&&img src=&/v2-b449dba917d18e7c812f373_b.jpg& data-caption=&& data-rawwidth=&480& data-rawheight=&272& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&/v2-b449dba917d18e7c812f373_r.jpg&&&p&&b&项目简介:&/b&Wagic 是一个自制的 C++ 纸牌游戏引擎,支持的平台包括:Android (手机和平板), the Sony PSP, Windows, Linux, Maemo, Meego, iOS (iPhone/iPad) and MacOS. 该游戏引擎可高度定制,并允许修改规则创建自己的扑克和主题。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/wagic& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wagic首页、文档和下载 - C++ 纸牌游戏引擎 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&6. 项目名称:HTML5 开源免费游戏框架 Egre&/b&&/p&&img src=&/v2-6a730f04aeb3dbde9315d_b.jpg& data-caption=&& data-rawwidth=&888& data-rawheight=&495& class=&origin_image zh-lightbox-thumb& width=&888& data-original=&/v2-6a730f04aeb3dbde9315d_r.jpg&&&p&&b&项目简介:&/b&Egret Framework 是一款使用 JavaScript(TypeScript) 编写的 HTML5 开源免费游戏框架。Egret Framework 的核心定位是开放,高效,优雅。基于它,你可以快速轻松地构建属于自己的 HTML5 移动游戏。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/egret& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Egret首页、文档和下载 - HTML5 游戏开发框架 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&7. 项目简介:HTML5 互动游戏引擎 Hilo&/b&&/p&&img src=&/v2-456c5cca3c14bb4e1cdefb_b.jpg& data-caption=&& data-rawwidth=&850& data-rawheight=&806& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&/v2-456c5cca3c14bb4e1cdefb_r.jpg&&&p&&b&项目简介:&/b&Hilo 是阿里巴巴集团开发的一款 HTML5 跨终端游戏解决方案,它可以帮助开发者快速创建 HTML5 游戏。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/hilo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hilo首页、文档和下载 - HTML5 互动游戏引擎 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&8. 项目名称:Android 游戏引擎 Libgdx&/b&&/p&&img src=&/v2-bcc5bbab98e8b7e4cfdbb46_b.jpg& data-caption=&& data-rawwidth=&568& data-rawheight=&320& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&/v2-bcc5bbab98e8b7e4cfdbb46_r.jpg&&&p&&b&项目简介:&/b&Libgdx 是一个跨平台的开发框架。它目前支持的平台有 Windows,Mac OS X,Android,IOS 和 HTML5。&/p&&p&Libgdx 允许你可以将代码不经任何修改的部署到多个平台。而不是修改你的代码适应不同的平台或者直接编译到 HTML5。你可以在一个桌面开发环境中迅速部署你的代码。你可以使用所有的 Java 生态系统中的开发工具。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/libgdx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&libgdx首页、文档和下载 - Android游戏引擎 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&9. 项目名称:HTML5 开源游戏引擎 LayaAir&/b&&/p&&p&&b&项目简介:&/b&LayaAir 提供 Canvas 和 Webgl 同时渲染,如果 Webgl 不可用,则可自动切换到 Canvas 模式。引擎为高性能游戏设计,支持 AS,TS,JS三种语言开发,一套代码三端齐发(Flash,HTML5,APP)。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A//www.oschina.net/p/layaair& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LayaAir首页、文档和下载 - HTML5 开源游戏引擎 - 开源中国社区&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&10. 项目名称:HTML5 2D 游戏开发框架 Phaser&/b&&/p&&img src=&/v2-4b3d168bf9aacaf469ab8_b.jpg& data-caption=&& data-rawwidth=&488& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&488& data-original=&/v2-4b3d168bf9aacaf469ab8_r.jpg&&&p&&b&项目简介:&/b&Phaser 是一个开源的桌面和移动 HTML5 2D 游戏开发框架,支持 JavaScript 和 TypeScript。&/p&&p&&b&项目地址:&/b&&a href=&///?target=https%3A///mirrors/phaser& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&码云极速下载/phaser - 码云 &i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&blockquote&来&b&码云&/b& &a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&发现更多优质&b&开源项目:&/b&&a href=&///?target=https%3A///explore/recommend%3Fzhihu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最新推荐 - 码云 - 开源中国&i class=&icon-external&&&/i&&/a&&br&让&b&团队&/b&流畅、高效开发:&a href=&///?target=https%3A///enterprises%3Fzhihu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&码云企业版 - 码云 - 开源中国&i class=&icon-external&&&/i&&/a&&/blockquote&&img src=&/v2-aec564eb4b259bdaa924_b.jpg& data-caption=&& data-rawwidth=&652& data-rawheight=&116& class=&origin_image zh-lightbox-thumb& width=&652& data-original=&/v2-aec564eb4b259bdaa924_r.jpg&&
更新,没有看到服务器(逃。下面仅为游戏引擎和框架推荐,需要的小伙伴简单看一下,正确的答案努力撰写中。从角色扮演游戏到即时策略游戏,从冒险解谜游戏到动作射击游戏,甚至是只有一兆大小的迷你游戏,都有起着核心作用的技术组成部分。下面给题主推荐十…
&ul&&li&网络通讯/安全&br&&/li&&li&网络游戏同步机制&br&&/li&&li&分布式系统&br&&/li&&li&数据库/存储系统&/li&&/ul&
网络通讯/安全 网络游戏同步机制 分布式系统 数据库/存储系统
MMORPG的运营成本中,服务器硬件和机柜都是小头,最大的一块是带宽费用,上海外高桥电信机房30万1Gbps,是一个月30万哦。如果是双线接入,差不多就是翻倍了。&br&那1Gbps能支撑多少用户呢?比如wow这样的,人气比较旺的服平均流量20Kbps,峰值可以超过100Kbps,所以也最多就支持4000个用户。wow这样的游戏,一般在线比活跃是1:5到1:10,所以2万-4万个用户月流量开销就是30万,折合一个用户是7.5元-15元每月。&br&再看D3或者说GTA这样的开房间游戏,他们和MMORPG的流量有很大区别,平均流量可以做到1Kbps一下。这是因为MMORPG里面玩家聚集,而广播的数据量是和聚集玩家人数的平方成正比的,4个人开房间的流量比100个人打群架的流量是16:10000。而且,流量费用是根据最高峰算出来的,这样一来,流量费用上就可以差到一个到两个数量级了。
MMORPG的运营成本中,服务器硬件和机柜都是小头,最大的一块是带宽费用,上海外高桥电信机房30万1Gbps,是一个月30万哦。如果是双线接入,差不多就是翻倍了。 那1Gbps能支撑多少用户呢?比如wow这样的,人气比较旺的服平均流量20Kbps,峰值可以超过100Kbps…
&p&谢邀,看到题主的问题描述,我看到自己当初的影子,顿时有感而发,这里我想先给题主服务端的一些基本认识,然后再谈谈学习路线和方法。&/p&&p&游戏服务端大体可以分为以下几个部分:&/p&&p&1、网络层&/p&&p&
负责客户端和服务端,以及服务端集群内部之间的网络数据包收发,目前在游戏中广泛应用的两种协议,一种是TCP协议,还有一种则是HTTP协议。一般而言,那些网络数据包交互频繁的游戏采用TCP会更合适,比如MMORPG,而一些客户端和服务端交互不频繁的弱联网游戏,则采用HTTP协议,这些游戏一般以客户端为主,且通常防范作弊的能力有限。&/p&&p&
数据包交互频繁的游戏,大多采用TCP协议,然而对于手游来说TCP却未必是最好的选择,TCP最大的特点,首先是按序到达,超时重传,此外TCP协议还有流量控制和拥塞控制。这里我对拥塞控制做一下简要说明,虽然TCP设计拥塞控制的初衷是,通过控制发送方往网络注入字节序的数量,来缓解拥塞,也就是说,如果发送方多次发送数据包都没收到确认,则判定为网络拥塞,此时TCP的滑动窗口可能会减少到原来的一半,而恢复往往却很慢,那些对网络有着苛刻要求的Moba类游戏来说,TCP可能就没那么友好了。因此有些项目会采用UDP协议来传输数据包,虽然UDP无连接的,可能会导致丢包,但是可以在应用层加以控制,实现一套TCP like协议,UDP是用户报文协议,基本上应用层下传多少数据包,就会发送多少数据包,应用层需要实现UDP包的超时重传和按序到达等机制,在遇到网络拥塞时,仍然不会让数据包的发送量减半,因此能够有效缓解网络传输问题。&/p&&p&
上一段是网络协议在游戏上的一些应用的概述,对于服务端而言,网络层模型也是需要了解的,目前常用的是epoll模型,典型的使用情形是,服务端进程开一条socket线程,并且将包括监听、读取和发送事件在内的所有事件交给epoll来处理,在没有事件时,epoll_wait会阻塞socket线程,当有事件过来时,则唤醒socket线程进行相应的事件处理,此外,要网络层还需要进行分包和粘包处理,将数据包收齐以后再转给业务层。&/p&&p&
虽然不深入去研究网络层,也不妨碍你写业务逻辑,但是研究还是对你有益处的。&/p&&p&2、协议层&/p&&p&
这里的协议层和网络协议并非一个概念,游戏客户端和服务端在进行数据包交互的时候,往往需要将游戏内存中的数据结构,转成网络字节序,才能通过网络发送到另外一端。而这个转化的过程发送端要遵循一个序列化的规则,而接收方则需要需要遵循一个反序列化规则,遵循规则才能将数据转成网络字节序,传输,然后在另一端还原,这些被共同遵循的规则,则是协议。比较知名的序列化,反序列化的库是Google的Protobuf。&/p&&p&3、存库机制&/p&&p&
游戏中,玩家的操作比较频繁,涉及的数据变更也很频繁,如果每次都要进行写库,那么会导致游戏服务器的性能极具下降,因此,一般的游戏设计是,玩家的操作都是基于内存的,并且定时将数据写库,从而减缓数据库的压力。存库的方式,这里比较推荐用大blob的方式,比如将玩家所有的数据序列化为json字符串,然后作为blob存入数据库中,这样做的好处是,开发过程中,可以做到变更玩家存储结构而不用修改数据表。&/p&&p&4、逻辑层架构&/p&&p& 对于逻辑层架构,不同的游戏有不同的设计,这里就不举例说明了,不过大体上,都需要思考以下几个流程&/p&&p&1)启服关服流程:这一点很重要,在游戏进行停服维护时,要确保玩家以及和玩家相关的数据均落地以后,才能够杀进程,关服流程需要作出这种保证。&/p&&p&2)玩家登录登出流程:这也是一个比较容易出问题的流程,比如是否允许玩家在两个端同时登录服务器,如果允许如何避免数据被相互覆盖,导致玩家数据错乱等问题,如果不允许,如果改玩家实例已经在线,要不要踢下线?是立刻踢,还是发送一个延时踢的指令,并且这段时间内操纵这个实例的客户端所有请求均会被拒绝,并且给请求登录的玩家返回一个不能登录的错误码?这些都是需要考虑的问题,而且是需要慎重考虑。&/p&&p&3)容灾、扩容机制:对于高可用的服务端集群来说,7*24小时地进行运作,难免有时候会出一些状况,比如某个进程挂掉了,对于这种情况,我们需要有一种容灾的机制,保证进程宕掉,不会轻易地就要重启整个集群。如何设计扩容机制,直接影响到,当玩家大量涌入时,将部分玩家分流到新开的进程内,并且不影响原来的玩家?这些都需要考虑,虽然不难,但是需要慎重考虑&/p&&p&4)游戏同步机制:不同的游戏,会采用不同的同步机制,不过最典型的就是状态同步和帧同步,如果题主没有了解过,可以去找找资料研究一下。&/p&&p&5)配置机制:这点无需多言,只要将策划的配置表,转成程序中可用的文件格式即可。&/p&&p&以上是我对游戏服务端的一些理解,至于学习路线&/p&&p&网络层方面:精读《计算机网络(谢希仁著)》《TCP/IP详解》打好理论基础,同时可以结合《Unix网络编程》作为实践。&/p&&p&协议层方面:可以去Google的Protobuf官网看看其用法和说明。&/p&&p&数据库:说起来惭愧,我并没有看过很多关于数据库的著作,不过《Redis设计与实现》这本不错,很多人推荐,至于MySql,题主可以网上找找。&/p&&p&此外,选择一个成熟的服务端框架,也是非常重要的,最好不要自己写,我推荐云风的skynet,有时间可以多看看框架的源码,去理解人家的设计思路,开发思想,绝对是大有裨益的。多上网找找开源的demo来研究,然后自己手写一些demo,实践很重要。&/p&&p&自学服务端还是很辛苦的,需要自己写客户端,自己写服务端才能够跑起一套流程,还是做单机“简单一些”。虽然实际工作中,服务端要比客户端轻松一些,囧&/p&&p&最后,也是最重要的一点,就是要勤于总结才能快速进步,这里我分享一篇我写的skynet源码赏析的文章&a href=&///?target=http%3A///noteshare%3Fid%3D9d2b8a03fdd9cdd30af420%26sub%3DE05D93FC124D4B0B9DABC4& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/notesha&/span&&span class=&invisible&&re?id=9d2b8a03fdd9cdd30af420&sub=E05D93FC124D4B0B9DABC4&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&另外贴一下我的Blog地址:&a href=&///?target=https%3A//manistein.github.io/blog/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Manistein's Blog&i class=&icon-external&&&/i&&/a&&/p&&p&就说这么多了,保持住你的热情,多玩玩游戏,祝你学习进步&/p&
谢邀,看到题主的问题描述,我看到自己当初的影子,顿时有感而发,这里我想先给题主服务端的一些基本认识,然后再谈谈学习路线和方法。游戏服务端大体可以分为以下几个部分:1、网络层 负责客户端和服务端,以及服务端集群内部之间的网络数据包收发,目前在…
未查证,从表现猜猜看,猜的不对欢迎指出。&br&&br&1.在断线情况下,小兵还是能继续战斗,但是你丢不出去兵。&br&也就是操作请求必须经过服务器同意。&br&&br&2.在某些网络状态较差情况下,数据会加快播放,或跳帧。&br&作为一个有回放的战斗系统来说,播放某个时刻数据一点都不是问题。&br&那么跳帧和校验,这表示数据是在客户端演算的,然后应该有校验数据。&br&换句话,其实服务器可能压根没演算(未查证,但是如果没演算,双方同时掉线。这个战斗就没有结果。)所以我猜服务器其实是有演算的,测试的话,如果在双方都掉线后,战斗还是继续的。&br&&br&3.全服,虽然大家可以在一个网络下战斗,但是安卓党目前还得FQ才能玩。既然分联入区域的,那么我猜肯定有转发机制,如果选择在服务器A玩,那么服务器B仅管转发数据,反之同样。&br&&br&4.战斗,类似dota 我猜应该是协调服务器+战斗服务器。&br&&br&5.数据,玩家卡初始状态+运算规则一致+操作,其实这个数据量是非常小的。&br&&br&&br&########################&br&&br&回家路上想了下,如何实现一个类似的逻辑&br&&br&首先第一个概念,在基础数据一致的情况下没有随机数的情况下,任何程序的运行结果都是一致的。随机数也有伪随机可以控制这个再说。&br&&br&第二个概念,在第一个基础上,只要时间轴一致,&br&那么不管多少台机器,同一时刻的状态都是一致的。这个描述了同步状态。&br&&br&第三,只要玩家的操作都有时间戳,那么只要发给别的机器,那么所有的状态都能被同步。&br&&br&继续&br&&br&只要时间轴一致 并且操作带有时间戳,同步就自然一样。 那么只要服务端告诉用户什么时候开始,并且操作的时间戳由服务器发出,用户作弊也就被杜绝了。&br&&br&接着,我们来假设下回滚操作。&br&当客户端收到一个因自己网络延迟而延迟过来的操作时,会发现时间戳和当前时间延迟较大,那么重新演算到当前时间即可。&br&这就有跳帧回滚,这些现象产生。&br&&br&&br&因为咋一看这是实时,但是实际上非实时这么一个状态,所以服务器是无需以固定帧数来保持运行的。服务仅关心,开始数据,从开始到下一个有操作的演算,然后从上一个操作到下一个操作即可。也就是被动刷新,所以运算量并不会大,即便是大量并发战斗,也仅仅是多占点内存而已。&br&&br&完了,如果猜的不对多多包涵。
未查证,从表现猜猜看,猜的不对欢迎指出。 1.在断线情况下,小兵还是能继续战斗,但是你丢不出去兵。 也就是操作请求必须经过服务器同意。 2.在某些网络状态较差情况下,数据会加快播放,或跳帧。 作为一个有回放的战斗系统来说,播放某个时刻数据一点都不…
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 大型网游服务器 的文章

更多推荐

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

点击添加站长微信