您希望在游戏编程DSL中看到哪些功能?

时间:2009-11-23 15:41:51

标签: programming-languages language-design dsl

我和我的朋友正处于为论文创建专为游戏编程而设计的特定领域语言的第一阶段。

语言相当低级,它将具有类似C语法,可选的垃圾收集,并且将面向具有很少内存或处理能力的系统(即Nintendo DS),但应该足够强大方便PC开发 它不是脚本语言,而是编译语言,但由于我们不想花费数月时间编写普通编译器,因此第一个实现基本上是一个LanguageName-to-C转换器,以TCC或GCC作为结束编译器。

现在,我对你们所有的游戏程序员都有一个问题:

您希望用这种语言看到什么?哪些功能,实现和语法方面最适合它?要避免什么?

编辑:

我们已经想到的一些事情:

  • 基于状态的对象 - 对象可以存在于其中一个状态(或子状态)
  • 事件和功能 - 不必存在要调用的事件,并且可以冒泡
  • 有限的动态分配和指针支持 - 我们希望它尽可能安全
  • 支持对象合成(Hero由(动态)Actor,Hurtable,Steerable等组成。)
  • 状态中的
  • “resources”,在状态的开始/结束时自动加载和卸载(例如,OpenGL纹理对象是资源)
  • 本地化和序列化的基本支持
  • 可快速解析的语法
  • 我们希望使语言尽可能一致:一切都作为值传递,每个声明都有可预测的语法(例如function retType name(type arg) is (qualifier, list) { };没有conststatic,{{1除限定符列表之外的任何地方的限定符)等等。

4 个答案:

答案 0 :(得分:4)

使并发编程更容易的东西。也许是Erlang和C ++的混合体。自Cell Cell处理器发布以来,我一直在思考这个问题,但是需要花费大量的研发时间来开发它并解决传统C ++程序中已经有解决方案的许多问题。

答案 1 :(得分:3)

就个人而言,我喜欢编写能够访问广泛的网络受众的游戏。使桌面和网络之间的界面变得简单是非常有趣的。

这可能更多是使用语言构建的应用程序领域而不是语言本身,我想,但也许在设计阶段要记住这些内容。

答案 2 :(得分:2)

你可能会比读这篇文章更糟糕:The Next Mainstream Programming Languages: A Game Developer's Perspective(PDF)。

答案 3 :(得分:2)

所以,我不想真正破坏你的泡沫,但......也许我应该这样做?作为一名专业的游戏开发者,我不得不说游戏开发确实需要三种“语言”。

首先,有你的引擎级语言。这通常是C ++。这完全取决于性能。游戏玩法的文物并不意味着在这里实现(遗憾的是,它们经常是这样)。

接下来是游戏语言。这是轻量级的,易于理解,专为快速迭代而设计。

最后,还有某种可视化脚本语言。这是最轻的,面向非程序员(关卡设计师等)。

话虽如此:

绝对查看UnrealScript。它在整个行业中使用(因为虚幻引擎是FPS游戏开发的基石)。

我强烈建议支持:

  • 并发编程(查看CCP使用Stackless Python为Eve Online做什么)
  • 网络复制(查看UnrealScript,您可以标记要在服务器或客户端上运行的功能,或者在客户端上安全运行等)。
  • 国家(如上所述)会很棒。 UnrealScript有这个功能。这需要安全地完成(即,在任何点进入和退出,优雅地处理复杂的过渡等)。
祝你好运!