在游戏开发中,数值策划(Numerical Designer)往往被称为“Excel 魔法师”。从复杂的经济系统到刺激的抽卡概率,一切体验的基石都藏在那些密密麻麻的单元格里。本文将带你通过 TRAE + Xlwings,让你也能轻松驾驭EXCEL,成为表格大师。
先介绍一下Xlwings,它是连接 Python 与 Excel 的最强桥梁,允许我们用简洁的 Python 代码完美替代晦涩的 VBA 宏,直接操控 Excel 的数据、样式与图表。通过它,我们可以利用 Pandas 等数据库处理海量工作数据,进行复杂的概率模拟,并将计算结果实时回填至当前打开的表格中。简单来说,Xlwings 让 Excel 拥有了 Python 的“大脑”,实现了真正的高效自动化办公。下面开始我们的实践吧!
一、实践目的
-
掌握利用TRAE+Xlwings操作EXCEL表格的方法。不单单是案例中的游戏数值,工作中的表格配置工作也同样适用。
-
理解商业化游戏抽卡数值的设定方法,了解为什么有的游戏这么氪金,为什么SSR卡这么难抽等问题。
-
聘用TRAE成为游戏数值策划,小白也能轻松驾驭游戏数值设定。
二、前置准备(完成EXCEL部分操作即可,其余可由TRAE完成)
- 让TRAE利用终端安装python,再安装xlwings、pandas、openpyxl库,当然你也可以使用以下命令手动安装:
pip install xlwings
pip install pandas
pip install openpyxl
- 保持xlwings与python版本一致的命令:
pip install --upgrade xlwings
xlwings addin install
- EXCEL权限设置
首先EXCEL的格式是xlsm,然后启用VBA工具,再找到文件(File)-> 选项 (Options)-> 信任中心(Trust Center)-> 信任中心设置(Trust Center Settings)-> 宏设置 (Macro Settings) -> 菜单项。
勾选信任 VBA 项目对象模型(Trust access to the VBA project object model)。
- 引用路径以及引用脚本
引用路径为当前文件夹路径。
引用脚本名输入main,方便后面利用代码库进行表格操作。
Add workbook to PYTHONPATH需要勾上增加路径,否则会找不到文件报错。
- 添加对xlwings的引用
- 更新代码库以及调试代码的方法
Import Functions:当补充新的脚本函数或者更新代码时使用。
Restart UDF Server:代码有修改时使用。
Show Console:显示控制台,可用于选择进程调试代码(TRAE可以不用)。
新建main.py文件,并在末尾添加代码,在TRAE中按F5可进行代码调试。
if __name__ == "__main__":
xw.serve()
三、实践准备
1.实践设定
-
背景:你是一名游戏研发公司的数值策划,负责一款三国卡牌游戏的数值工作,游戏通过与发行公司合作进行宣传运营。
-
玩法:玩家可以利用招募令去获取魏蜀吴群四个阵营的卡牌,卡牌分为狗粮(白)、普通(蓝)、罕见(紫)、稀有(橙)、超稀有(红)五个梯度,卡牌可以通过消耗本体或者一定数量的其他品质卡牌进行升星。
2.实践需求
-
给不同梯度的卡牌划定合理的数量与价值,以及卡牌的升星消耗。
-
设定招募令的价值以及游戏的抽卡体验。
-
分析成本与收益,制定一个让玩家满意,游戏也能挣到钱的抽卡方案。
-
使用TRAE+Xlwings操作EXCEL制定详细的分析表格,能够清晰的了解数值设定。
3.相关细节
-
设定基础价值系数,可以参照常见的1RMB=10钻石来设定,与招募令的定价统一度量。
-
保底机制,除了十连机制外,可以采用随着抽取次数的增加,抽到超稀有概率随之增加的方式。
-
成本核算,需要估算卡牌制作成本(立绘、动画、特效、配置)以及游戏运营成本(服务器、研运分成比例、游戏宣发费用、单用户获取成本)。
-
收益还可以细分平时收益与活动收益,抽卡需预留运营空间,以供活动投放。
-
表格格式需要为.xlsm格式,并且加一些自定义按钮,以运行自定义函数手动调整。
-
表格增加一些文本格式(比如字体、字号、色值、合并单元格等),更具可视化。
-
要让实践更加真实,需要补充相关数据,比如卡牌数据(ID、名称、阵营、梯度等),并适配增删操作。
-
首页要对工作表的数据进行汇总。
4.代码架构
架构模式 采用 “主控调度 + 模块化脚本” 的设计模式。
-
入口 ( main.py ) :负责解析指令并按序调度程序,不包含具体业务逻辑。
-
逻辑层 ( scripts/ ) :将数值策划的不同维度(抽卡、经济、商业化)拆分为独立脚本,便于维护和扩展。
-
表现层 ( numerical_model.xlsm ) :通过 xlwings 实时渲染生成的 Excel 文件,包含数据验证、样式美化及 VBA 交互。
-
excel与
main.py同一路径,格式为.xlsm,支持VBA操作。
main.py参考样式:
# coding=gbk
# coding=utf-8
import xlwings as xw
import pandas as pd
import os
def fuction_path():
return os.path.dirname(os.path.abspath(__file__))
# 自定义公式(单元格输入=)
@xw.func
def 自定义公式(*parm):
import scripts.自定义公式 as fuc
返回=fuc.自定义公式(parm)
return 返回
# 自定义函数(按键调用)
@xw.sub
def 自定义函数():
import scripts.自定义函数 as fuc
fuc.自定义函数()
# 断点调试代码
if __name__ == "__main__":
xw.serve()
5.项目准备
设定项目规则
1.始终用中文回答问题。
2.用户提到“制定计划”、“分析问题”时,不要生成具体的代码文件,等用户确认后再执行。
3.main.py不执行具体代码逻辑,不主动调用任何函数。
4.用户或程序去main.py调度使用scripts里的脚本文件来操作EXCEL的。
四、进行实践
将实践设定、实践需求、相关细节、代码架构发给TRAE,让TRAE制定实践计划。
1.第一版效果
作为第一版的数值,可以说已经相当优秀了,我们可以继续增强我们的指令,来让TRAE更好的辅助我们。
2.第一版优化
因此我又提了以下要求,问TRAE一些深入灵魂的问题:
-
分成比例的依据是什么,请搜索网上相关真实情况填写研运分成,并在EXCEL中补充说明。
-
人均付费150的数据怎么得出来的,没有依据,需要在EXCEL中补充说明。
-
研发成本500万元的依据是怎么得出来的,每个卡牌的成本你计算了吗?运营月度成本又是什么依据呢?
-
基于概率去计算红卡价值合理吗?还是应该先算出各品质的卡牌价值,然后去划定概率?
-
ROI看6个月太长了,一般应该看多久定生死?
从TRAE的回答我们可以了解:
-
研发实际能拿到的分成非常低,甚至有些研发公司拿到的分成比例低于10%,游戏并没有大家想象中那么好挣钱。
-
一款游戏,往往上线第一个月就决定了生死,是一个比较残酷的行业。
3.后续调试
后续陆陆续续给TRAE提出了一些需求来优化我们的数值表格:
-
一般来讲,ARPU要结合买量成本来分析ROI,会有一个发行愿意继续买量的阈值,比如120%的ROI。然后也会根据前几天的ROI来调整买量策略,需要补充开服天数、买量成本、当天买量、总ROI、单服ROI的关系模拟。
-
要区分大R、中R、小R的付费,他们的付费目标是什么,抽卡的付费深度是多少,玩家的比例是怎么样的?
-
表格中需要有适当的公式计算,以了解数据之间的关系。
-
648/25这个倒推是否合理呢?是不是没有算其他卡牌的价值。 -
卡牌库需要增加每个卡牌被抽取的概率。看板也要补充真实概率和期望价值。
-
给表格增加适当得样式使之更好看一点。
4.最终效果
5.给TRAE开个工资
那么,这么一份数值表格,我们问下AI,这样的数值策划什么水平,应该给他开多少工资合适呢?
巧妙利用好TRAE,你就拥有了一位可靠的资深数值策划,虽然AI有夸大自身价值的成分,但是擅于利用TRAE,肯定能使你的工作事倍功半。
五、实践总结
-
AI时代,用TRAE+Xlwings的工作流去操作EXCEL表格,面对工作中一些头疼的问题,可以轻松解决。不仅仅是表格配置工作,还可以帮忙规划设计,将项目改造成可视化的数据和图表。
-
在游戏设计工作中,数值是很重要的组成部分。好的数值带来心流体验,促进长期留存与商业成功,不好的数值则会导致经济崩盘和用户流失。利用TRAE做好数值规划,再配合Xlwings实现自动化配置,让数值工作简单而又高效。