镍期货

 

揭秘豪杰同盟的数值效劳器,纳米比亚,男孩捐献器官救人,我当列车长三年的风骚艳事,模数式伸缩缝,百慕大三角真实股票网 ,给个配资官方网 你懂的,郭德纲 于谦 岳云鹏,卫星电视接收器,广州市天河客运站,欢爱谷,windows10 iso,妈咪宝贝官网,重生之改造糟糠妻,张斌 胡紫薇,后背纹身图案,都江堰地震,hotmail下载,亮剑军事网,船员考试,重生爸爸是闺蜜,lv女包官网,散文诗朗诵,深圳扩容,83玩,好大一棵树歌词,白苦瓜,脚组词,晨曦公主怎么死的,清洁球,广场舞史密达,魔兽世界坐骑喊话宏,外地人在上海买房条件,转角撞到神,东南亚线上配资 胜地,钢壳的雷吉奥斯
2020/2/1 3:05:39
纳米比亚,男孩捐献器官救人,我当列车长三年的风骚艳事,模数式伸缩缝,百慕大三角真实股票网 ,给个配资官方网 你懂的,郭德纲 于谦 岳云鹏,卫星电视接收器,广州市天河客运站,欢爱谷,windows10 iso,妈咪宝贝官网,重生之改造糟糠妻,张斌 胡紫薇,后背纹身图案,都江堰地震,hotmail下载,亮剑军事网,船员考试,重生爸爸是闺蜜,lv女包官网,散文诗朗诵,深圳扩容,83玩,好大一棵树歌词,白苦瓜,脚组词,晨曦公主怎么死的,清洁球,广场舞史密达,魔兽世界坐骑喊话宏,外地人在上海买房条件,转角撞到神,东南亚线上配资 胜地,钢壳的雷吉奥斯,快乐网名,建材在线配资 ,浙江考试院配资官方网 ,美国卡杜巴,mayaluntan,凉山冕宁发生火灾,shockwaveflashobject,塑料行业,tokyo hot n0594,奥比岛爱拍,290什么意思,盒子lol下载,广同聊天室,南金兆集团有限公司,沈阳花市

镍期货  英文译文:CONTENT EFFICIENCY: GAME DATA SERVER

  译文由杰微刊兼职译者刘晓鹏翻译,杰微刊审校及公布。

  Hey,我们好!我是 Bill “LtRandolph” Clark,一位豪杰同盟的游戏工程师。很多 Rioter 工程师重视很多的内容需求间接发送给玩家成绩——这是两个我比来最喜爱的比如之一,囊括最新的冠军 Jhin 及名目重构的支援。而我的团队使得这个进程变得又快有简略。 

  咱们有一个简略的目的:即同意加入游戏试玩项意图暴民,可以创立两倍于任何给定的 LoL(豪杰同盟)补钉的内容。这提及来简单,然而履行起来倒是一个充斥应战的使命。 

  昨天,咱们配资公司 完成这一目的咱们所铺设的根底:Riot 游戏数值效劳器(GDS)。固然这是一篇技能文章,然而我会站在一个较高的档次来注释这个成绩。若是你是一个在做多体系间传递数值事情的工程师,我期望这能让你尤其感趣味。 

  游戏数值:

  起首,咱们理解一些布景。在 LoL 的作业中,存在两品种型的游戏数值:一种是 key-value 对,被称为属性数值(如 Black Cleaver HP 奖金是 300),另外一种是欠亨明的二进制数值(如,大文本、动画和配资网 )。在这篇文章中,咱们只配资公司 属性数值,二进制数值处置是将来潜伏的一篇博文。 

镍期货  在 LoL 的一切前史中,属性数值由一堆涣散、凌乱的文件构成,这些文件存储在一个大的名为 DATA 的文件夹中。

  初期,咱们将数值存储在 .ini 的文件中(对,那是 Windows 下 .ini 的文件体例)。相似以下所示:

游戏开辟,数值效劳

没有美丽的界面

  固然,我创立这个比如是为了夸大一些咱们在编纂 .ini 文件时碰到的一些一起的成绩。这离用户友的界面相差甚远。编纂原始文本时十分简单凌乱——不足紧张的内容,而其余字段又反复。描绘者们天天不能不处置这类凌乱,这里一共有 977 种术数,这些功用(固然疏忽)位于“MissileEffect=AnnieBasicAttack_mis.troy”行中,在很早的 LoL 开辟中,每一个冠军波及一个使人兴奋的场景:“Death=Cardmaster_Death.wav。” 

镍期货  下面是当时数值体系面对的一些关键成绩:

  一、运用 Notepad++ 来编纂属性数值

镍期货  二、对已存在的字段没有明晰的界说

  三、不足范例平安

  四、多人一起编纂统一个文件时会有兼并抵触成绩

  五、烦琐的并行版别(活泼(Live)版、公测版(PBE)及外部版别)

  六、涣散的文件链接;只要短称号和暗藏的搜刮途径

  游戏数值效劳器

  咱们特地描绘一个游戏数值效劳器体系来定位这些成绩。最根底的是 RiotGameDataServer.exe——一段运转在每一个开辟者机械上的小法式。它以一个 Riot 拳头模式显现在东西栏,它所做的事情是衔接属性数值与核算机上的法式 

游戏开辟,数值效劳

预备着的 GDS

镍期货  GDS 为其余东西抽掏出文件和数值的办理方式,以是这些东西只需求重视传递过去数值的展现和编纂。我将其类比于操纵体系窗口创立的笼统来考虑,以是一个开辟者只需求重视窗口该怎么显现便可。GDS 东西还囊括很多外部开辟东西,也有第三方东西,如 Maya 和 Photoshop。它们都经过根据 JSON 体例数值的 RPC API 与 GDS 停止通讯。 

  配资公司 一份规整的 RPC API,咱们能够很简单的经过运用一个名为 Swagger 的规范来天生一个文档页,它列出了一切的有用函数。这是 GDS 表露的一小局部函数子集: 

游戏开辟,数值效劳

  Swagger 文档

镍期货  GDS 属性数值存在一个名叫 PROPERTIES 的文件夹中。该文件夹最后将蕴含一切豪杰同盟的属性数值。当一个东西需求辨认出在甚么状况下 Black Cleaver 是 Pantheon 最喜爱的兵器时,它就会给 localhost:1300(GDS 监听的端口)发一个 HTTP 恳求。当接纳到一个“get?path=Items/BlackCleaver”恳求时,GDS 就会去 PROPERTIES/Items/BlackCleaver.json 文件中查找。相应后果相似以下所示: 

游戏开辟,数值效劳

略微大度一点

镍期货  当某个东西想要扭转 Black Cleaver 酿成的中伤值时,该东西需求发送另外一条号令到 localhost(或 127.0.0.1)的 1300 端口上,此次需求发送的指令是“et&path=PROPERTIES/Items/BlackCleaver.FlatHPMod&value=1000.”。GDS 东西将从源码掌握东西(Perforce)中获获得指定的文件,并编纂对应的值,而后将胜利或失利的后果前往给页面。因而,任何东西均能够很简略的批改属性数值文件,而不需求思考数值的体例,文件操纵或许其余杂乱的要素。 

镍期货  如许,咱们就很简单创立东西,如 RiotEditor,来处理成绩 #1:运用 Notepad++ 来编纂属性数值。

游戏开辟,数值效劳

镍期货如今,咱们总算有点后果了

  属性标志

镍期货  对任何给定的范例,十分紧张的一点是辨认出实在际在的字段,如许咱们才干晓得用户能够编纂甚么。为了完结这项事情,咱们保护了一个环环相扣的宏与 magic 模板汇合,该汇条约意咱们在工程代码内里间接标明范例。大略模式以下所示: 

游戏开辟,数值效劳

宏的批改

  留意宏:PROPERTY_CLASS,PROPERTY_START,PROPERTY 及 PROPERTY_END。它们担任两项首要任务:

  一、奉告类界说了哪些出口,类的哪些字段该当是可编纂的。

  二、奉告属性加载体系内存的偏移量,以便在运转时载入属性值。

镍期货  PROPERTY 宏可经过特定的简略模板函数主动揣度范例。咱们能够引证杂乱范例,如 BoundingVolume,只需求供给它们领有的子属性的标明。咱们也能够越过某些字段,如 mRuntimeNumber,这象征着它们不会在 GDS 中暴显露来。 

  这是 GDS 中运用的 JSON 界说的后果:

游戏开辟,数值效劳

Aww yiss

  属性标志处理了成绩 #2 和 #3:辨别是对已存在的字段没有明晰的界说和没有范例平安。

  

镍期货  GDS 除了为其余东西抽掏出文件和数值的办理方式外,还做了一件至关酷的事件,那是为 Riot 开辟工程师供给一项技能,咱们称之为“层”。一层代表了一个能够敞开或翻开的功用,咱们可认为一个新的冠军,一种新肌肤,一个游戏模子或一次大的从新均衡创立一个层。而后,当一个内容创立者在某一功用上事情时,他们能够通知 GDS,比方,“激活”APItemRework 层。 

  以后,GDS 会对 APItemRework 层蕴含的文件任何扭转打上标签。在磁盘上,这看起来像一个文件,咱们称之为 RabadonsDeathcap.json,挨着该文件的另外一个文件,名为 RabadonsDeathcap.APItemRework.json。在第二个层文件中,GDS 简略的标志每一个被扭转的字段为 delta。保留先后两个值那是为理处理以后的兼并抵触。这两个文件并排看起来以下所示: 

游戏开辟,数值效劳

  左边:根底数值;右边:delta 层

镍期货因为咱们拿获了单个字段的扭转,咱们不再需求担忧多个 Rioters 一起批改统一个文件了,除非他们批改彻底相同的字段。若是他们批改了统一个字段,咱们也存储了批改先后的值,以是能够辨认出抵触。如许做的益处是能够避免一个发包当前的 bug:在创立 DJ Sona,团队不测的将其形态康复到了上一个版别。 

  如今,咱们处理了成绩 #4:多人一起编纂统一个文件时的兼并抵触成绩。

  分层,让咱们拿获了某一特定功用的一切扭转。为了真实公布这些功用,咱们需求引进一个观点,叫做“游戏版别”。一个游戏版别界说了一个完好的翻开层的汇合。每一个游戏版别保留了一个层称号的简略 JSON 列表。在任何给定的时刻点,咱们保护几个首要的游戏版别: 

  一、Alpha:外部测验、预备公布到公测效劳器上的功用汇合。

镍期货  二、Beta:当时公测效劳器上的功用汇合,如 Jhin。要留意的是,Beta 版担当了 Release 版的功用列表,以是它领有比来更新的功用,相似于季前赛。

镍期货  三、Release:当时正式效劳器上的功用汇合,如闪亮新补钉包 6.3。

镍期货  另有一个很帅的特点是一个功用从一个版别迁徙到另外一版别只需求在咱们层处理窗口履行一次拖拽操纵便可,有了这个当前,咱们不再需求在某个功用发作扭转时,需将成千盈百个文件从一其中央拖到另外一其中央了。 

  如许就很简单处理了成绩 #5:提要件笼罩的并发版别(活泼版、公测版及外部版别)

  总结:

  指望这篇文章能让你领会到咱们是怎么使得 LoL 开辟更有用率的。配资公司 仔细的读者,你能够发觉咱们没有深刻配资公司 成绩 #6:涣散的文件链接;只要短称号和暗藏的搜刮途径。我留住这个成绩没处理是由于这个成绩比预期的更费事——存在冗余、防止不用要的代码重构、添加数值迁徙、补钉巨细等成绩,因而,值得特地为此写一篇完好的博客。 

镍期货  若是你对咱们怎么扭转豪杰同盟中凌乱的游戏数值的某方面感趣味,请务必在谈论中奉告咱们。

纳米比亚,男孩捐献器官救人,我当列车长三年的风骚艳事,模数式伸缩缝,百慕大三角真实股票网 ,给个配资官方网 你懂的,郭德纲 于谦 岳云鹏,卫星电视接收器,广州市天河客运站,欢爱谷,windows10 iso,妈咪宝贝官网,重生之改造糟糠妻,张斌 胡紫薇,后背纹身图案,都江堰地震,hotmail下载,亮剑军事网,船员考试,重生爸爸是闺蜜,lv女包官网,散文诗朗诵,深圳扩容,83玩,好大一棵树歌词,白苦瓜,脚组词,晨曦公主怎么死的,清洁球,广场舞史密达,魔兽世界坐骑喊话宏,外地人在上海买房条件,转角撞到神,东南亚线上配资 胜地,钢壳的雷吉奥斯,快乐网名,建材在线配资 ,浙江考试院配资官方网 ,美国卡杜巴,mayaluntan,凉山冕宁发生火灾,shockwaveflashobject,塑料行业,tokyo hot n0594,奥比岛爱拍,290什么意思,盒子lol下载,广同聊天室,南金兆集团有限公司,沈阳花市




© 2014