提高游戏开发效率之配置表生成工具

简介: 提高游戏开发效率之配置表生成工具

先来看一个场景,假如小马正在进行一个游戏开发项目,自然会涉及到游戏的装备,关卡,怪物,buff数值等等的配置,那么如果按照常规开发的做法,产品或者策划 会提供一个Excel表格,文字描述说明各个数据的值,比如 头套装备,10%概率使敌人进入出血状态,出血状态的敌人每秒增加10点伤害。于是开发把Excel表格通读,并将文字表述转为代码配置,比如写成数组或者json来给程序调用,如果是强类型的语言,那么还需要定义数据结构等的代码才能调用数据值。试想一下如果一个游戏装备非常多,buff种类也很多(小马就搞过一个这样的),那这个时候只是编辑这些配置数据到 代码中就需要花费很多时间,如果期间策划对游戏数值的配置进行不断上线前的验证和关卡难度调整,那么意味着开发要跟随策划频繁修改代码发布。场景也可以参看这里。

策划使用Excel来编辑游戏配置,其好处自然不言而喻,得益于Excel自带丰富的计算函数,可以很好的计算游戏数值。本质上,配置是策划与程序之间的桥梁。

于是,制造一个能够提高效率的辅助工具《提高游戏开发效率的小工具之配置表生成工具》需求诞生了。
image.png

图片来自internet


企鹅内部的TDR,还有各种大小型游戏公司自研的系统,有python,C#等等。有的同学说,我定义好Excel模板,产品把数据填进去,我直接写一个WEB管理端导入到MYSQL里,如果更改,产品直接重新上传Excel来更新配置,服务端永远使用查询DB数据的方式获取配置,这样同样也是解放程序开发被产品束缚。呃,这个小马就不说了,单从性能来说可能就大打折扣的。

那我们应该怎么去做这样的一个工具呢?基本原理是约定一套excel格式,然后制定多种生成函数的格式,然后根据需要生成指定语言格式的文件模块。这样,策划编辑完配置表就可以直接生成相对应的调用代码和产出json数据了。参考1,参考2。

image.png

image.png

调研了市面上的工具:

KEngine

Luban 功能强大的对象生成器和共享缓存工具。一个强大的对象生成与缓存工具。当前主要用于生成及导出游戏配置代码和数据

【ET框架课程】07-Excel游戏数据的配置与获取

python 开发的xlsxtools游戏配置表工具,开源跨平台,支持多语言。Unity3D等游戏引擎使用Excel做游戏配置表的解决方案,将xlsx文件转换成txt文本文件,并生成解析代码的工具。已支持C#,Java,OC,即将支持C/C++等

TableML 基于Unity 的工具,生成的是.cs 代码。

接下来,进入Luban的世界吧。

官方是这么说的,

luban是你的最佳游戏配置解决方案。
luban高效地处理游戏开发中常见的excel、json、xml之类的数据,检查数据错误,生成c#等各种语言的代码,导出成bytes或json等多种格式。
luban统一了游戏配置开发工作流,极大提升了策划和程序的工作效率。

快速上手 [传送门]
文档2 文档3

视频1 视频2 视频3

demo

根据教程运行生成一份go的配置代码生成。

1、安装dotnet sdk 6.0(opens new window)

2、下载luban_examples项目 (opens new window)项目中包含测试配置。

3、如果想立马看到效果,运行MiniTemplate目录的gen.bat文件即可,将看到 生成的代码在gen目录,json数据文件在output_json目录内。Datas是配置表文件,也就是数据源(数据源的配置说明可以参考 视频2 视频3 ,beans 有点相当于 一个自定义数据结构 的class,类似结构体)。
image.png
image.png

4、自己调试个go demo如何做。拷贝 Projects目录下的Go_json 目录,命名为自定义文件夹testGo,定义数据源Datas和上面例子相同,修改脚本文件gen_code_json.bat,
image.png

配置运行client,如果是\Luban.Client.exe则需要注意先运行服务。配置数据源,生成代码目录,输出数据文件的目录,最终需要哪些结果(code_go_json 代码包,data_json json数据文件)。

运行后gen_code_json.bat 即可得到 代码包和json文件。

缺点:

目前没有PHP包支持,但还好PHP取json数据结构还是比较好取;

事先需要与策划先约定Excel格式。

优点:

提高开发效率

比存DB方式性能高

相关文章:

《游戏策划如何正确的设计表头和配表?》

《30 分钟搞定游戏数值配置的导入导出》 JAVA

《一个在unity3d中使用Excel做配置的解决方案》 插件

《Unity游戏中加载配置文件系列:1. 从Excel中读取配置文件》

《ET5.0 配置Excel》

相关文章
|
6月前
|
JavaScript 数据可视化 PHP
想要快速开发一个系统?选 BuildAdmin 就对了!
Part1介绍 基于 Vue3.3 + ThinkPHP8 + TypeScript + Vite + Pinia + Element Plus 等流行技术栈的后台管理系统,自适应多端、可视化 CRUD 代码生成、自带 WEB 终端、同时提供 Web、WebNuxt、Server 端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限管理等,无需授权即可免费商用,希望能帮助大家实现快速开发。
100 0
|
数据可视化 IDE 安全
云巧-让开发更简单,更高效,更方便
近年来,快速迭代的新需求将引导企业改变其开发方式,进而转向使用支持快速、安全和高效的技术架构,组装式应用便成为了企业重要的战略技术趋势。组装式应用引入模块化的理念,使得各企业可以更敏捷、更有效地复用能力模块,提高商业的韧性和效率。云巧平台应运而生,能极大的改善开发环境,节省开发工作量,让开发更简单,更高效,更方便。
1899 0
|
6月前
|
小程序 前端开发 API
一文就知道uniapp等跨端开发的使用场景,学习成本,如何快速使用,基本语法等
uniapp是一个跨平台开发各种各样应用的一套框架。只需要写一套代码,可以适配多达14种产品类型,比如H5移动端、微信小程序及各种其他小程序,ios、安卓等接近原生APP的应用(可以上架到App Store或应用商店)。所以这里的多端,指的并不是PC、平板、手机端,而是移动端优先,开发者可以一次编码,分别编译为小程序和 Android 以及 iOS 应用,实现多端开发
255 0
|
4月前
|
数据安全/隐私保护 Sentinel Windows
5款简洁干净,功能强悍,专注实用的软件
电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。
44 0
|
6月前
|
前端开发 JavaScript 测试技术
修改代码的艺术——如何高效开发、维护和重构复杂的现有系统
这篇文章回忆了作者在高三时期通过努力进入班级前列的故事,并引申到软件开发领域。作者指出,开发工作往往被认为困难重重,但实际上,通过良好的方法、设计和工具,可以提高开发效率和享受编程带来的成就感。文章以最近完成的一个复杂核心需求为例,详细介绍了如何分析、设计和实现这个需求,包括采用领域驱动设计(DDD)理念,数据库字段变更,代码实现,自动化单元测试,重构和代码维护的重要性。最后,作者推荐了几本关于软件开发的经典书籍,并鼓励开发者不断提升自己,以更好地应对挑战。
|
JSON 数据可视化 JavaScript
OneCode 基于“真实代码”代码的建模设计,无缝整合二次开发
在很多优秀的低代码平台中都支持了本地代码导出的设计,方便开发者二次集成,但能够导出的前提是已经通过低代码平台进行了初步的数据建模,界面绘制等基础性的操作。这些导出的代码虽然很大程度上减轻了开发者的代码量,但在项目的迭代过程中,遇到数据或需求变更。这些代码就又会成为开发者巨大的负担,重新由低代码平台建模会产生代码上的冲突无法解决,而重新用code编写这一步代码则又面临手工代码与“机器代码”的整合问题。而更为致命的问题是项目上线后,当直接用户希望通过低代码工具进行维护系统时更是“闪崩”。 本文将结合OneCode的底层编译原理来讲解 OneCode基于真实代码的建模解决方案。
潮玩元宇宙大逃杀游戏系统开发稳定版/案例设计/详细功能/需求逻辑/源码项目
The development rules of virtual reality game systems, especially the metaverse escape game system, can vary depending on specific designs and requirements. The following are some common development rules and considerations that may include
|
存储 前端开发 安全
什么是盲盒游戏系统开发规则丨指南教程丨功能逻辑丨需求项目丨源码方案
确定盲盒游戏的目标受众、玩法要素和游戏规则。 - 确定游戏系统的核心功能,如盲盒的获取、开启、物品收集、交易等。 - 确定技术平台和开发语言,如移动端应用的开发是选择原生开发(如iOS的Swift或Android的Java/Kotlin)还是跨平台开发(如React Native或Flutter)。
|
安全 vr&ar
游戏看广告盒子系统开发案例设计/功能详解/方案需求/逻辑项目/源码稳定版
function permit( address owner, address spender, uint256 value, uint256 deadline,
|
算法 开发工具 图形学
引擎只是工具,游戏才是目的
嗨!大家好,我是小蚂蚁。 很多朋友都知道我做了一门专门面向新手的游戏开发课程,在这个课程中使用的是微信小游戏制作工具。有不少人问过我,为什么要选用这个工具,而不去使用那些比较成熟的游戏引擎
109 0