【发布时间】:2013-10-12 22:46:01
【问题描述】:
所以我和我的朋友发生了一个我们无法解决的争论。他正在编写一个通用的网络游戏库和一个地图编辑器。地图编辑器将地图保存为 XML,但地图编辑器也可以加载一个 Lua 脚本,将地图的详细信息导出到一个 Javascript 文件中,看起来像这样(他不想发布代码,所以这只是一个sn-p 更改名称):
// 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 编写的,并且他的地图可以生成 javascript 来加载文件,那么运行生成的代码与解析 JSON/XML 并从中生成对象之间的权衡是什么?
【问题讨论】:
-
这里有很多问题。这不适合 SO 设计的问答格式。将问题分解为更集中的项目并再次提问。见help center
-
@MikeW 编辑了我绝对需要知道的问题。
-
这真的是一个基于意见的问题吗?我不知道代码生成是加载数据的有效策略。
-
可能不是主题可以产生基于意见的答案,而是您提出问题的形式(似乎您希望我们与您或您的朋友站在一边)。可能如果您将问题放在更“工程权衡风格”中,它可能是可以挽救的。例如。 “鉴于……等等,等等……这种方法和这种方法之间的权衡是什么……等等。”
-
@LorenzoDonati 这是更好的形式吗?
标签: javascript xml lua code-generation game-engine