介绍
在太乙网络的“大傩世界”中,角色的诞生并非预设剧本,而是通过智能游戏脚本与因果网络交互实现的“代码造人”。本实践以匿名开发者“师傅”与建设者“红中”的协作为主线,展示如何从虚无中铸造角色、赋予灵智,并为其注入基础交互能力,最终让角色“李火旺”在牛心村落地生根。
经过实践一,当前世界有了原始的区域和一些基础天道(SGS合约)支持,接下来我们试着创建玩家能操作的角色,并且让他在这个世界诞生。下图示例了师傅和红中在实践一的情况下创建新角色“李火旺”,并且让他在牛心村出生。

实践二操作路线图
步骤一:天赋设计——定义“灵根”与“命格”
师傅设计了两种可以用于角色的“天赋”,例如“乐观”和“天赋异禀”。如果角色在被创建的时候随机被赋予了某个天赋,则相关条件下天赋会被触发。比如“乐观天赋”在角色出生的时候能增加心情上限,而“天赋异禀”则能在角色出生时提供更高的总体属性上限
1. 编写天赋合约
- 师傅设计两类天赋Lua脚本,作为角色诞生的“先天命数”:
- 乐观(Leguan): 心情上限 +5 天赋触发:角色诞生时心如明镜,诸事不扰。
- 天赋异禀(Tianfuyiding): 属性总值 +20 天赋触发:灵台混沌初开,根骨非凡。
- 天赋脚本存储于太乙网络,区块链技术确保其不可篡改。
2. 部署天赋池
- 师傅将天赋合约注入“元神界”公共池,角色创建时随机抽取,契合“天道无常”的玄学设定。
步骤二:铸造肉身——“衍童石”的炼化与使用
目前玩家创建的空降角色没爹没娘,不能自己出生,需要借助法宝来化生。这里师傅设计了一种新法宝叫做“衍童石”,用于出生这种天降角色。
1. 设计衍童石(YanTong Shi)
- 师傅编写衍童石智能天道合约,核心功能包括:
- 角色出生:born_actor
- 天道升级:通过upgrade_actor将角色主合约升级至具备基础交互能力。
- 衍童石代码需绑定区域,确保角色出生地合法。
2. 炼化与安置
- 师傅铸造衍童石实体NFA并移交红中
- 红中将衍童石安置于牛心村区域
步骤三:角色诞生——“李火旺”的线上化生
红中运用玄牝工具创建新角色“李火旺”,创建时指定姓和名。角色在创建时会被随机赋予一些天赋。
红中接着通过玄牝工具运行衍童石的诞生角色指令,让李火旺这个角色在牛心村出生。指令可以指定出生时候的性别和性取向,还可以指定具体的各项属性,当然这些属性的总和不可以超过角色创建时候的属性总值上限。图中的属性加起来是820,这是在创建李火旺的时候随机到了“天赋异禀”天赋,这个天赋会导致角色属性总值上限增加20。
1. 出生角色实体(NFA)
- 红中调用衍童石天道命令,执行born_actor操作
- 天道链上因果验证
- 属性总值820(基础800 + 天赋异禀20),符合规则。
- 随机抽取的天赋“天赋异禀”,触发属性加成。
2. 结果
- 更新角色实体NFA,元数据包括:
- 唯一标识:0x0001(正整数)。
- 出生地:牛心村区域。
- 属性:性别、性取向、基本属性、五行等等。
- 初始状态:无交互能力,仅存“虚无之躯”。
步骤四:注入灵智——升级角色主合约
现在的李火旺,只是一个完全虚无的角色,内在的天道(SGS主合约)也是系统的默认合约,几乎没有什么可以和他交互的。因此需要对这个角色进行首次升级,成为一位基本的人类。这里,作为示例,师傅设计了一个人类角色所具有的内禀主合约,出于示例的考虑,这个合约具有一些基本的天道,例如可以“看(look)”的能力、可以“走(go)”的能力,还有一些诸如“查询状态(hp)”等基础交互能力。这样大傩玩家通过danuo客户端才可以对李火旺进行基本的操作。
而法宝衍童石正好有一个特色能力,就是有个指令可以升级角色到指定的SGS合约。这里红中通过衍童石来升级了李火旺的主合约到示例合约。
1. 设计人类主合约(示例合约)
- 师傅编写基础交互天道合约,赋予角色以下能力:
- 观因果(look):查看所处区域信息。
- 御风行(go):在连通区域间移动。
- 查命数(hp):显示属性与状态。
- 注意因为这些天道代码是开源的,修士可后续自定义扩展。
2. 天道升级
- 红中运转衍童石升级功能(upgrade_actor命令)
- 升级效果:
- 角色NFA元数据更新,新增一些能力字段。
- 衍童石在升级角色天道的时候,其运转要消耗一些QI,转入师傅账户。
其实,在实践二的那些日子里,师傅接着花费了很多天才补全了角色主合约中各种操作的具体设计。注意:这一步和上一步并没有特定顺序关系,目前这个顺序纯粹是因为师傅和红中进行首次实践合作的时候就是这个顺序(步骤四合约中的很多细节操作,都是师傅在很久之后陆陆续续实现的,因此不是在第四步就一口气搞定的)
步骤五:虚实交互——MUD客户端的首次连接
图中最右下的一个截屏是红中作为实际玩家在danuo客户端接入后,操作李火旺的实际交互(danuo实验客户端目前是MUD形式)
1. 接入大傩世界
- 红中使用danuo工具启动一个示例MUD客户端,以角色名称登录。在太乙网络项目中自带的danuo程序仅仅是一个C++版本的MUD型客户端工具,能从玩家的视角查看世界,还可以检查叙事性文本有没有问题,例如颜色标记等等。
- 真正给玩家Play的客户端有多种多样,红中老大也专门给出了一个TypeScript/JavaScript语言的MUD客户端示例项目,我们后面文章再来专门介绍。
2. 基础操作验证
- 执行look指令,返回牛心村场景描述
- 执行hp查看属性
一些实践感想:代码即魂魄
- 匿名性与唯一性:角色实体基于公私钥生成,无名无姓却独一无二。
- 动态进化:角色内禀天道主合约可随境界提升迭代,如同修士突破境界重塑肉身。
- 因果不昧:角色从诞生到交互的所有操作,均在区块链技术支撑下以交易哈希形式永存,形成不可磨灭的“修真命簿”。
这一实践不仅是技术演示,更是一场对“存在本质”的追问——当李火旺在大傩世界挥剑斩因果时,谁又能断言,屏幕外的我们不是另一重宇宙中的“NPC”?