SoulKeeper> Мир клином на Огре не сошелся
Скажем так, у нас вырисовывается несколько слоёв.
1. Слой-протокол для распределённого обмена объектами (закачка с серверов разных миров геодаты, объектов, текстур, скриптов, музыки и т.д.) - с одной стороны, это будет основной скелет системы, с другой - не будет проблем менять его и настраивать. Что интересно, пригодится он не только для OpenWorlds (об этом ниже).
2. Слой - отрисовка полученных данных. К сожалению, тут надо очень тщательно продумать всё с самого начала. Если мы заложим передачу объектов для Ogre, то не сможем использовать Irrlicht. Заложим Irrlicht - не сможем использовать что-то ещё... Это главный затык на сегодня. Кроме того - у меня ещё с ним личная трудность. С 3D не работал... И не менее важная трудность - Что ogre4j, что jirr сегодня крайне сырые и почти неработоспособные, python-ogre ненамного лучше, а pyrr, кажется, вообще умер. Реально начанать прямо сейчас хоть что-то можно только с python-ogre, но у python постоянно натыкаешься на массу трудностей, которые будут отсутствовать в JAVA-варианте. В общем - думать и думать перед тем, как проборвать...
3. Программный слой для всего этого безобразия. Вырисовывается, кстати, гибкая плагинная репозиторная система, с которой можно будет делать очень модульный софт с контролем версий. Отчасти это решит проблему выбора 3D-движка для 2-го пункта. Можно будет реализовывать для разных миров разные 3D-движки. Нужные программные модули будут подгружаться наравне с прочими элементами мира.
Пункты 1 и 3, кстати, могут оказаться очень интересным решением и без привязки в OpenWorlds. Неплохо иметь гибко и автоматически расширяющиеся по мере надобности системы. Но тут постоянно утыкаешься в то, что нормальный базис подо всё это есть сегодня только в JVM. Это и возможность изолированного (безопасного) исполнения апплетов, и возможность передачи бинарных программ без исходников (для тех, кто не захочет отдавать свои сорцы), и удобные механизмы JAR'ов, просто богатый выбор языков и библиотек, наконец...