воскресенье
15:49
Deeptown Night
Ru Gb

ЧаВо: Технические ньюансы

Какой движок будет использован в Диптауне?
На данный момент графический используется OGRE, физический – ODE. В дальнейшем планируется создание собственных движков.


Какова архитектура серверной части Диптауна?
Существует несколько типов серверов. ''Сервера обсчета ландшафта'' выполняют физические рассчеты; каждый отвечает за свой участок пространства. ''Брокерные сервера'' динамически перераспределяют нагрузку между серверами обсчета ландшафта оптимальным образом. ''Сервера доступа'' являются связующими элементами между серверами обсчета ландшафта и пользователем: они оптимизируют трафик для каждого пользователя в зависимости от типа соединения, а также защищают сеть Диптауна от злоумышленников. ''Дополнительные (extra) сервера'' выполняют целый ряд различных функций: сбор статистики, управление глобальными идентификаторами и т.д.


Из скольких программных частей состоит сервер Диптауна?
Смотря о каком сервере речь. Обычно любая рабочая станция Диптауна состоит из ядра, нескольких вспомогательных модулей и модуля, ответственного за данный тип сервера.


Как эти части взаимодействуют между собой?
Каждый модуль представляет собой динамически загружаемую библиотеку. Ядро Диптауна предоставляет три различных механизма взаимодействия модулей: фабрика классов, обмен сообщениями и оповещение модулей о происходящих в ядре событиях.


Едино ли ядро для клиентской и серверной частей, или же это разные ядра?
Да, едино.


Что может потребоваться для взаимодействия внешних программ с сервером Диптауна (библиотека, программа-посредник)?
Минимальный набор - это только ядро диптауна и знание протокола. Можно, конечно, реализовать вспомогательные библиотеки, облегчающие это для конкретных задач (например, библиотека для написания ботов).


Какие возможности внешним и внутренним программам предоставит ядро Диптауна?
Ядро предоставляет следующие возможности: доступ к базам данных пользователей и объектов; сетевой движок; фабрика классов; механизм абстракции потоков данных; виртуальная файловая система; виртуальная консоль;


Что из себя представляет Дип-консоль?
Виртуальная консоль позволяет управлять рабочей станцией Диптауна посредством ввода текстовых команд. Практически каждый модуль регистрирует свой обработчик консоли, позволяя таким образом управлять данным модулем. Виртуальной консоль является в том смысле, что не привязана к какому-то конкретному способу ввода команд. На данный момент реализовано управление консолью посредством протоколов Telnet (в ядре) и IRC (в отдельном модуле). Планируется также реализация графического интерфейса консоли, доступ к которому можно получить на программе-клиенте.


Имеется ли консоль в Дип-клиенте?
Да, виртуальная консоль является частью ядра, так что она есть на всех рабочих станциях.


Что из себя представляет DTTP (Deeptown Transport Protocol)?
DTTP - это универсальный протокол передачи данных в сети Диптауна. Он предоставляет три уровня абстракции: передача произвольных данных между рабочими станциями; передача дискретных данных (сообщений) между рабочими станциями и передача дискретных данных (событий) между объектами. Кроме того в DTTP встроен ряд дополнительных возможностей: это потоковое сжатие и шифрование трафика, оптимизация потоков данных приоритетами и пр.


Возможно ли использование протокола DTTP внутри какого-либо иного протокола?
Да, DTTP не зависит от протокола передачи данных. На данный момент реализован только поверх TCP, но возможна/планируется также реализация поверх других протоколов, вплоть до HTTP (для пользователей, ограниченных HTTP-прокси).


Какова степень синхронизации событий, происходящих в Дип-пространстве и воспроизводимых Дип-клиентом?
Это зависит от настроек клиентской программы: чем больше трафик, тем меньше задержка синхронизации.


Обеспечивается ли коррекция рассинхронизации Дип-сервера и Дип-клиента?
Да.


Как обеспечивается синхронизация проработки физики Дип-сервером и Дип-клиентом?
Существует несколько различных алгоритмов, каждый из которых можно выбрать в зависимости от требований к данному подпространству. Каждый из алгоритмов синхронизации характеризуется затратами на трафик, устойчивостью к задержкам в сети и временем задержки между клиентом и сервером. Чем больше задержка в сети и чем меньше трафик, тем больше задержка синхронизации. Соответственно, в играх, где требуется большая динамика и высокая точность, могут применяться более точные, но более требовательные к трафику алгоритмы - в такие игры могут не допускать пользователей модемов. В общем пространстве, где большая точность не требуется, применяются менее точные и менее требовательные к трафику алгоритмы.


Как обеспечивается самостоятельное функционирование виртуального устройства, является ли оно Дип-программой?
В большинстве случаев виртуальное устройство представляет собой скрипт. В некоторых отдельных и, я надеюсь, достаточно редких случаях можно реализовать устройство в виде программы. Этот способ менее предпочтителен и требуется только тогда, когда нужна высокая производительность.


Как обеспечивается информационное взаимодействие между виртуальными устройствами?
Посредством событий DTTP, которые позволяют отправлять информацию от одного объекта к другому вне зависимости от того, каким сервером обсчитывается объект.


Будут ли использоваться векторные текстуры?
Будут не совсем векторные, но похожего принципа – процедурные. Большая часть файловых текстур будет поставляться с клиентом. Процедурные будут генерироваться клиентом сразу после закачки и сохраняться в файлы.
Вернуться к списку разделов