|
RunServer 2.4
|
07 Января 2011 |
| |
|
Платформа RunServer обновлена до версии 2.4. Эта версия содержит различные улучшения и правки, а также внутренние изменения для миграции на архитектуру версии 3.0. Подробную информацию о планах разработки можно получить в соответствующем разделе. Изменения и нововведения в версии RunServer 2.4.1 и RunServer Math 1.0.5: - возможность выбора режима очередности исходящих пакетов (упорядоченный и произвольный режимы);
- оптимизация вызова внешних скриптов за счет отказа от использования Reflection в пользу динамически генерируемых методов;
- отказ от использования ByteSegment и некоторых других классов в пользу стандартных средств CLR;
- различные низкоуровневые системы (CustomThreadPool, JobQueue, LinkedByteQueue и другие) перенесены из библиотеки Common и объявлены как internal;
- различные доработки пулов данных и буферов;
- возможность выбора эвристического алгоритма для поиска пути (точный А* поиск или ускоренный Greed метод);
- поддержка односторонних и двусторонних поверхностей в серверной геометрии;
- исправлена работа методов определения коллизий для полигонов, параллельных координатным плоскостям;
- оптимизировано использование памяти для 3D геометрии;
- модифицирован формат NavMesh для большей точности вычислений;
- различные правки и оптимизации;
|
|
Автор: Nomad
|
|
|
RunServer 2.3
|
28 Сентября 2010 |
| |
|
С сегодняшнего дня подписчикам доступна версия RunServer 2.3. Также после года отладки и массового тестирования выпущена стабильная версия RunServer.Math 1.0. Библиотека RunServer.Math содержит инструменты для обработки 3D геометрии в масштабах серверных задач - нахождения пути, проверки коллизий, видимости и других. Ключевые особенности этого продукта: - управление иерархией сцены с помощью octree;
- эффективный алгоритм трассировки лучей с использованием 3DDDA с производительностью более 100000 лучей в секунду1;
- новаторская адаптация A* для поиска пути с автогенерацией NavMesh на основе проверок LOS с производительностью более 1000 путей в секунду1;
- методы определения коллизий с использованием Bounding Box и Bounding Cylinder;
- математические операции с матрицами, кватернионами, векторами;
- поддержка half-precision float (IEEE754);
- поддержка 32-битного целочисленного представления нормалей и единичных векторов;
- компактное представление 3D геометрии в памяти с использованием Instancing;
1 Производительность измерялась в реальном времени на тестовой станции Xeon 5130 в игровом мире с сложным ландшафтом, и около 10000 моделей суммарной сложностью около 7000000 треугольников. Поиск путей и линий видимости осуществлялся в различных местах и условиях, полученные значения усреднялись. Изменения и нововведения в версии RunServer 2.3: - возможность полного шифрования трафика с помощью RC4 и других крипто систем;
- коллекции SortedLinkedList<> с сортировкой данных в момент добавления;
- lock-free коллекции PessimisticStack<> и PessimisticQueue<>;
- оптимизации пулинга с использованием пессимистической логики;
- вспомогательный класс MonoHelper для выполнения специфических для Mono операций и их аналогов в .Net;
- поддержка generic методов Read<T> в классах потокового чтения;
- класс PerformanceHelper для профайлинга производительности;
- исправлен баг с LinkedArrayList<>, при записи элементов по индексу;
- коллекции EnumArray<> и EnumCheckList<> для enum элементов;
- различные оптимизации и многопоточные блокировки;
- другие правки и багфиксы;
|
|
Автор: Nomad
|
|
RunServer 2.2
|
31 Марта 2010 |
| |
|
Подписчикам доступна версия RunServer 2.2. Начиная с этой версии доступны Pure .Net библиотеки, не использующие нативные Win32 вызовы, что позволяет работать под Mono на любых Unix платформах. Также реализован альтернативный сетевой модуль с использованием .Net Async Sockets с меньшей латентностью, но несколько большей нагрузкой на память и CPU. Перечень изменений: - пул заданий CustomThreadPool использует IOCP на Win32 и собственную реализацию в Pure .Net режиме;
- взаимозаменяемость низкоуровневых сетевых модулей, в данный момент это ClrTcp, NativeTcp и Distibuted;
- реализована поддержка собственного шифрования и дешифрования трафика;
- различные переделки в рандомизаторе и AttackTable;
- добавлена возможность псевдослучайной выборки результатов для AttackTable на основе статистических значений;
- реализован класс ArrayIList<> : IList<>, позволяющий частичный обход массива без копирования в отдельную коллекцию;
- реализована поддержка модуля БД C# SQLite и собственный ADO-совместимый интерфейс к нему;
- добавлены многопоточные синхронизации для БД SQLite;
- улучшена работа RunServer.ConversionApi;
- исправлены ложные срабатывания таймеров после окончания их работы;
- другие оптимизации и правки;
|
|
Автор: Nomad
|
|
RunServer 2.1.0
|
13 Ноября 2009 |
| |
|
В версии 2.1.0 анонсируется новый продукт RunServer.Math, который позволяет обрабатывать геометрию мира на стороне сервера - проверять наличие Line of Sight, просчет путей между двумя точками, коллизий и пр. RunServer.Math будет доступен существующим клиентам по сниженой цене, а для новых покупателей - в виде отдельного продукта и в составе полной версии платформы RunServer. Подробнее читайте на странице продукта: http://runserver.net/runserver-math. Перечень изменений: - добавлена возможность контроля ширины полосы исходящего трафика для каждого соединения;
- без контроля трафика передача данных в модуль IOCP происходит моментально, при включении контроля - через очередь в отдельном потоке;
- переделана обработка и отсылка множественных пакетов, изменен синтаксис метода ClientBase.Send(..);
- библиотека RunServer.Server переименована в RunServer.MMO, идет подготовка к выпуску в виде отдельного продукта;
- класс Vector дополнен различными операциями над векторами - умножение, сложение, деление и пр.;
- оптимизированы математические элементы класса Vector;
- контейнер LinkedArrayList<> при переборе содержимого не будет возвращать пустые записи;
- добавлена возможность создавать временную сборку DB Proxy с собственным именем - дополнен метод ObjectDatabase.GenerateProxies(..);
- оптимизированы методы класса DBConvert;
- оптимизировано приведение типов в генерируемых DB Proxy классах;
- класс LogConsole позволяет задать собственный формат даты в логах;
- добавлен класс ScopeLock для гарантированного освобождения классов, реализующих ILock;
- переделан и оптимизирован класс CheckList<>;
- коллекция LinkedArray<> больше не имеет аттрибут [Serializable];
- полностью переделан рандомиратор - теперь генерируется не одно случайное число, а запрашивается у системы блок в 4096 случайных байт;
- другие оптимизации и правки;
|
|
Автор: Nomad
|
|
|
|
|
|