Kotlin为游戏开发

背景:

我一直在寻找一种语言来取代Java来进行游戏开发。 Kotlin看起来很有希望,拥有良好的IDE支持和Java互操作性。 但是一个游戏的FPS杀手(特别是在Android上)是GC的使用。 所以,一些库(如libgdx)正在使用对象池,自定义集合和其他技巧来避免GC频繁运行。 对于可以以清晰的方式完成的Java。 一些其他的JVM语言,特别是在功能上支持使用大量的GC,因此很难避免。

问题:

  1. 与Java相比,Kotlin是否创造了任何看不见的GC开销?
  2. Kotlin的哪些功能更好地避免GC工作量减少?

根据经验,Kotlin生成的字节码尽可能接近Java生成的字节码。 所以,例如,如果你使用一个函数作为一个值,一个内部类将被创建,就像在Java中一样,但是没有更多。 还有一些优化技巧,如IntArrayinline执行更好。

正如@Peter-Lawrey所说,衡量你的具体情况的价值总是一个更好的主意。

从技术上讲,将Kotlin和Java比较的问题是没有实际意义的,他们也会执行相同的操作。 但Kotlin将是一个更好的开发经验。

如果Java对编写游戏有好处,那么Kotlin只会因为开发人员的工作效率而更好。

注意:游戏库LWJGL 3部分使用Kotlin,GitHub统计显示67.3%的代码是Kotlin(模板模块看起来主要是Kotlin)。 所以,问问在LWJGL工作的人会给你这个问题的最好的答案,因为他们在这方面有很多的经验。

Github语言统计为LWJGL3