游戏脚本需要哪些语言功能?

时间:2009-03-12 13:09:00

标签: scripting language-features language-design

我正在研究设计一种游戏脚本语言,并且想知道游戏行业中的人们认为什么是好的游戏脚本语言的基本项目/属性。这包括:

  • 静态与动态类型
  • 应该针对的是: 程序员还是设计师?
  • 语法(看起来像C吗?)
  • 它应该有多高? (例如C vs Lisp - 或命令与功能)
  • 它必须做什么。多快 它需要是吗?

另外,我从一些消息来源获悉,脚本往往非常简单,因为它们是由设计师而不是程序员编写的。是这种情况吗?

4 个答案:

答案 0 :(得分:7)

如何在PythonLua等游戏中查找实际用于编写脚本的语言?

两者都碰巧是动态类型的,而且就语法而言,Python非常不像C一样,而Lua与C语言并不十分相似。

将它们用于游戏脚本的原因可能是将语言作为脚本引擎嵌入的简易性,如果有的话。如果要考虑设计师的语言,那么可能必须改变语言的要求以满足设计师的需求,而不是使用更容易集成到游戏中的语言。

答案 1 :(得分:3)

您似乎在问一个非常普遍的问题(如果您不知道脚本语言必须做什么,或者需要多快)并期待具体的答案。

脚本语言的主要原因是允许人们在不破解源代码的情况下更改游戏。我们一起去吧。

因此,它应该更多地针对设计人员,因为他们不会破解源代码,程序员也会。它需要足够快才能正常运行游戏。它需要足够强大,以便设计师能够放入他们将要放入的任何内容。(是的,这些是模糊的答案,但是你没有提供足够的信息来更具体。)

因此,忘记主要用于程序员的功能,例如任何特定的语法模型或静态类型。设计人员对C语法不感兴趣,也不想担心静态类型或内存管理。

使用已经建立的语言有一些真正的好处。设计师可能对它有一些经验,它已经有文档记录,并且已经为你完成了许多艰难的工作。这包括语言设计:程序员不一定善于看到脚本语言的优点。

这表明像Lua或Python。

答案 2 :(得分:1)

我理想的游戏脚本语言具有类似Python的语法,可以像LUA一样轻松地嵌入到其他语言中。
此外,它应该能够嵌入XNA中,这当前(并且可能永远)缺少LuaInterface和嵌入式IronPython所依赖的反射功能。

答案 3 :(得分:1)

这部分取决于哪个部门将执行大部分脚本编写。例如,如果关卡设计师正在编写大部分脚本,那么最好的语言类型将更接近自然语言,而不需要陡峭的学习曲线。关卡设计师不一定要学习复杂的语法,比如C / C ++,只是为了播放声音。

伪语言可能如下所示(TES Construction Set脚本就像这样):

script MagicCaveDoorScript
    on UseAction
        if HasItem magicDoorKey
            PlaySound2D magicDoorOpen
            ChangeArea magicCave01
        else
            Message "You need the magic door key to enter..."
        end
    end
end

但是如果程序员是那些编写大量脚本的人,那么使用像Lua或Squirrel这样的更复杂的语言可能更灵活,更强大,可以使用类,对象等。

创建“更简单”的脚本语言的一个好处是,实现并不像更难的语言那么复杂,并且允许您轻松开发通过GUI创建脚本的工具,例如从列表中选择要播放的声音,要附加的怪物列表等等。