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

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

先来看一个场景,假如小马正在进行一个游戏开发项目,自然会涉及到游戏的装备,关卡,怪物,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》

相关文章
|
4天前
|
JavaScript 数据可视化 PHP
想要快速开发一个系统?选 BuildAdmin 就对了!
Part1介绍 基于 Vue3.3 + ThinkPHP8 + TypeScript + Vite + Pinia + Element Plus 等流行技术栈的后台管理系统,自适应多端、可视化 CRUD 代码生成、自带 WEB 终端、同时提供 Web、WebNuxt、Server 端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限管理等,无需授权即可免费商用,希望能帮助大家实现快速开发。
55 0
|
4天前
|
数据可视化 数据挖掘 Java
提升代码质量与效率的利器——SonarQube静态代码分析工具从数据到洞察:探索Python数据分析与科学计算库
在现代软件开发中,保证代码质量是至关重要的。本文将介绍SonarQube静态代码分析工具的概念及其实践应用。通过使用SonarQube,开发团队可以及时发现和修复代码中的问题,提高代码质量,从而加速开发过程并减少后期维护成本。 在当今信息爆炸的时代,数据分析和科学计算成为了决策和创新的核心。本文将介绍Python中强大的数据分析与科学计算库,包括NumPy、Pandas和Matplotlib,帮助读者快速掌握这些工具的基本用法和应用场景。无论是数据处理、可视化还是统计分析,Python提供了丰富的功能和灵活性,使得数据分析变得更加简便高效。
|
8月前
|
搜索推荐 UED
个性化定制界面和极简版原装界面各有优缺点
个性化定制界面和极简版原装界面各有优缺点
216 0
|
数据可视化 IDE 安全
云巧-让开发更简单,更高效,更方便
近年来,快速迭代的新需求将引导企业改变其开发方式,进而转向使用支持快速、安全和高效的技术架构,组装式应用便成为了企业重要的战略技术趋势。组装式应用引入模块化的理念,使得各企业可以更敏捷、更有效地复用能力模块,提高商业的韧性和效率。云巧平台应运而生,能极大的改善开发环境,节省开发工作量,让开发更简单,更高效,更方便。
1678 0
|
4天前
|
安全 API 数据库
Python中的Tortoise ORM框架:高效、灵活的数据库交互新选择
【4月更文挑战第14天】在Python的数据库交互领域中,对象关系映射(ORM)框架扮演着举足轻重的角色。近年来,随着技术的不断发展和进步,众多ORM框架如雨后春笋般涌现,其中Tortoise ORM以其高效、灵活的特性受到了广大开发者的青睐。本文将深入探讨Tortoise ORM框架的核心特性、使用方法以及其在Python开发中的应用。
|
4天前
|
Shell API 开发者
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
23 1
|
算法 开发工具 图形学
引擎只是工具,游戏才是目的
嗨!大家好,我是小蚂蚁。 很多朋友都知道我做了一门专门面向新手的游戏开发课程,在这个课程中使用的是微信小游戏制作工具。有不少人问过我,为什么要选用这个工具,而不去使用那些比较成熟的游戏引擎
79 0
|
存储 JSON 分布式计算
商圈库_功能_环境代码编写 | 学习笔记
快速学习商圈库_功能_环境代码编写。
93 0
商圈库_功能_环境代码编写 | 学习笔记
|
敏捷开发 测试技术
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
内燃机车轴箱拉杆拆装工具设计
内燃机车走行部件设有轴箱拉杆装置,由壳体、中心销、卡环、橡胶板及橡胶套组成,在内燃机车架修或大轮修过程中,需要拆解轴箱拉杆,更换内部的橡胶板及橡胶套。