雄联盟工程师独家分享:如何使开发更有效率

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。”


下面是当前数据系统面临的一些关键问题:


1、使用 Notepad++ 来编辑属性数据
2、对已存在的字段没有清晰的定义
3、缺乏类型安全
4、多人同时编辑同一个文件时会有合并冲突问题

………………………………

请查看全文>>


看了又看:

小偷被抓叫嚣:我不偷警察没饭吃

什么样的电脑配置比较适合开发?效率更高

李开复:我在硅谷看到的最前沿科技趋势

程序员如何在北京买套房,十大赚钱技巧



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值