AO 是游戏开发者的乐土

作者:ungigdu

审阅:outprog

来源:内容公会 - 新闻

AO 测试网已经运行了小半年,应用越来越多,生态也在不断繁荣。不少原本在 EVM 生态上的开发者(包括我),在陆续尝试使用 AO 做产品。在开发过程中,不少开发者仍然习惯于以太坊的编程思维和习惯,直接把 process 当作智能合约使用。当然这样的做法没有错,像 token blue print,atomic asset 这些实现基本是可以直接对应 ERC-20 和 ERC-721。可以说,AO 上大部分 process 的代码都很像智能合约。

在 AO 的白皮书中,AO 的定义就是 Actor Oriented Machine,所以 Actor,即 process 是这个系统的基础组成单位。比起智能合约,process 更像计算机进程,有便宜的存储,可以并行执行。开启一个 process 的成本不高,甚至可以即开即用即弃。低成本加可并行,使得 AO 编程范式(actor oriented programming)和智能合约有相当大的不同。在这里,我想就游戏场景展开联想,看一下 AO 编程范式在其中的应用。

AO 游戏的新玩法

想象一下我们在一个类似魔兽世界的多人在线 RPG 游戏中,我们就叫它 AO 世界吧。玩家操作的每个角色,都是一个 process,玩家可以操作这个 process 在游戏世界中打怪升级,买卖装备,对战竞技。当玩家下线的时候,魔兽世界的做法是保存角色当前的位置和状态,从服务器的内存中把角色占用的资源释放掉。在其他玩家眼里,看到的就是这个角色变透明,系统提示好友下线。但是在 AO 世界中,玩家下线,process 依然存在,并不会被释放掉。当然,我们可以在代码中添加逻辑,让 process 拒绝处理任何收到的 message 来做到“伪下线”。但更好的做法是让 process 有“自动驾驶”模式,角色可以在玩家 AFK 的时候自己打怪升级,赚钱,甚至可以买卖装备,从玩家变成了 NPC。这套“自动驾驶“的代码可以由玩家自己编写,甚至可以由 AI 驱动,作出类似真人玩家一样复杂的行为。这样的设计,AO 世界就不会出现因玩家流失而产生的鬼城现象,AO 世界永远生机勃勃。更好玩的是,玩家可以出租角色,而不用担心像魔兽世界一样需要暴露用户名密码给对方。

再来说游戏装备,AO 世界的每个游戏装备也可以是一个单独的 process,和真实的物理世界一样。角色 A 手中的铁剑,和角色 B 手中的铁剑,在刚被铸造的时候可能一模一样(除了铸造时间),但随着时间推移,铁剑的 process 记载了换手信息和击杀记录,变得越来越不同。铁剑 A 杀了 3 只鸡,铁剑 B 却砍倒了恶龙,铁剑 B 就具有了”人文价值“。当然,我们也可以真的让沾了恶龙血液的铁剑增加属性。给每件装备完全记录历史,这在传统游戏和链游中都不曾出现,而 AO 编程范式是天然能做到的。在魔兽世界中,经常有玩家社区自己设计挑战,比如 1 级暗黑精灵从达纳苏斯(精灵出生地)跑到暴风城(人族出生地),整个过程要全局录像直播,才能保证不作弊。在 AO 世界中,同样的挑战直接做即可,因为整个历史是无法作弊的,做到本身即验证。当然为了娱乐性,还是全程录像比较好。

AO 性能如何?

链游的开发者们此时也许会问。这么多玩家和装备,都是独立的 process,AO 世界的状态会不会爆炸?同时在线玩家增多会不会让 AO 世界交易拥堵?

我的答案是不会,AO 世界仍然会流畅的运行。先看状态爆炸问题,和 EVM 的全局状态不同,每一个 process 的状态都是独立的,并不存在全局状态,所以不需要一个物理机器存储所有 AO 的数据。AO 的计算资源可由 CU 动态分配,是可横向弹性扩展的。开发者只需专注于游戏逻辑,无需关心繁琐的服务器运维问题。

关于交易拥堵问题,由于 EVM 是串行计算,无论采用什么 layer 2 技术加速,它总是有一个处理速度的天花板,铁剑 A 砍中了小鸡,和铁剑 B 砍中了恶龙,两个事件必须是先后发生的。而 AO 则不同,铁剑 A,小鸡,铁剑 B,恶龙,这四个 process 并没有共享内存,也不需要世界时钟,铁剑 A 的砍中事件和铁剑 B 的砍中事件,完全可以并行计算。所以 AO 在架构上并没有交易拥堵的问题。

永不停机 + 自由组合

在传统游戏中,一旦游戏不赚钱,或者版权到期,游戏的运营公司是会停服的。有的时候,为了让停服有戏剧性,整出一个灭世事件来,让一个无敌的 boss 杀光所有玩家。在 AO 中,一旦游戏角色,装备开发出来,它就是永存的(起码和 AO 存在一样长),永远在线的。就算开发者决定不持续维护,其他开发者也可以无缝接手。甚至开发者可以在游戏一开始就开放让玩家自建 DLC,自建角色和武器,一起协作 build 整个游戏。

在 AO 上,所有的 process 都是可以互相通讯的,这说明了什么?说明 AO 上的所有应用,包括所有游戏,天生就是打通的。让我们发挥想象,玩家 A 从大富翁游戏中购置了一个铁矿厂,拿着生产的铁矿到 AO 世界中铸造了铁剑,最后跑到马里奥世界中用铁剑扎死了蘑菇怪。任何奇怪的组合都能实现,就像电影玩家一号中的高达和奥特曼同时上阵一样。传统游戏开发者经常做的事情就是去搜罗素材库,换皮。美术资源开销经常占整个游戏的一半以上。在 AO 游戏世界中,素材的丰富程度会随着时间推移单向增长,可用的编写好的素材,物品越来越多,后续的开发者上手就越来越容易,以至于最后变得和搭乐高积木一样简单,人人都可上手做游戏。

总结

让我们总结一下,AO 在游戏上有独到的优势,角色,道具永不下线,永不销毁,历史记录全部保留。所有的游戏资源可以做到全流通高复用,越开发越容易。AO 的存储和计算资源可弹性扩展,不用担心服务器配置和管理。Process 并行处理,无拥堵。这些特性让 AO 能成为游戏开发者的乐土。但是要达到这一目标,还需要生态不断丰富,游戏开发者不断加入,一起 build。