TRAE+Xlwings,让你的EXCEL飞起来(商业化游戏抽卡数值实践)

在游戏开发中,数值策划(Numerical Designer)往往被称为“Excel 魔法师”。从复杂的经济系统到刺激的抽卡概率,一切体验的基石都藏在那些密密麻麻的单元格里。本文将带你通过 TRAE + Xlwings,让你也能轻松驾驭EXCEL,成为表格大师。

先介绍一下Xlwings,它是连接 Python 与 Excel 的最强桥梁,允许我们用简洁的 Python 代码完美替代晦涩的 VBA 宏,直接操控 Excel 的数据、样式与图表。通过它,我们可以利用 Pandas 等数据库处理海量工作数据,进行复杂的概率模拟,并将计算结果实时回填至当前打开的表格中。简单来说,Xlwings 让 Excel 拥有了 Python 的“大脑”,实现了真正的高效自动化办公。下面开始我们的实践吧!

一、实践目的

  1. 掌握利用TRAE+Xlwings操作EXCEL表格的方法。不单单是案例中的游戏数值,工作中的表格配置工作也同样适用。

  2. 理解商业化游戏抽卡数值的设定方法,了解为什么有的游戏这么氪金,为什么SSR卡这么难抽等问题。

  3. 聘用TRAE成为游戏数值策划,小白也能轻松驾驭游戏数值设定。

二、前置准备(完成EXCEL部分操作即可,其余可由TRAE完成)

  1. 让TRAE利用终端安装python,再安装xlwings、pandas、openpyxl库,当然你也可以使用以下命令手动安装:

pip install xlwings

pip install pandas

pip install openpyxl

  1. 保持xlwings与python版本一致的命令:

pip install --upgrade xlwings

xlwings addin install

  1. EXCEL权限设置

首先EXCEL的格式是xlsm,然后启用VBA工具,再找到文件(File)-> 选项 (Options)-> 信任中心(Trust Center)-> 信任中心设置(Trust Center Settings)-> 宏设置 (Macro Settings) -> 菜单项

勾选信任 VBA 项目对象模型(Trust access to the VBA project object model)

  1. 引用路径以及引用脚本

引用路径为当前文件夹路径。

引用脚本名输入main,方便后面利用代码库进行表格操作。

Add workbook to PYTHONPATH需要勾上增加路径,否则会找不到文件报错。

  1. 添加对xlwings的引用

  1. 更新代码库以及调试代码的方法

Import Functions:当补充新的脚本函数或者更新代码时使用。

Restart UDF Server:代码有修改时使用。

Show Console:显示控制台,可用于选择进程调试代码(TRAE可以不用)。

新建main.py文件,并在末尾添加代码,在TRAE中按F5可进行代码调试。

if __name__ == "__main__":
    xw.serve()

三、实践准备

1.实践设定

  1. 背景:你是一名游戏研发公司的数值策划,负责一款三国卡牌游戏的数值工作,游戏通过与发行公司合作进行宣传运营。

  2. 玩法:玩家可以利用招募令去获取魏蜀吴群四个阵营的卡牌,卡牌分为狗粮(白)、普通(蓝)、罕见(紫)、稀有(橙)、超稀有(红)五个梯度,卡牌可以通过消耗本体或者一定数量的其他品质卡牌进行升星。

2.实践需求

  1. 给不同梯度的卡牌划定合理的数量与价值,以及卡牌的升星消耗。

  2. 设定招募令的价值以及游戏的抽卡体验。

  3. 分析成本与收益,制定一个让玩家满意,游戏也能挣到钱的抽卡方案。

  4. 使用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,肯定能使你的工作事倍功半。

五、实践总结

  1. AI时代,用TRAE+Xlwings的工作流去操作EXCEL表格,面对工作中一些头疼的问题,可以轻松解决。不仅仅是表格配置工作,还可以帮忙规划设计,将项目改造成可视化的数据和图表。

  2. 在游戏设计工作中,数值是很重要的组成部分。好的数值带来心流体验,促进长期留存与商业成功,不好的数值则会导致经济崩盘和用户流失。利用TRAE做好数值规划,再配合Xlwings实现自动化配置,让数值工作简单而又高效。

2 个赞

学习学习~

3 个赞

学习一下新知识

4 个赞

学习学习~~

3 个赞