一个人的服务端.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
当然可以,但难道有个引擎,就可以做出真正商业化的游戏么?而且国产游戏大部分是网游啊。几年前的老文——《一个人的服务器端》(只是为了说明游戏开发难度,不是针对题主问题。)技术准备1策划定调2策划启动2美术启动3项目危机3第二MileStone开始4策划数值定调4python框架定调5任务框架制定5python程序招聘和整个系统的重新设计5客户端python化6MileStone36python程序继续招聘6寻找买家6大陆买家7大陆封测7大陆内测7台湾内测8台湾计费9大陆在线人数跳水9小结9技术准备能够做这个MMO的触发点是通过某些途径得到了某个大公司使用的一款3D引擎,其他的都是白手起家。当时大家还不知道有“分布式服务器端”一说,服务器端框架参考了《剑3》:剑3内测的时候经常服务器crash,但是每次只crash一个地图,所以可以推知他们是一个地图一个server;加上自己对服务器端的认识,需要Gate当防火墙,需要GameServer来总管MapServer,需要DB来存储,那么最初的服务器端框架就定下来了:Gate、GameServer、MapServer、DBServer。想让服务器之间的连接方式最简化,所以确定GameServer是中心,其他Server都连接并且只连接GameServer。MapServer和GameServer上面准备加脚本,脚本直接选择了python,因为python语法清晰一点。开发平台选择windows,因为当时公司内没有一个人了解linux。策划定调做一个3D版的征途,这个就是最终确定的整个项目的方向。为什么这个方向?因为:1.征途火,大家都想学。2.征途的开发技术难度相对较低。3.当时很多运营游戏的公司的产品线上都没有类似产品。项目启动启动时team中只有5人。一共有3件事:1. 服务器端先行开发,服务器端3个月的计划是构建所有服务器并且封包走通。2.研究引擎并且改造引擎,确保自己会使用,同时没有抄袭痕迹。3.开始策划招聘,对这个策划的定位很明确:要能够扛得起旗帜,有领导力,有大局观,最好是征途公司的。服务器端这边的目标是达到每秒30万个封包的效率,封包大小在30byte到50byte。30万这个数据来自于估算:服务器端300人互相可见的情况下,每人每秒动3次,那么就是300*300*3,差不多30万封包了。服务器端第一次重构服务端这边开始是2人开发,我做大局,另一个做网络层,一个月后封包效率仍然上不去,于是大家一起检查代码,发现网络层的封包pool结构不是用list存储,而是用map,还发现很多其他常识性问题,于是决定把他调离服务器端,去做场景编辑器。于是从此我开始了一个人的服务器端的旅程,花了1个星期的时间完成重写他的代码,然后继续前进。优化经验这个项目的优化难度不太高,源于2点:1.整个项目设计都遵循一条指导原则:能不用第三方库就不用,所以优化过程中不需要理解第三方库的用法。2.封包定义的结构是struct,定义封包的方式是先写伪代码,然后再用根据根据伪代码生成每个封包的struct和ReadBuffer、GetBuffer函数。一般封包都是用memcpy赋值,只有动态封包,比如封包中如果不得不使用sting,才会通过比较慢的方式读取,这样的话在封包赋值、转移操作上面没有碰到任何性能问题。基于以上的定义,实际上只有2条优化经验:1.读取封包的时候,一次要尽可能多的读取封包,不要先read一个封包长度,再根据长度read实际内容。这种方式会让性能大打折扣。2.发送封包的时候,需要稍微拼接一下再发送,可能会造成一定的封包延时,但是效率会上升至少10倍。策划启动理想的主策过来了,是以前征途的策划,纯市场导向。过来后没有急着开始招策划,而是先风格定调,这个过程就像RPG游戏里面给一个角色配点一样,总共属性点是有限的,我们必须强调哪些东西而舍弃哪些东西。在这个游戏中,强调的是PK,舍弃的是娱乐性、PVE。我们坚决不做魔兽世界,这个是当时的口头禅。事实证明这句话是对的,魔兽世界不是谁都可以做出来的。最终确定了游戏背景是战国时间,以秦始皇为蓝本。世界观确定的时间大概有1个月,之后就开始招聘执行策划了。美术启动主美也过来了,是老牌工作室的人。主美过来的同时就开始招聘美术,这个时候,对于美术各个职位,待遇最高的是原画。为了激励大家的士气,老板公开定了3个月一次MileStone,每个MileStone拿一次奖金的制度,所有人都很开心。项目危机现在有几个问题:问题1:内部不协调。程序是公司自己培养起来的,是公司的主动力,而普通策划和普通美术都是新来的,但是一来工资却比程序高很多,因为公司开的工资在业内是偏低的,要招新人,必须按照业内标准来招才能找到人。也就是说新来的策划美术都是业内标准工资,而程序拿的是很

文档评论(0)

tfig892 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档