Итак, вы хотите научиться программированию игр. У вас есть много вариантов, но я не вижу большого плана в вашем вопросе или комментариях, и я не совсем уверен, каковы ваши точные цели. Единственное, что я получаю, это то, что вы хотите работать с трехмерной графикой.
Дело в том, что вы спрашиваете о производительности, не сталкиваясь с проблемами производительности. Ваш вопрос кажется преждевременным.
Ради выбора начните сборку с JMonkeyEngine . Кажется, это довольно продвинутый 3D-движок в Java. Начиная с движка, вы можете больше сконцентрироваться на дизайне игры, вместо того, чтобы настраивать все самостоятельно.
Потратьте время, чтобы завершить игру, со всеми последними штрихами, такими как меню, параметры игрока, все, что завершает игру. Готовые проекты научат вас многому в игровом дизайне и хорошо смотрятся в вашем портфолио.
Повторите этот процесс с проектами несколько более высокой сложности, снова и снова. В зависимости от того, насколько быстро вы повысите сложность и насколько хорошо построен двигатель, вы в конечном итоге достигнете проекта, в котором двигатель не будет соответствовать вашим ожиданиям. Отсюда вы можете воспользоваться преимуществами движка с открытым исходным кодом и точно определить, как движок обрабатывает ваш дизайн.
С этого момента ваш путь обучения переключается. Вместо того, чтобы изучать общее программирование игр (в котором к этому моменту у вас должен быть достаточный опыт), вы начинаете углубляться во взаимодействие с оборудованием и низкоуровневую оптимизацию.
Все это предполагает, что вы только начинаете изучать игровой дизайн и игровое программирование, но у вас достаточно опыта на выбранном вами языке.