LuxinfineUltramineCore

Цена - Ветка 1: 25000 рублей. Ветка 2: 35000 рублей. Доступ к github и пожизненные обновления - 50000 рублей.

Фиксы и переработки паблик версии ядра - https://gitlab.ultramine.ru/ultramine/ultramine_core

Ядро по умолчанию теперь делится на клиент и сервер, с помощью него можно поднять клиент и сервер сразу с кучей оптимизаций и правок и полным доступом к коду игры. В клиенте встроен переработанный optifine, установка его в виде мода не поддерживается.

Ядро делится на 2 ветки, правки по каждой веткt можно изучить ниже. Ветка 1 на данный момент завершила свою доработку, в нее будут добавлены только фиксы багов, а оптимизации, новые фичи и прочее - нет.

Дополнительные опции (доступны для любой ветки):
1. Поддержка запуска на java 8 - 11 (Значительные оптимизации и прочие улучшения из-за перехода на новую версию джавы) - 2500
2. Поддержка запуска на java 8 - 20 (Еще более значительные оптимизации и улучшенные механизмы вывода ошибок, а также все фичи современных версий java включая приоритетность их разработки и улучшения) - 5000

Оригинальная ветка:
1) Очистка кода игры
2) Удаление лишних полей __OBFID
3) Множество дополнительных команд на замену essentials (с возможностью их настройки, выключения через отдельный конфиг)
4) Удаление встроенных сервисов ядра
5) Фикс NPE при проверки стака в сетевом коде
6) Отключение регистрации части ванильных команд
7) Выдача предмета через give прямо в инвентарь, вместо выпадения предмета в мир
8) Использование другого типа логгера для уменьшения потребления оперативной памяти
9) Фиксы NPE в логике автора ядра
10) Переработки в системе прав команд
11) Фикс спама в логах и консоле
12) Отключение проверки fingerprint'a для модов
13) Обновление всех библиотек ядра до новейших версий и удаление лишних
14) Добавление поддержки русского языка
15) Оптимизация вычисления EffectiveSide
16) Фиксы уязвимостей с пакетами игры
17) Оптимизация получения блока по id и наборот
18) Оптимизация проверки допустимых символов
19) Фиксы ошибок с кастом тайлов во множестве мест
20) Оптимизация и возможность работы ObjectHolderRef на новых версиях джавы
21) Оптимизация и возможность работы EnumHelper на новых версиях джавы
22) Оптимизация и возможность работы ItemStackHolderRef на новых версиях джавы
23) Регистрация ивентов игры на лямбдах
24) Фикс рассинхронизации кеша рецептов
25) Фикс телепортации на верхний блок после выхода из игры в определенных случаях
26) Корретный краш сервера при неудачной попытке тика тайла
27) Фиксы CME для EntityTracker
28) Оптимизации NoiseGenerator
29) Кулдаун поиска цели для лучников
30) Оптимизации тика блока травы
31) Оптимизации проверки типа блока
32) Удаление ивентов ядра
33) Фикс утечки памяти при поиске jar файлов
34) Фикс CME при попытке отгрузки чанков
35) Фикс работы ItemStackHashMap от ядра
36) Ускорение загрузки кормодов
37) Фикс ошибок при декорации чанков
38) Фикс утечки памяти при хранении SaveHandler
39) Оптимизированный алгоритм рандома и перевод обычного рандома во всем коде ядра и игры на него
40) Дополнительные меры для предотвращения дюпа и существования невалидных предметов
41) Оптимизации для EntitySenses
42) Фикс проблем с поршнем и рельсами
43) Фикс возможности совать более одного предмета в проигрыватель
44) Множество оптимизаций огня
45) Защита от NPE при генерации структур
46) Оптимизация сида для пустого чанка
47) Оптимизация хеша для NextTickListEntry
48) Оптимизация взрывов
49) Оптимизация хеша для координат чанка
50) Дополнительные лимиты символов для таблички
51) Принудительное принятие Eula
52) Лимит попыток поиска пути для существ
53) Фикс NPE при записи предмета в буфер
54) Фикс получения преимуществ по тикам для игроков
55) Фикс CME при входе игрока
56) Фикс выхода за пределы допустимых слотов в контейнере
57) Фикс не поочередного сохранения чанков, что вызывало некоторые проблемы
58) Оптимизации сохранения чанков
59) Возможность сохранения чанков более определенного размера (актуально для модов)
60) Оптимизации спавна животных
61) Оптимизации проверки корректности стака в контейнере
62) Возможность отключения команд типа /mod:cmd
63) Кеш стандартных игровых правил
64) Уменьшение допустимого лимита строки при таб комплите
65) Падение падающих блоков при генерации мира
66) Оптимизации при работе с тайлами в чанке
67) Возможность отключения случайного апдейта света
68) Оптимизация получения существ в радиусе
69) Оптимизация обновления EntityItem
70) Лимит чанков для перепроверки света
71) Возможность отключения балансера существ
72) Возможность задать максимальный размер коллизий
73) Оптимизация получения коллизий
74) Фикс сбора статистики при выключенном Snooper
75) Переработка алгритма сортировки аргументов команд
76) Множество оптимизаций путем смены порядка условий
77) Фикс ошибок при отправке пакетов смены блока фейкам
78) Оптимизация проверки активных зелий
79) Удаление проверки версий форжа
80) Фиксы парсинга и ошибок с ним для jar файлов
81) Кулдаун проверки коллизий
82) Оптимизация датавотчера существ
83) Пропуск заведомо не тикающих блоков в методе тика
84) Использование более оптимального контейнера для хранения тиков и миров
85) Отказ от лишних вызовов профайлера при его выключенном состоянии
86) Оптимизации ai тасков существ
87) Значительные оптимизации сравнения NBT
88) Оптимизации ChunkCache
89) Оптимизации блоков жидкости
90) Оптимизация профайлера пакетов
91) Значительные оптимизации сравнения жидкостей
92) Оптимизации математики в сетевом коде
93) Оптимизации математики в статистике игроков
94) Оптимизации проверки ускорения от материала блока в мире
95) Кеширование проверки лестницы
96) Кулдаун перепроверки деревень
97) Отключение тиков некоторых тайлов
98) Более быстрый способ получения игроков в радиусе
99) Удаление части ненужны методов и классов forge
100) Удаление лишнего копирования листа тайлов при отсылке чанка
101) Прямой доступ к некоторым полям вместо вызова метода (метод вызывался десятки тысяч раз в тик, чем создавал нагрузку)
102) Оптимизации получения блоков для существ
103) Удаление лишних проверок ивентов
104) Удаление лишних проверок существования блока в мире
105) Небольшие оптимизации поста некоторых ивентов
106) Небольшие оптимизации проверки прыжка
107) Оптимизации математики в BlockFace
108) Кеширование рецептов печи и варочной стойки
109) Оптимизации получения значений из NBTTagCompound
110) Небольшие оптимизации поиска врага для атаки
111) Значительные оптимизации копирования и проверки жидкостей
112) Оптимизации массивов NBT
113) Оптимизации копирования NBT
114) Увеличение скорости разгрузки модов
115) Расширение оптимизации коллизий
116) Кешерование имени стака
117) Фикс утечки памяти при загрузке чанков
118) Фикс утечки памяти красного факела
119) Небольшие оптимизации установки игровых правил
120) Оптимизация поиска пути для существ
121) Оптимизация поиска значения в мапах во всем коде игры
122) Оптимизация дропа предметов из зельеварки, сундука, раздатчика, печи, воронки и вагонетки
123) Опция для уменьшения размера буфера пакетов по умолчанию, так как майну столько не нужно
124) Опции для задания макс времени айдета тайла, энтити и обработки пакета для вывода варна в лог
125) Кулдаун отсылки пакета жидкостей
126) Фиксы багов с кешем рецептов ядра для печей
127) Удаление тяжелой логики ивента установки блока от ядра и сервиса поиска причины этой установки
128) Оптимизации файл стримов и некоторых try catch
129) Фикс отсылки пакетов фейковым игрокам
130) Удаление лишнего кода при открытии сундуков
131) Кулдаун проверки игроков рядом со спавнером
132) Добавление информации о перезаписи рецептов печи
133) Дополнительные проверки для защиты от краша при получении рецептов печи
134) Уменьшение кол-ва вызовов getBlock в некоторых местах
135) Фикс спама пакетами прогресса в зачаровальне
136) Фикс загрузки чанков при поиске путей у существ
137) Использование примитивных мап для аттрибутов
138) Расширение оптимизаций существ
139) Оптимизации всех методов получения блоков - вместо работы с миром идет работа с чанками
140) Попытка оптимизации датавотчеров, посредством использования примитивных типов данных
141) Небольшие оптимизации проверки мира тайлов
142) Дополнительные оптимизации ентитей
143) Ускорение FML ремапера (возможно чуть быстрее будет запуск игры)
144) Скорее всего что-то еще тут должно быть, но правок очень много
145) Незначительные оптимизации
146) Замена использования koloboke на gnu коллекции
147) Удаление лога при невалидном подключении, вызывающего NPE
148) Вывод кол-ва всех тайлов в мире в команде /memory
149) Отказ от создание лишних массивов при получении миров
150) Опция отключения проверки утечек миров
151) Удаление встроенных UM ивентов
152) Отказ от копирования массив миров при получении их id
153) Расширение кулдаунов для деревень
154) Оптимизация очистки кеша биомов
155) Уменьшение вызова рандома при тике миров
156) Оптимизация проверок isWet для всех существ
157) Расширение проверок на загруженность чанка при поиске пути существ
158) Оптимизации обновления сферы опыта
159) Прямой доступ в gamerules
160) Отключение вызова метода спавна партиклов и звуков
161) Фикс работы цветов в консоле
162) Уменьшение кол-ва создания лишних листов при попытке получить возможные команды
163) Удаление клиент кода спавна частиц и всех рассчетов с сервера
164) Кулдаун выполнения и обновления AI существ
165) Значительные оптимизации вызова метода движения существа
166) Оптимизация выборки случайного зелья для ведьм
167) Оптимизация рандома при апдейте блоков
168) Оптимизация получения активных чанков
169) Оптимизация проверки блоков для сфер опыта
170) Оптимизация поиска существ в чанке
171) Вывод информации о тикающих блоках и чанков + активных чанков в /memory
172) Проверка игроков в радиусе перед отсылкой пакетов
173) Отказ от yaml библиотеки, перевод конфигов сервера на json
174) Фиксы проблем сети из-за фейковых игроков
175) Удаление копирования листов в некоторых местах
176) Оптимизации проверки на лаву и воду + их кулдауны
177) Дополнительные оптимизации для проверки лавы и воды существами
178) Дополнительные оптимизации для проверки наличия существа в блоках
179) Дополнительные оптимизации использования датавотчера
180) Оптимизация создания сущностей по их имени и ID
181) Расширение проверок на загруженность чанка для генератора случайных позиций и роста блоков травы
182) Расширение проверок на загруженность чанка для жидкостей и заборов
183) Отключение лишних записей для чанков
184) Удаление SecurityManager от Forge для ускорение вызова методов
185) Фикс CVE-2021-35054
186) Возможность отключения сообщений о смерти
187) Ассинхронная загрузка скинов голов
188) Оптимизации тиков выгрузки чанков
189) Возможность отключения "атаки на деревни"
190) Удаление кучи лишних методов оригинального ядра
191) Оптимизации получения мира игрока в сетевом коде
192) Улучшения читабельности сообщения moved too quickly
193) Оптимизации рассчета коллизий в сетевом коде
194) Удаление лишнего и чистка оригинального кода ядра
195) Оптимизация получения миров для тика сервера
196) Дополнительные улучшения методов получения тайлов из чанка
197) Небольшая оптимизация ForgeInternalHandler#onEntityJoinWorld
198) Дополнительная небольшая оптимизация работы слушателей ивентов (особенно тех слушателей, которые принимают отменённые события)
199) Оптимизация просчета взрывов
200) Оптимизация работы с чанками с клиента
201) Удаление лимита фпс
202) Оптимизации работы с коллекциями в рендере
203) Фикс создания кучи объектов рандома вместе использования рандома из мира (несколько тыщ раз за тик)
204) Кеш текста чат компонентов
205) Оптимизации сортировщика объектов для рендера
206) Кик игрока при телепортации или переходе в невалидную локацию чанка
207) Фиксы просадки фпс в клиенте из-за света
208) Поддержка WatchdogThread  на клиенте
209) Возможность отключения проверки скорости и уведомлений от нее
210) Возможность отключения сообщений о входе и выходе игроков
211) Оптимизация рассчета взрывов
212) Удаление шедулеров от ядра
213) Синхронизация тайлов на клиент в случае отмены поломки блока
214) Отключение вызова методов профайлера если он отключен
215) Быстрое получение ID блоков и айтемов
216) Замена рефлексии при спавне сущностей в мире
217) Добавление опции для указания кол-ва потоков загрузки чанков
218) Расширение оптимизаций коллизий
219) Лимит размера передаваемых данных игрока при входе на сервер
220) Асинхронное сохранение части данных мира
221) Опция лимита кол-ва пакетов от игрока в тик
222) Оптимизации пакетов
223) Опция отключения варна при достижении лимита пакетов
224) Обновление библиотек до новых версий
225) Расширение оптимизаций путем замены коллекций на примитивные
226) Фиксы NPE в сетевом коде
227) Оптимизации вызова некоторых методов
228) Оптимизации коллекции и аллокации объектов
229) Оптимизации UsernameCache
230) Оптимизации копирования коллекций
231) Оптимизации сети
232) Оптимизации стаков
233) Оптимизации чанков
234) Оптимизации спавна существ
235) Оптимизации ServerLoadBalancer 
236) Опция для защиты от спама пакетами
237) Оптимизации хранения тайлов
238) Поддержка Epoll для сети (оптимизации)
239) Небольшие оптимизации тиков игрока
240) Обновление до последнего релиза netty (значительные оптиимизации и фиксы уязвимостей старой версии)
241) Оптимизации и доп защита при получении тайлов из мира
242) Возможность вкючения показа ошибок сети
243) Возможность использования механизма Tcp Fast Open (оптимизации)
244) Уменьшение аллокации объектов в сетевом коде
245) Уменьшение аллокации объектов в сетевом коде
246) Кол-во предметов, с которыми одновременно может взаимодействовать (поднять) игрок за тик
247) Значительное ускорение запуска сервера (ASMDataTable)
248) Опция отключения статистики сетевого кода
249) Корретный распил сетевого кода на клиент и сервер
250) Обновление netty до актуальной версии
251) Оптимизация метода markTileEntityChunkModified
252) Оптимизация метода markDirty
253) Опция отключения загрузки невалидных тайлов и существ
254) Кулдаун синхронизации карты на клиент
255) Оптимизации менджера игроков
256) Фикс застревания файерболов в воздухе на клиенте
257) Оптимизации саженцов
258) Возможность задать лимит размера nbt в пакетах
259) Оптимизация MapGenStructure
260) Расширение оптимизаций по сравнению NBT
261) Обновление trove4j 
262) Добавление логгирования при отправке пакета мертвого существа
263) Оптимизация отгрузки тайлов и существ
264) Фиксы хаков с контейнерами
265) Оптимизации датавотчера
266) Возможность отключения потока Infinisleeper
267) Фикс спавна Ambient сущностей
268) Дополнительные проверки в BiomeCache для защиты от краша
269) Фикс краша при сохранении чанков
270) Фикс краша с контейнерами
271) Оптимизации работы с чанками
272) Опция отключения механизма проверки утечки ресурсов
273) Лимит размера кеша int
274) Защита от загрузки чанков воронкой
275) Фикс хака с взаимодействием с самим собой
276) Расширение оптимизаций датавотчера
277) Фикс дюпа с лошадями
278) Оптимизации трекера существ
279) Оптимизации путем удаления лишних участков кода на сервере и замена циклов
280) Удаление фичи с рендером для игрока deadmau5
281) Повышение защиты от дабл-логина
282) Оптимизации сравнения рецептов
283) Фикс краша с ChunkSendManager 
284) Оптимизации ртп
287) Доп проверки для защиты от деспавна боссов и некоторыз существ
288) Возможность обновления боссов в неактивных чанках
289) Доп проверки для защиты от загрузки чанков существами и при вызове некоторых методов мира
290) Обновление логгера и нетти до актуальных версий
291) Небольшая оптимизация Block#collisionRayTrace
292) Небольшое улучшение ItemStackHash
293) Обновление jopt simple до 5 версии и сборка гибрида меж 5 и 4.5 версией для работы модов
294) Фикс получения IP адреса при входе игрока
295) Оптимизации тиков миров
296) Отказ от лишнего копировании aabb боксов в некоторыз местах
297) Добавление поддержки запуска на любой версии java
298) Обновление httpcore, httpcore и mysql-connector
299) Оптимизация скорости парсинга ид блоков
300) Кеш значений енума EventPriority
301) Доработки оптимизации Block#getBlockFromName
302) Поддержка EIO и BOP для запуска на java 9+
303) Асинхронное освещение
304) Поддержка Netherlicious на java 9+
305) Фиксы NPE в MapGenStructure
306) Поддержка OpenBlocks на java 9+
307) Больше отладки и оптимизация ChunkSendManager
308) Поддержка работы Alfhelm
309) Реализация фикса гейма ForgeChunkManagerOptimizer
310) Обновление нетти, mysql-connector и jinput
311) Оптимизация работы с getAir вызовами в датавотчере
312) Оптимизация словаря руд
313) Добавление куллинга аи существ при просадках тпс
314) Оптимизации ForgeChunkManager
315) Расширение оптимизаций EntityTracker
316) Полная переработка persistentChunks во всем коде для оптимизации
317) Добавление хешкода мирам
318) Фикс NPE при получении NetworkDispatcher
319) Расширение логгирования хандлера команд
320) Опциональная валидация ID зелий и биомов
321) Начало внедрения FastUtils библиотеки коллекций
322) Увеличение охвата коллекций от FastUtils
323) Оптимизация клонирования NBTTagCompound
324) Увеличение охвата коллекций от FastUtils (трекер существ, коллекции от ядра, миры, провайдеры, утил классы)
325) Фикс прогрузки чанков из-за метода handleMaterialAcceleration
326) Вынос длины массива зелий в конфиг
327) Замена конфига массива зелий на ключ запуска
328) Уменьшение уровня лога для защиты от спама в ProgressManager
329) Оптимизация аттрибутов мобов
330) Оптимизация проверок загруженности чанков
331) Увеличение охвата коллекций от FastUtils (FluidRegistry)
332) Полный охват проверок загруженности чанков для всего кода игры
333) Увеличение охвата коллекций от FastUtils (рецепты, генератор мира и другие важные места)
334) Удаление медленной проверки типа существа от ядра
335) Обновление commons-io и нетти
336) Увеличение охвата коллекций от FastUtils
337) Значительное увеличение скорости запуска и некоторых других действий за счет использования стримов из FastUtils
338) Оптимизация получения биомов
339) Максимальный размер очереди чанков на отгрузку, после которой новые чанки через команду не будут сгенерированы - опция для генерации чанков команды ядра
Скорее всего что-то еще тут должно быть, но правок очень много...


Ветка c кастомным алгоритмом сжатия:
Ядро полностью переведено на zstd компрессию мира и нетворка, которое в разы быстрее и лучше сжимает данные, нежели в оригинале. Для работы правок требуется или клиент версия ядра, или наш мод-патчер с клиента.
BetterQuesting, RequrentComplex, Forestry и возможно что-то еще не будут работать из-за косяков их авторов. Полные фиксы можно купить у нас, либо получить именно нужный кусок фикса бесплатно в комплекте с ядром.
Доступна опция перехода с оригинального алгоритма сжатия на zstd без провердения вайпа (удаления всех миров и полной перегенерации)

340) Оптимизация компрессии байтов в некоторых местах
341) Начало встраивания оптифайна в клиент версию игры
342) Обрезка лишнего кода в оптифайне
343) Отказ от рефлексии в некоторых местах игры
344) Удаление PatchingTransformer от forge
345) Использование Object2ObjectOpenHashMap из FastUtils во всех возможных местах в коде
346) Использование ObjectArrayList из FastUtils во всех возможных местах в коде
347) Использование ObjectOpenHashSet из FastUtils во всех возможных местах в коде
348) Пакетная обработка всех встроенных ASM трансформеров (оптимизации за счет отказа от постоянной перегонки классов из байтов и обратно)
349) Добавление команды дампа классов в рантайме
350) Обновление нетти и commons-codec
351) Увеличение охвата коллекций от FastUtils
352) Дополнительная информация при (де)сериализации нетворк пакетов
353) Фикс дисконнекта игроков
354) Больше отладочной информации при ошибках в сетевых пакетах
355) Более понятные игрокам ошибки при подключении к серверу
356) Оптимизация ShapelessOreRecipe
357) Оптимизация ShapelessRecipes
358) Небольшие оптимизации PathFinder
359) Валидация Enumhelper#addEnum методов
360) Отказ от IdentityHashMap для миров и существ
361) Оптимизация частых вызовов времени
362) Куча разных микрооптимизаций
363) Изменение логики проверки дабл-входа
364) Фикс сериализации json данных для FastUtils коллекций
365) Обновление zstd, нетти, commons-lang3 и mysql-connector
366) Добавление toString методов для некоторых важных игровых классов в целях повышения понятности логов и отладки
367) Использование кеша для примитивных NBT тегов на основе кеша обёрток для чисел из Java
368) Мелкие оптимизации трансформеров
369) Оптимизации вызовов некоторых методов
370) Расширение использования FastUtils
371) Поддержка asm9
372) Оптимизация отсылки всех пакетов и их обработки
373) Использование FastUtils для NBTTagList
374) Фикс утечки памяти ядра
375) Дополнительное ускорение сканирования аннотаций
376) Добавление некоторых лишних библиотек в ЧС ASM трансформеров
377) Обновление библиотек
378) Оптимизация ListenerList.ListenerListInst#shouldRebuild
379) Множество оптимизаций нбт тегов
380) Больше информации в исключении EntityTrackerEntry#func_151260_c
381) Оптимизация EntityList
382) Вывод командной строки при исключении обработки команды
383) Опция на отключение спавна порталов при телепортации
384) Фикс синхронизации горения Entity
385) Ускорение инита пропертей Entity
386) Интернация ключей NBTTagCompound для ускорения equals
387) Оптимизация OreDictionary
388) Включение вызова MinecraftServer#finalTick
389) Оптимизация аттрибутов существ
390) Сжатие NBT при частом equals и редкой перезаписи
391) Оптимизация спавна мобов по миру
392) Полное удаление потока Snooper
393) Улушчение рандома в ртп
394) Оптимизации прогонки всех классов через асм
395) Обновление всех библиотек
396) Учёт модификатора volatile для EnumHelper#setFailsafeFieldValue
397) Оптимизации работы существ с чанками
398) Мелкие оптимизации обновления блоков
399) Фикс сброса нбт через контейнер стола зачарований
400) Улучшение хеша ChunkCoordinates
401) Лимит скорости для команды
402) Фиксы имен пользователей для всех команд
403) Фикс ломания блоков через поршни
404) Обновление всех библиотек
405) Оптимизации WeightedRandom
406) Вынос некоторых оптимизаций в конфиг
407) Возможность отключения копирования NBT при записи ItemStack
408) Вайтлист миров для включения асинхронного света
Скорее всего что-то еще тут должно быть, но правок очень много...

Last updated