Согласно вашему первому требованию, вы ищете структуру, а не библиотеку.
jMonkeyEngine - это фреймворк для 3D-игр (т.е. он предоставляет основной цикл, как вы просите, аналогично XNA), но он не будет хорошим выбором для 2D-игр.
Однако написать игровой цикл не сложно , и существующие библиотеки Java отвечают вашим 2-м и 3-м требованиям, поэтому я настоятельно рекомендую изучить 3D-библиотеку / движок графа сцены или любую 2D-библиотеку, в зависимости от того, делаете ли вы 2D или 3D игра.
Aviatrix3D , Ardor3D , Java3D и jMonkeyEngine мои рекомендации для графа сцены 3D движков.
Для 2D-библиотек у вас есть JGame , или вы можете использовать OpenGL для максимальной скорости и использовать LWJGL или JOGL . Вы также можете просто использовать встроенную библиотеку Java Graphics2D , которая будет особенно полезна, если вы планируете развертывать свою игру в виде апплета.
Для перехода на встроенный Graphics2D маршрут, посмотреть на исходный код на Metagun (нажмите , чтобы играть в апплет форме). Это небольшая, но очень хорошо написанная 2D Java-игра, и я думаю, что это отличный пример маленькой игры; скопируйте его структуру, и вы получите свой оптимальный игровой цикл / каркас.