Делать было нечего, дело было вечером...
В один прекрасный день, я столкнулся с тем, что мне нужны структуры, причём нужно структуры вставлять в мир и причём огромные. Под огромными имею в виду не структуры на сотни или тысячи блоков, а на миллионы блоков. Немного поэкспериментировав, разочаровался в беспомощности кубача.
Не поверите, но при вставке структуры или попытке спавна таковой - захлёбывается очередь установки света. Буквально игра в один поток пытается поместить миллиарды операций и одну структуру оно обрабатывать будет дай бог в лучшем случае если полчаса. Меня это не устраивало и я начал думать, что мне делать с этим.
В дальнейшем, когда я писал новый генератор мира, столкнулся с тем, что генерация новых чанков тоже очень сильно зависит от света и при большой нагрузке бедный поток со светом тоже захлёбывается в куче операций. Да что-ж такое! Сколько лет игре и никто не решил проблему с этим однопоточным безобразием?
Пошёл искать в интернете, может кто-то что-то делал в этом направлении? Да, в интернете оказалось всего ОДНО существующее решение. Но оно мне не подошло, потому что оно конфликтует с частью модов. Да и реализация мне как-то не особо понравилась, почитал техническую записку от оригинального автора и это оказался почти тот же ванильный алгоритм, но получше. А потом это стало форком форка мода. Да, я не опечатался.
Так что, какие бы мне карты не сдала судьба, я решил идти ва-банк. Если это нормально не сделал никто, то почему бы не попытаться сделать самому?
Спустя долгое время. Не без множества итераций и бессонных ночей... У меня это получилось. И я решил поделиться этим с миром.
Встречайте, полноценный самостоятельный движок света Lucis!
Движок сам по себе спроектирован так, чтобы свет просчитывался максимально быстро, был потокобезопасным, легко масштабируемым и насколько возможно лёгким. Он по умолчанию быстрее ванильного решения в 8-12 раз и может легко масштабироваться и не устраивать гонки данных.
Доступен для версий 1.21.1, 26.1.2 и 26.2 для загрузчиков Fabric и NeoForge.
Крушите, ломайте, тестируйте на прочность, ищите баги. Буду рад любому фидбеку про движок и ваше мнение. Движок ещё и с открытым исходным кодом под лицензией LGPLv3, можете засрать за говнокод или закидать томатами в лицо, если хотите.
Мод даст больше производительности на сервере, но можно также и поставить на клиент.
Скачать мод:
CurseForge
Modrinth (на модерации, появится позже)
Post #1107
3.91K

- ❤ 76
- 🔥 19
- 🤣 7
- 👍 3