Если вы просто заинтересованы в экспериментах, я бы предложил выбрать 3D-фреймворк с привязками для динамического языка, с которым вы уже знакомы.
Я начал проводить эксперименты с Ruby / OpenGL год или три назад, и с этим было достаточно легко поиграться.
Если вы серьезно хотите построить проект (по какой-либо причине), я бы предложил выбрать фреймворк на основе комбинации
- Родной язык, на котором он реализован (или во время исполнения)
- Динамические языковые привязки, доступные для двигателя или времени выполнения
- Лицензия на фреймворк
Если вы хотите, чтобы ваш проект довольно легко выполнялся в разных ОС, вы, вероятно, захотите выбрать каркас, написанный на Java (потому что JVM работает везде) с привязками в Ruby (jRuby) или JavaScript (потому что они языки там хорошо поддерживаются). Это, однако, ограничит доступные вам рамки. (Это мое смещение OSS + Linux).
В Википедии есть список игровых движков . Основываясь на нескольких критериях, я начал проект с jMonkeyEngine (v2) и обнаружил, что работать с Rhino (реализация JVM JavaScript) и управлять им легко.
Недавно я видел презентацию из другого Java-фреймворка с привязками для нескольких языков, которая выглядела действительно круто (вдохновлено движком Ogre), но я забыл имя и не могу найти его в списке.
В то время, когда я делал C #, я смотрел на проекты / фреймворки, ориентированные как на dotNet, так и Mono, для работы на разных платформах, но было слишком сложно запускать сборки разработки (Tao?) И привязки Mono Lua. Может быть, все изменилось.
Чтобы подвести итог, выберите каркас, который может работать в среде (ах), которую вы хотите, с привязками для динамического языка, который вы хотите использовать. Даже если код библиотеки фреймворка, доступный для динамического языка, который вы хотите использовать, достаточно минимален, вы можете легко его расширить, если сможете работать с базовым языком. Если вы свободно владеете C ++, Java и C # не должны быть слишком сложными.