Elca Server

Elca Server [Платно] 3.0

Нет прав для приобретения ("4 490.00" ₽)
2.5.0-pre2

Добавлен асинхронный трекер сущностей
В обычном режиме по прежнему используется синхронный трекер, однако при перегрузках (Когда тпс мира ниже 20) данный мир заменит трекер на асинхронный (и наоборот)

Глобально это не повысит максимальное количество игроков, однако позволит держать больше игроков в конкретном мире без просадок ТПС при минимальных доп. накладных расходах
 
Последнее редактирование:
HomaPlus обновил(а) ресурс Elca Server новой записью:

Обновление 2.5.0

Детали обновления:

1) Значительно ускорена установка блоков
2) Небольшие дополнительные оптимизации сущностей (в среднем на 3-5%) (возможен маловероятный артефакт при крайне специфичном поведении, опционально)
3) Ускорение расчета коллизий при перегрузках (до 30%) (результат непереодичен, опционально)
4) Исправлен баг, при котором балансировка ИИ в некоторых случаях не запускалась
5) Ускорены стойки для брони и крючки удочек

Узнать больше об этом обновлении…
 
2.5.0.03
Добавлена утилита для поиска горячих точек, и игроках, к-е стали их предположительными причинами
Например, можно быстро отследить все тяжелые фермы мобов

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
2.5.0.04
Тестирование и доработка движка коллизий 4-го поколения (в комбинации с некоторыми дополнительными оптимизациями) в самом разгаре

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

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Последнее редактирование:
2.6-pre1
Удалена система WorldLocal (Почти как ThreadLocal, но для мира)-переменных
Добавлена система инжекторов произвольных полей произвольным классам
Новая система написана на ASM, что дает дакой же почти такой же быстрый доступ к полям, как будто бы они уже были

Java:
//Обьявляем о том, что непосредственно перед загрузкой этого класса нужно запустить инжектор
@LoadInjector(fields = {
        //Указываем целевой класс, поле и его тип
        @Field(target = "plus.fserver.server.AsyWorldTickerV2", name = "exampleField", type = String.class)
        //Можно написать несколько полей и классов
})
@Mod(modid = "example")
public class ExampleMod {
    //Компилируем двухсторонний интерфейс доступа к полю
    public static final FieldAccessor<AsyWorldTickerV2,String> access =
            ElcaServerUtils.compileAccess(AsyWorldTickerV2.class, String.class, "exampleField");

    //Тестируем
    public static void test(AsyWorldTickerV2 inst){
        //Получаем значение (по умолчанию null)
        String value = access.get(inst);
        //Записываем значение
        access.set(inst, "new-value");
    }
}
 
Последнее редактирование:
2.6-pre2
Исправлен баг в движке коллизий 4-го поколения, из-за которого существовала вероятность нарушения целостности Элька-кеша с непредсказуемыми критическими последствиями
Унифицирована система подстановок (добавлен аналог всеми известного PlaceHoldersAPI)
Добавлены альтернативные варианты для пакетов SPacketChat и SPacketPlayerListHeaderFooter, чтобы дать возможность отправлять json-сообщения напрямую

Java:
//Создаем формат 1 раз - используем всегда
ChatPacketBuilder builder = ChatPacketBuilder.of(
    "&4Example message format: player: &d%player:name%"
).asyncRender(true);
...
//Использование скомпилированного формата сообщений позволит ускорить
//процесс создания пакета с подстановками в 10-20+ раз в синхронном
//и в 50+ раз в асинхронном режиме
...
builder.send(player);
 
2.6-pre3
Просто ОГРОМНОЕ уменьшение потребления оперативки (Например, прогрузка области в 10_000х10_000 блоков потребует в среднем на 16ГБ меньше чем cборкам Paper)
 
Последнее редактирование:
2.6-pre4
Дальнейшая оптимизация уменьшения потребления чанков закончилась частичной неудачей (вместо предполагаемого выигрыша 16ГБ -> 20ГБ получилось 16ГБ -> 16.7ГБ)
Практически полностью нивелированы накладные расходы процессора (за счет совместимости), которые появились в результате данной оптимизации по снижению потребления памяти
Исправлены артефакты солнечного света под водой
Удален устаревший код светового движка на базе Phosphor

Добавлена опция небезопасной экономии памяти чанков (16.7ГБ -> 21ГБ), подходит для очень узкого круга миров, например для PVP/PVE и Скайблок
 
2.6-pre5
Отловлена и исправлена старая ошибка (связанная с асинхронным тиком миров), которая иногда могла приводить к некритическим непредсказуемым последствиям от 2.0
Исправлена ошибка (от 2.6-pre1), из-за которой DEV-ветка не запускалась вместе с Cleanroom
Исправлена преждевременная загрузка классов API
Все миксины переписаны на Элька-патчи, в связи с этим необходимость в миксинах полностью пропала. Это не отменяет полную поддержку и совместимость системы миксинов с Элька-патчами
Исправлены избыточные блокировки, связанные с отправкой цепочек пакетов (в тех местах, где это не было сделано ранее)
 
Последнее редактирование:
2.6-pre6 / 3.0-pre

В связи с очень масштабными изменениями по сравнению с последней стабильной 2.5, было принято решение отложить выпуск 2.6, и сделать все те запланированные вещи, которые были отложены, тк могли привести к неработоспособности устаревшего кода, использующего Elca API
Произведен глобальный рефакторинг и удалено большое количество устаревшего и неиспользуемого кода

Аннотация @VarOnly сейчас может использоваться вместо @SideOnly, а так же ей добавлена опция, которая позволяет вместо полного удаления void-метода, удалить только код внутри него

Игроки с повышенным пингом скажут спасибо
Добавлена опция, которая позволяет нивиллировать до 25ms от ванильного input-пинга игрока, в теории улучшает качество PVP/PVE и может повлиять на исход боя

Проверка версии Forge (при запуске сервера) теперь отключена по умолчанию
Исправлена критическая ошибка, при получении коллизий некоторых блоков
Исправлена некритическая ошибка, связанная с одновременной популяцей и расчетов таблицы навигации в определенных специфических случаях
Уменьшено количество мусора при отправке данных чанков
 
3.0-pre7

Таблица навигации (Поиск путей) теперь поддерживает асинхронную работу (включается автоматически при перегрузках) (было запланировано ранее)

Ранее в асинхронном расчете пути не было необходимости, тк 1-3 поколения ускорителя коллизий работали "Недостаточно хорошо"
и на общем фоне, синхронный поиск путей был очень легковесной задачей

Уменьшено потребление памяти у трекера чанков
Значительно ускорено перемещение сущностей между измерениями
Исправлен некритический баг, который приводил к избыточным преждевременным загрузкам чанков

Перемещение сущности в незагруженный чанк (в некоторых случаях, например при телепортации) сейчас может быть отсрочено на 1 тик, чтобы не блокировать поток мира принудительной синхронной загрузкой/генерацией/популяцией чанков

В связи с очень высокой скоростью загрузки/генерации/популяции чанков, а так же невероятно быстрым созданием и отправкой пакетов данных чанков,
была добавлена опция, которая позволяет увеличить ванильную скорость отправки чанков.
(Например, в Ваниле за 1 тик может быть отправлено не более 81 чанка (область 9х9), можно отодвинуть это ограничение до 256 (область 16х16) или больше)
На серверах с большим количеством игроков, это может значительно ускорить прогрузку чанков на стороне клиента

Добавлена команда, которая позволяет изменить некоторые параметры конфигурации "на лету"
 
3.0-pre8
Использование в движке света, генерации и некоторых других местах
Коллекция, которая была разработана в процессе, была опубликована в открытый доступ и стала частью расширений TsonConfigurations
 
Последнее редактирование:
HomaPlus обновил(а) ресурс Elca Server новой записью:

Обновление 3.0

Основные детали обновления: (мелких обновлений очень много, нет смысла писать обо всем)

1) Система WorldLocal удалена и на ее место пришла система для инжекта полей произвольным классам (pre1)
2) Огромное уменьшение потребления оперативной памяти (pre3-pre4) (прогрузка зоны в 10_000х10_000 потребует в среднем на 16.7ГБ меньше чем cборкам Paper) (уникально)
3) Добавлен ускоритель форматирования чата (pre2)
4) Встречайте 4-е поколение коллизий...

Узнать больше об этом обновлении…
 
3.0.1

Переписан кеш файлов регионов (Прогрузка области в 1024 х 1024 блока сейчас потребует еще на 250мб меньше)

Исправление ванильных ошибок и использование нескольких потоков для ускорения запуска сервера (на 1.1 секунду):

1) Исправлена ванильная ошибка в кеше игровых профилей, которая значительно замедляла запуск сервера (раньше загрузка кеша занимала 750мс, сейчас 35мс)
2) Исправлена ванильная ошибка, которая приводила к перезагрузке ачивок при создании нового мира
3) Ачивки при запуске мира сейчас загружаются асинхронно (позволяет запустить мир на 175мс быстрее)
4) Если gui для сервера включено (ну мало ли, всякие люди бывают), gui инициализируется так же асинхронно (ускоряет запуск на 500мс)
5) При инициализации системы асинхронных миров идет компиляция (кодогенерация) конструкторов пакетов и сущностей, это так же сделано асинхронным (ускоряет запуск сервера еще на 250мс)
 
3.0.2

Добавлена опциональная оптимизация строк в ProtectedDomain на базе (с поддержкой не только java8, но и java21 + исправлен 1 баг + на 40% быстрее)
Дополнительные незначительные оптимизации, которые ускорили запуск сервера еще на 100мс
 
Последнее редактирование:
3.0.3

Добавлена опция для автоматического отслеживания потенциальных ошибок с асинхронной генерацией (AAED)
Исправлено несколько мест, которые (согласно данным AAED) могли бы вызывать ошибки
 
Назад
Сверху Снизу