Всем привет, я автор проекта HighCity (
http://highcity.sourceforge.net/ , но там все в зачаточном состоянии, только схемы ). Проект разрабатывается на C++, с использованием кросс-платформенного масштабируемого движка AmberSkyNet (
[ AmberSkyNet VR ], регулярно обновляются исходники в SVN, который тоже я пишу, довольно медленный и с не очень хорошей архитектурой, возникает желание забить и сделать по-быстрому виртуального клиента на VElib, скажем
Идея 3d-мира приходила в голову и мне.. Я вдохновлялся немецкой программой Roomancer ( единый мета-сервер, куча пользовательских локаций.. весь контент хранится на локальных компах у участников.. можно "заходить в гости" на удаленный комп и принимать гостей у себя.. )
Одна из идей проекта HighCity - разделить сервер логики и граф. сервер по двум разным серверам.. Соответственно к одному и тому же серверу логики можно "подцепить" несколько "визуализаторов" - 3d, 2d, текстовые, адаптированные для КПК, мобильные, итп.. Таким образом куча пользователей может находиться в одном и том же мире, сидя на разных устройствах...
Cервер логики проверяет - может ли обьект Х cовершить операцию У над обьектом Z, и если может, то проводит ее...
Сервер графики - по полученному от сервера логики XML-файлу логики делает визуализацию системы и передаёт дальше XML-файл с описанием изменений в 3d-мире...
Сервер графики еще может быть полезен тем, что служит как бы "шляпкой" для сервера логики, и если его взломают, то сервер логики останется невредимым..
--
Еще одна идея 3d-мира - адаптация других интерфейсов в единую VR-среду Например - модуль IRC-клиента, через который сервер логики общается с обычным IRC-сервером и передает полученные от него в VR-среду, которая в зависимости от пользовательских настроек трансформирует полученные сообщения, например, в падающие сверху на "рабочий стол" конверты, при клике на которых эти сообщения будут прочитаны, и при желании на них можно будет ответить..
К сожалению, это все пока лирика, но пока не начата разработка сетевого протокола, может быть как-то можно согласовать его и выработать единый..
Я в своем проекте думаю использовать обмен XML-файлами.. (как вариант - переключение на "бинарный" протокол, где каждый унифицированый тег закодирован своим числом, но на этапе устаканивания протокола самое то - открытый XML).
К чему это я? Может быть какие-то идеи вам понравятся (их можно смело воровать :), может быть получится сделать единый XML-протокол для 3dWeb на основе наших проектов...