生成代码与文件格式
Generating code vs file format
所以我和我的朋友有一个我们无法解决的争论。他正在编写一个通用的网页游戏库和一个地图编辑器。地图编辑器将地图保存为 XML,但地图编辑器也可以加载一个 Lua 脚本,将地图的详细信息导出到 Javascript 文件中,如下所示(他不想发布代码,所以这只是一个名称更改的片段(:
// This probably isn't valid code, but this is the idea of the code generator
(function() {
Game.Level1 = function (state) {
GameEngine.Group.call(this);
var Object0 = new Game.Lo(new GameEngine.Point(654 , 975.13), 15, state);
var slot123 = new GameEngine.TimeSlot(123); //Start
slot123.addEvent(new GameEngine.Event(Object0, "x", "current", 15, 200));
...
这个想法是游戏库将只运行此代码,而不必解析地图文件并动态生成对象。地图编辑器中生成代码的Lua脚本可以被任何想要为不同库以不同语言输出代码的人修改。(不限于脚本语言(。
我从未听说过这个想法,通常我希望地图数据采用标准格式,如 JSON 或 XML,并让游戏库解析它。
因此,鉴于他的库是用javascript编写的,并且他的map可以生成javascript来加载文件,那么运行生成的代码与解析JSON/XML并从中生成对象之间有什么权衡?
在一般意义上,从另一个脚本加载元数据,可以为脚本生成器提供关于如何发送、显示数据等的灵活性。例如,您可以将完整的数学表达式、条件等作为加载脚本的一部分,这些脚本将由脚本解析器(解释器(无缝解析和加载。使用XML或JSON做同样的事情可能更难(想象一下,通过XML发送一个表达式来执行米勒圆柱投影,在动态中(。
我见过很多应用程序创建自己的脚本语言(MAXscript,Maya的MEL(以为用户提供灵活性的情况。这些可能与您朋友使用 Java 脚本加载元数据的情况不同。但恕我直言,它是一个连续的频谱,从元数据文本文件开始,到 XML、JSON、表达式解析,再到成熟的脚本解析。
另一方面,发送复杂的脚本将意味着暴露部分代码库。此外,每个人都知道XML的作用,您可以期望非程序员使用/修改XML文件。他们这样做很舒服。他们甚至可能不舒服地阅读他们认为的"程序"或"脚本"。 我在我的公司亲眼目睹了这一点,艺术家们不安地修改Lua文件。如果它是一个简单的文本文件,他们很乐意修改相同的信息。可能也有一些安全问题,但我真的不太熟悉它,所以我不能评论。
- 文件上传:检查文件格式,然后调用srvlet
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- 还通过jQuery更改替代HTML5视频文件/格式源
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- 显示不受支持的文件格式的<视频>回退消息
- 如何在使用环回组件存储将文件上传到容器中之前检查文件格式
- 生成代码与文件格式
- 本地 HTML 文件格式通过 Ajax 提交到外部 URL
- <输入类型=“文件” />如果安装了 WINRAR,文件格式验证不起作用
- 在引导程序文件格式中,如何使用完整路径
- 谷歌浏览器开发人员工具 - 分析结果文件格式
- 打印存储为BLOB的不同文件格式的最优雅方式
- 为什么合并的 JavaScript 临时文件格式不正确
- 如何从浏览器将UInt8Array缓冲区写入媒体文件格式
- Mongodb查询使用javascript文件格式的日期时间
- 检查文件格式是否与Python、Javascript中的文件扩展名不同
- 如何在javascript中获得HTML文件格式的字符串
- 导出前如何设置文件格式为excel
- 在JavaScript变量中获取不同的图像文件格式
- 限制用户只能上传指定的文件格式