RunServer
ProductsNewsProjectsFilesGalleryContacts
  • English (United Kingdom)
  • Russian (CIS)
RunServer Products RunServer Middleware
middleware for huge online server development
RunServer.Math
server geometry subsystem
RunServer.Database
universal RDBMS module with in-memory OODB
RunServer.MMO
MMOG server elements including AI, update and map systems
Our partners Unigine 3D Engine
Unigine 3D Engine
WNet: World of Warcraft Syndicate of Arkon DotA WoW
Hosted By WNet Valid XHTML 1.0 Transitional
RunServer.Math
RunServer.Math Thursday, 12 November 2009 13:32
 
There are no translations available.

Данный продукт представляет собой комплекс программ и библиотек для серверной обработки геометрии. Основной задачей продукта является трассировка лучей для определение видимости между двумя точками (т.н. Line of Sight) и нахождение пути от одной точки к другой (Pathfinding), серверные рассчеты коллизий, положений объектов на ландшафте и пр.

Утилиты, поставляемые с продуктом, позволяют конвертировать геометрию из форматов OBJ, 3DS и Unigine Mesh в собственный формат с различными оптимизациями и разбиением сложных фигур на более простые, с использованием octree для внутренней иерархии.

За счет сложного препроцессинга и оптимизированных алгоритмов, обработка геометрии производится с достаточной скоростью для обеспечения нужд современных MMO игр. К примеру, расчет 10 000 различных линий видимости в сцене из 200 000 полигонов занимает около 100мс на сервере с двумя процессорами Intel Xeon 5130. В более сложных сценах время расчета одной линии видимости составляет от 0.01 мс до 0.05 мс. Такая производительность позволяет серверному приложению проверять корректность действий многих тысяч клиентов без существенной нагрузки и задержек.

Система хранения данных оптимизирована под архитектуру x64, что обеспечивает адекватное потребление памяти при большом количестве небольших и средних моделей. В тестовом мире из 9 516 моделей и 7 184 444 треугольников, потребление памяти на архитектуре x64 составило порядка 250МБ ОЗУ в версии 1.0 (в бета версиях потребление было больше на 200%).

При появлении одинаковых моделей используется подход, аналогичный технологии Instancing в 3D графике - в памяти хранятся данные только одной модели, а все остальные используют те же вспомогательные структуры и коэффициенты и отличаются только матрицами трансформаций.

Новаторская реализация алгоритма A* позволяет автоматически генерировать данные для навигации (NavMesh) в реальном времени в той части мира, где это необходимо. Навигационные данные о проходимости сохраняются для ускорения дальнейших поисков в этом регионе. Такой подход позволяет изменять геометрию с каждым запуском сервера без сбоев и перегенерации. Скорость расчета пути в реальной сцене составляет от 1 до 50мс, в то время как последующие поиски в этом регионе займут от 0.01 до 5 мс. Также есть возможность использовать классический подход и генерировать NavMesh отдельной утилитой, что позволит избежать сложных расчетов в реальном времемени, но потребует повторной генерации при изменении геометрии. Нахождение пути учитывает неровности ландшафта, спуски и подъемы, многоуровневые строения и другие особенности.

Начиная с версии 1.0 RunServer.Math доступен как отдельный продукт и как часть платформы RunServer для покупателей версии с исходным кодом.

По вопросам лицензирования данного продукта и платформы в целом обращайтесь в отдел продаж

Written by Nomad   
 
© RunServer, 2009