生成代码与文件格式
2013-10-6 18:12:51
收藏:0
阅读:75
评论:1
所以我和我的朋友有一个无法解决的争论。他正在编写一个通用的网络游戏库和地图编辑器。地图编辑器以XML格式保存地图,但是该地图编辑器也可以加载一个导出地图详细信息到类似下面的Javascript文件的Lua脚本(他不想发布代码,所以这只是一个具有更改名称的摘录):
// 这可能不是有效的代码,但这是代码生成器的想法
(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编写的,并且他的地图可以生成用于加载文件的JavaScript代码,运行生成的代码与解析JSON/XML并从中生成对象之间的权衡是什么?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
在通用意义上,从另一个脚本加载元数据可以为脚本生成器提供更多灵活性,例如,您可以将完整的数学表达式、条件语句等作为已加载脚本的部分,由脚本解析器进行无缝解析和加载。使用XML或JSON做同样的事情可能会更难(想象一下通过XML在运行时发送一个Miller圆柱形投影表达式)。
我见过很多情况下应用程序创建自己的脚本语言(MAXscript、MEL等),以提供更大的灵活性给用户。这可能与您朋友使用JavaScript加载元数据不相同。但在我看来,它是一个连续的谱系,从元数据文本文件,到XML、JSON、表达式解析,到完整的脚本解析。
另一方面,发送复杂的脚本将意味着公开部分您的代码库。而且,每个人都知道XML的用途,您可以期望一个非程序员使用/修改XML文件。他们对此很舒适。如果他们认为是“程序”或“脚本”,他们甚至不太舒适阅读它。我在公司亲身看到过这种情况,艺术家们不愿意修改Lua文件,但对于同样的信息,如果是一个简单的文本文件,他们就可以轻松修改。也可能存在一些安全问题,但我确实不太熟悉,所以无法评论。