Я использую следующий подход:
public final class Constants {
public final class File {
public static final int MIN_ROWS = 1;
public static final int MAX_ROWS = 1000;
private File() {}
}
public final class DB {
public static final String name = "oups";
public final class Connection {
public static final String URL = "jdbc:tra-ta-ta";
public static final String USER = "testUser";
public static final String PASSWORD = "testPassword";
private Connection() {}
}
private DB() {}
}
private Constants() {}
}
Чем, например, я использую Constants.DB.Connection.URL
для получения константы. Это выглядит более «объектно-ориентированным», как для меня.
Все игровые движки Java легко доступны благодаря простой интеграции с Java. Их несколько (никак не отсортированные):
Хорошей презентацией о том, как начать кодировать игру на Java, является Напишите трехмерную игру на языке программирования Java менее чем за 50 минут , которая также применима.
Поскольку Scala имеет прекрасную интеграцию с Java , ointerop должен быть простым. Как указал mcherm, для lwjgl это уже было сделано . Чтобы создать приятное ощущение Scala, вы можете добавить несколько неявных преобразований .
Хотя, вероятно, это не полноценный игровой движок. (Я не знаю, что никогда не писал больших игр).
Здесь - это пример того, как кто-то использует такую библиотеку, как LWJGL, из Scala. Это похоже на ваш лучший план - интегрироваться с хорошей библиотекой Java. Интеграция между Scala и Java довольно сильна: чтобы использовать такую библиотеку, вам необходимо интегрироваться «в обоих направлениях»: вызывать Java-код из вашего Scala (чтобы делать такие вещи, как рисование на экране), а также реализовывать интерфейсы Java из вашего Код Scala (для выполнения таких действий, как реагирование на события). К счастью, Scala позволяет легко сделать и то, и другое.
Вот такой двигатель в разработке. Прямо сейчас я создаю прочную основу с простой в использовании математической библиотекой, которую можно оптимизировать с помощью плагина компилятора. Математическая часть завершена, включая все векторы, матрицы, кватернионы, повороты и проекции для настройки камеры, и готова к подключению в opengl практически сразу после установки. Простой рендерер будет реализован в ближайшей функции. Плагин компилятора требует времени.
Ссылка: Simplex3d
В настоящее время я работаю над трехмерным движком на Scala: http://www.sgine.org
Ему еще предстоит пройти долгий путь, прежде чем он станет конкурентом основных Java-движков, но наблюдается значительный прогресс, и всегда приветствуется дополнительная помощь. :)