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

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

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

相关文章
|
8月前
|
JavaScript 数据可视化 PHP
想要快速开发一个系统?选 BuildAdmin 就对了!
Part1介绍 基于 Vue3.3 + ThinkPHP8 + TypeScript + Vite + Pinia + Element Plus 等流行技术栈的后台管理系统,自适应多端、可视化 CRUD 代码生成、自带 WEB 终端、同时提供 Web、WebNuxt、Server 端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限管理等,无需授权即可免费商用,希望能帮助大家实现快速开发。
121 0
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
66 2
|
2月前
|
自然语言处理 运维 开发工具
深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成
本文深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成。通过命令对比,展示了两者在启动、配置、模式切换、移动编辑、搜索替换、插件管理、文件操作、窗口缓冲区管理和高级功能等方面的差异。总结部分强调了 NeoVim 在多个方面的显著优势,解释了为什么越来越多的运维人员选择 NeoVim。
118 3
|
5月前
|
机器学习/深度学习 数据可视化 数据挖掘
构建可复用的 Jupyter 模板和插件:提高工作效率的最佳实践
【8月更文第29天】Jupyter Notebook 是一个广泛使用的交互式计算环境,支持多种编程语言。它不仅用于数据分析、可视化和机器学习项目,也是教学和科研的理想工具。然而,随着使用频率的增加,重复编写相似的代码和设置变得既耗时又低效。通过创建可复用的 Jupyter 模板和插件,我们可以显著提高工作效率。
129 1
|
8月前
|
前端开发 JavaScript 测试技术
修改代码的艺术——如何高效开发、维护和重构复杂的现有系统
这篇文章回忆了作者在高三时期通过努力进入班级前列的故事,并引申到软件开发领域。作者指出,开发工作往往被认为困难重重,但实际上,通过良好的方法、设计和工具,可以提高开发效率和享受编程带来的成就感。文章以最近完成的一个复杂核心需求为例,详细介绍了如何分析、设计和实现这个需求,包括采用领域驱动设计(DDD)理念,数据库字段变更,代码实现,自动化单元测试,重构和代码维护的重要性。最后,作者推荐了几本关于软件开发的经典书籍,并鼓励开发者不断提升自己,以更好地应对挑战。
|
8月前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
算法 开发工具 图形学
引擎只是工具,游戏才是目的
嗨!大家好,我是小蚂蚁。 很多朋友都知道我做了一门专门面向新手的游戏开发课程,在这个课程中使用的是微信小游戏制作工具。有不少人问过我,为什么要选用这个工具,而不去使用那些比较成熟的游戏引擎
119 0
|
存储 JSON 分布式计算
商圈库_功能_环境代码编写 | 学习笔记
快速学习商圈库_功能_环境代码编写。
商圈库_功能_环境代码编写 | 学习笔记
内燃机车轴箱拉杆拆装工具设计
内燃机车走行部件设有轴箱拉杆装置,由壳体、中心销、卡环、橡胶板及橡胶套组成,在内燃机车架修或大轮修过程中,需要拆解轴箱拉杆,更换内部的橡胶板及橡胶套。