所以我和我的朋友发生了一个我们无法解决的争论。他正在编写一个通用的网络游戏库和一个地图编辑器。地图编辑器将地图保存为 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 编写的,并且他的地图可以生成 javascript 来加载文件,那么运行生成的代码与解析 JSON/XML 并从中生成对象之间的权衡是什么?