Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数据文件的标记格式还是脚本?

数据文件的标记格式还是脚本?
EN

Game Development用户
提问于 2012-12-04 16:57:38
回答 2查看 460关注 0票数 0

可能重复: 如何选择如何存储数据?

我正在设计的游戏主要是用高级脚本语言编写的(倾向于Lua或松鼠),带有C++内核。除了脚本,我还需要不同的数据文件。许多数据文件将用于静态信息,如图形资产和怪物类型。我还希望在运行时为用户信息创建和更新数据文件,如选项设置和游戏保存。

对于我的数据文件,我可以使用普通脚本文件(即.lua或.nut文件)吗?还是使用诸如XML或YAML这样的专用标记格式更好呢?

如果我使用独立于真实脚本加载的脚本文件,那么我就不需要额外的库来读取这些文件。像Lua这样的脚本语言也有表语法,这些语法有助于数据定义。另一方面,我必须编写自己的模式检查代码。这些语言似乎也不像标记格式库那样支持“开箱即用”的序列化。

EN

回答 2

Game Development用户

回答已采纳

发布于 2012-12-04 18:30:06

我建议使用标记格式,而不是将所有数据放在脚本文件中。主要原因是,由于JSON和XML库的可用性,编辑和生成JSON或XML将比生成类似的Lua或松鼠代码更容易。另一个原因是,它通过将数据保持在自己的格式中,并且脚本保持自己的格式,从而使您具有更大的灵活性:

  • 如果您决定更改脚本语言,您的数据仍将是可用的。
  • 如果您决定根本不使用脚本,那么您的数据仍然是可用的。

事实上,你可以把事情发展到另一个极端,甚至把Lua或松鼠代码块存储在你的数据文件中--但是为了保持数据和脚本的整洁,这可能是你想要避免的。

关于JSON和松鼠的说明:松鼠3.0支持类似于JSON的对象声明,因此您实际上可以使用原始的JSON字符串,松鼠VM可以将它们解析为表。我认为这是同时使用这两种技术的一个优势。

票数 3
EN

Game Development用户

发布于 2012-12-05 01:07:27

我是否可以使用普通脚本文件(即.lua或.nut文件)来处理数据文件.

当然,这是个有效的选择。

我做过一个游戏,其中很大一部分数据文件是用Lua写的,没有人受伤,而且它有一些好处:

  • Lua表语法具有很好的可读性,即使它有一些古怪之处。
  • 每样东西都有一个“解析器”(实际上比解析器稍微多一点,奇妙的LuaBind)。这实际上是一件好事:代码库更小,需要维护的东西更少。
  • 您可以获得“可编程数据”:在数据文件中添加一个小例程很容易,例如生成事物列表或参数化某些部件。我很确定这听起来很可怕,但实际上它对快速原型是非常有用的。只需明智地使用它,并重构掉那些变得太脏的部分。

...or使用像XML或YAML这样的专用标记格式更好吗?

这是你的事,没有最好的选择。

当然,作为脚本的数据方法也有一些缺点,扎克人类在他的回答中提到了其中的一些。我想补充的是,在采用这种方式之前,工具支持是非常重要的。有一些很好的工具可以编辑常规数据格式(XML、JSON),但是如果您计划使用脚本语言,您可能不得不使用自己的工具。

像往常一样,最后的选择是你的,只要走的方式,似乎适合你的项目最好。

票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/44965

复制
相关文章
在.NET中调用存储过程
因为做项目要用到数据库,因此存储过程是必不可少的,看了一点如何在.NET中调用存储过程的资料,颇有点心得,觉得这个东西是当用到数据库的时候必须要会的一项技术。下面是它的定义:
SAP梦心
2022/05/07
2.2K0
大数据还是人工智能?哪个发展更好
大数据和人工智能,都是当下的技术热点,受到的关注都不少,并且这两个技术领域,本身也存在很强的关联性,因此很多人也会把这两者拿来做对比,从技术难度到未来前景,大家都非常关注。大数据还是人工智能?哪个未来发展更好?今天我们来具体聊一聊。
成都加米谷大数据
2020/10/30
6500
大数据还是人工智能?哪个发展更好
verilog调用vhdl模块_verilog和vhdl哪个更好
以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。 1、新建project 2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;
全栈程序员站长
2022/11/08
2.2K0
verilog调用vhdl模块_verilog和vhdl哪个更好
哪个定时任务库更好用? Schedule,APScheduler,还是 Celery?
在挑选最佳的定时任务库时,我们也面临权衡取舍,取决于我们特定的需求。需要考虑的一些因素包括
somenzz
2023/10/25
8240
哪个定时任务库更好用? Schedule,APScheduler,还是 Celery?
前端开发写代码哪个软件更好用?
群里的朋友,经常问到web前端开发写代码用那个软件好?今天在这里统一回答下,主流的web前端开发写代码的软件有这些Webstorm、Vscode、Sublime Text、HBuilder、Dreamweaver、notepad++、editplus等,做前端这么多年了,下面谈下我的使用感受吧。
全栈程序员站长
2022/09/02
3.3K0
前端开发写代码哪个软件更好用?
函数在栈中的调用过程
栈是一种线性存储的数据结构,向下增长。其存在栈底和栈顶,栈对其中的数据元素有进栈和出栈的操作,遵循‘First In last Out’即FILO原则。
Elapse
2020/08/17
3.9K0
独家 | 哪个更好:一个通用模型还是多个专用模型?
作者:Samuele Mazzanti翻译:欧阳锦校对:赵茹萱 本文约3900字,建议阅读10分钟本文通过实验验证了一个通用模型优于多个专用模型的有效性的结论。 比较专门针对不同群体训练多个 ML 模型与为所有数据训练一个独特模型的有效性。 图源作者 我最近听到一家公司宣称:“我们在生产中有60个流失模型。”(注:流失模型是一种通过数学来建模流失对业务的影响。)我问他们为什么这么多。他们回答说,他们拥有 5 个品牌,在 12 个国家/地区运营,并且由于他们想为每个品牌和国家/地区的组合开发一种模型,因
数据派THU
2023/03/29
1.3K0
独家 | 哪个更好:一个通用模型还是多个专用模型?
Java和Python哪个更好?
大家好,又见面了,我是你们的朋友全栈君。 一些开发人员声称Python比Java更有效率。但这应该先弄清Python和Java之间的区别是什么? Java和Python的区别 Java是一种严格的类型
全栈程序员站长
2022/09/08
4170
LAMP和LNMP哪个更好
对于配置服务器的网站环境,很多人不知道是装apache好,还是装nginx好。下面给大家详细介绍LNMP和LAMP的优缺点,供大家在配置服务器的web环境的时候做参考。
风吹屁屁凉
2021/07/14
1.8K0
mybatis中调用存储过程_java如何调用存储过程
CREATE PROCEDURE insert_user(OUT u_id INTEGER,IN u_name VARCHAR(20),IN u_sex VARCHAR(20),IN u_age INTEGER) BEGIN INSERT INTO t_user (name,sex,age) VALUES (u_name,u_sex,u_age); SET u_id=LAST_INSERT_ID(); END
全栈程序员站长
2022/08/03
4.1K0
mybatis中调用存储过程_java如何调用存储过程
UML工具到底哪个更好用
经典如Enterprise Architect 美丽如MagicDraw UML 免费如StarUML
全栈程序员站长
2022/09/13
3.5K0
在 Gitlab CI 中调用 Sonarqube 进行代码扫描
Gitlab 提供了基于 Code Climate 的代码质量评估功能,这一功能是通过 dind(Docker in Docker)方式运行的,在 Kubernetes 环境中、尤其是托管集群中,这种方式不太合适,还好还有一个替代方案:Sonarqube,通过在 .gitlab-ci.yml 中的设置,可以使用 Sonarqube 对代码进行扫描,接收到 Commit 之后,Sonarqube 会生成针对提交的代码质量提示,如图所示:
崔秀龙
2019/07/22
8.1K0
在 Gitlab CI 中调用 Sonarqube 进行代码扫描
在线文档编辑工具哪个更好?
在线文档编辑工具相当于一个轻量级、跨平台、多途径的Office。使用在线文档编辑工具,首先我们不用安装Office软件;其次在电脑网页上、手机小程序里我们都可以使用在线文档进行简单的编辑;最后我们编辑的文档可以实时更新、分享、协作等。今天呢给大家分享几个常用的在线文档编辑工具。
用户10264843
2023/05/08
2.3K0
java与python那个更好_java和python哪个更好用?
互联网上的许多文章都举例论证了Python和Java之间的比较。但是没有人给出“ java和python哪个更好用?”的明确理由。我们都知道,如今Python正在与几乎每种编程语言竞争。
全栈程序员站长
2022/09/08
5910
Java与Python哪个更好?「建议收藏」
一些开发人员声称Python比Java更有生产力。但更应先说明的是:Python和Java有什么区别?
全栈程序员站长
2022/09/08
4160
Java与Python哪个更好?「建议收藏」
java python哪个好_java和python哪个更好用?(一)[通俗易懂]
Java是世界上最古老,功能最强大的编程语言之一。它是一种通用的静态类型的语言。这意味着任何人都可以使用它。使用此编程语言没有特定的目的。
全栈程序员站长
2022/09/08
6.7K0
c语言与java哪个更好_c语言和java哪个好?[通俗易懂]
看到这个问题,一定要参与一下,这两个语言我都太熟悉了,也用了很长时间。关于程序设计语言,有这么两句话:C语言,神一样的语言。java语言是一个神话。所以说这是两个神级语言,到底哪个好?下面咱们逐个分析一下:1。C语言,C语言是计算机程序设计语言史上具有划时代意义的语言,到今天为止也依然是主力语言。
全栈程序员站长
2022/09/08
5.2K0
@Transactional注解在类上还是接口上使用,哪种方式更好?
Spring @Transactional想必大家都很熟悉,那它是在类上或实现类的方法上和在接口上或接口方法上哪种使用方式是更好的选择呢?
索码理
2022/09/20
1.4K0
点击加载更多

相似问题

不包括周末的日期之间的小时数

12

获取不包括周末的小时数

12

如何在postgres中将间隔时数添加到时间戳中,不包括周末时间

12

计算两个日期之间的小时数-不包括周末

10

日期差异,不包括周末

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文