Kotlin для игры dev

Задний план:

Я всегда ищу язык для замены Java для разработки игр. Kotlin выглядит многообещающим с хорошей поддержкой IDE и взаимодействием Java. Но одним из убийц FPS для игры (особенно для Android) является использование GC. Таким образом, некоторые библиотеки (например, libgdx) используют пулы объектов, пользовательские коллекции и другие трюки, чтобы избежать частых запусков GC. Для Java это можно сделать ясным способом. Некоторые другие языки JVM поддерживаются с функциональной поддержкой с использованием большого количества GC по своей природе, поэтому этого трудно избежать.

Вопросов:

  1. Создает ли Kotlin какие-либо невидимые накладные расходы GC по сравнению с Java?
  2. Какие функции Котлина лучше избегать, чтобы иметь меньше работы GC?

Solutions Collecting From Web of "Kotlin для игры dev"

Как правило, Kotlin генерирует байт-код как можно ближе к тому, который генерируется Java. Например, если вы используете функцию как значение, будет создан внутренний класс, как в Java, но не более того. Есть также некоторые оптимизационные трюки, такие как IntArray и inline чтобы работать еще лучше.

И, как сказал Питер-Лоури, всегда лучше измерить значения для вашего конкретного случая.

Технически ваши вопросы, сравнивающие Kotlin с Java, спорны, они будут выполнять то же самое. Но Котлин будет лучшим опытом развития.

Если Java хорош для написания игр, то Kotlin будет только лучше благодаря производительности разработчиков.

Примечание. Игровая библиотека LWJGL 3 частично использует Kotlin, а статистика GitHub показывает, что 67,3% кода Kotlin (модуль шаблона выглядит в основном Kotlin). Поэтому просить людей, которые работают с LWJGL, даст вам лучший ответ на этот вопрос, поскольку у них есть большой опыт в этой области.

Статистика Github для LWJGL3