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

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

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

相关文章
|
7月前
|
JavaScript 数据可视化 PHP
想要快速开发一个系统?选 BuildAdmin 就对了!
Part1介绍 基于 Vue3.3 + ThinkPHP8 + TypeScript + Vite + Pinia + Element Plus 等流行技术栈的后台管理系统,自适应多端、可视化 CRUD 代码生成、自带 WEB 终端、同时提供 Web、WebNuxt、Server 端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限管理等,无需授权即可免费商用,希望能帮助大家实现快速开发。
100 0
|
7月前
|
小程序 前端开发 API
一文就知道uniapp等跨端开发的使用场景,学习成本,如何快速使用,基本语法等
uniapp是一个跨平台开发各种各样应用的一套框架。只需要写一套代码,可以适配多达14种产品类型,比如H5移动端、微信小程序及各种其他小程序,ios、安卓等接近原生APP的应用(可以上架到App Store或应用商店)。所以这里的多端,指的并不是PC、平板、手机端,而是移动端优先,开发者可以一次编码,分别编译为小程序和 Android 以及 iOS 应用,实现多端开发
262 0
|
5月前
|
存储 Windows
5款软件让电脑更方便,更快,更好看
你有没有想过,有些软件能让你的电脑用起来更方便,更快,更好看?
42 0
|
7月前
|
前端开发 JavaScript 测试技术
修改代码的艺术——如何高效开发、维护和重构复杂的现有系统
这篇文章回忆了作者在高三时期通过努力进入班级前列的故事,并引申到软件开发领域。作者指出,开发工作往往被认为困难重重,但实际上,通过良好的方法、设计和工具,可以提高开发效率和享受编程带来的成就感。文章以最近完成的一个复杂核心需求为例,详细介绍了如何分析、设计和实现这个需求,包括采用领域驱动设计(DDD)理念,数据库字段变更,代码实现,自动化单元测试,重构和代码维护的重要性。最后,作者推荐了几本关于软件开发的经典书籍,并鼓励开发者不断提升自己,以更好地应对挑战。
|
存储 前端开发 安全
什么是盲盒游戏系统开发规则丨指南教程丨功能逻辑丨需求项目丨源码方案
确定盲盒游戏的目标受众、玩法要素和游戏规则。 - 确定游戏系统的核心功能,如盲盒的获取、开启、物品收集、交易等。 - 确定技术平台和开发语言,如移动端应用的开发是选择原生开发(如iOS的Swift或Android的Java/Kotlin)还是跨平台开发(如React Native或Flutter)。
|
算法 开发工具 图形学
引擎只是工具,游戏才是目的
嗨!大家好,我是小蚂蚁。 很多朋友都知道我做了一门专门面向新手的游戏开发课程,在这个课程中使用的是微信小游戏制作工具。有不少人问过我,为什么要选用这个工具,而不去使用那些比较成熟的游戏引擎
110 0
|
存储 JSON 分布式计算
商圈库_功能_环境代码编写 | 学习笔记
快速学习商圈库_功能_环境代码编写。
商圈库_功能_环境代码编写 | 学习笔记
内燃机车轴箱拉杆拆装工具设计
内燃机车走行部件设有轴箱拉杆装置,由壳体、中心销、卡环、橡胶板及橡胶套组成,在内燃机车架修或大轮修过程中,需要拆解轴箱拉杆,更换内部的橡胶板及橡胶套。
|
应用服务中间件 开发者 Dubbo
《免费 | 开发部署效率提升 8 倍,这款 IDE 插件让应用部署不再重复、繁琐》
对于开发者而言,提高工作效率大概有 2 种主要方式,第一种方式就是加快自己的工作速度,争取在同一段时间内多码一些代码、多干一些活来实现多产;而聪明的开发者会选择第二种方式,就是通过插件,让一些重复性的、繁琐性的工作被自动化,从而节省出时间来做一些实质性的业务,达到轻松又高效的工作步调。
5238 7