肯定是脚本语言,可以是Lua/Python/JS。如果要用C#/Java其实也可以。最糟糕就是用C/C++。
原因是:游戏策划天天在改需求!如果我写的每个函数,都要去考虑到底参数是指针,还是值,又或者这块内存到底应该什么时候回收,哪有时间去应付那些天天改的需求!另外,那些需要编译的语言,往往不适合热更新,也就是说,你不可以简单的通过下载一个文件来更新玩家已经安装的程序,你不可以在不停服务器的情况下修一些BUG。最后,那些编译型的语言没有反射,你精心设计的名字(类名、函数名)无法自动的和各种游戏所需的资源绑定起来,要知道,游戏这个业务,最重要的就是代码去控制各种「资源」,比如动画、音乐、场景、配置等等,所以你要维护一大堆各种配置文件,用来描述代码中的常量和外部数据的关系,既啰嗦又容易出错。最后,就算你不喜欢面向对象,游戏也是非常适合面向对象建模的领域,或者说,你必须要建模,那么就应该用建模最容易的语言,否则那些互相类似、又稍有差别的业务逻辑,会让你写上大堆大堆的「疑似重复」的代码。另外,Lua和Python这类脚本,因为比较简洁,还能直接用来存储游戏数据,代替配置文件,而且脚本语言的表达能力比XML/INI这些格式要强大的多。所以说应该用脚本语言来写游戏,没有其他的悬念。