- Загрузчики
- BTA (Babric)
- Скачиваний на Modrinth
- 153
- Подписчиков на Modrinth
- 0
- версий
- 5
- Обновлён
- 28 мая 202628 мая
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Brainless Library
Игровой AI-фреймворк и утилиты, WIP!
Кстати
Начиналось как эксперимент с кодом, может, им и закончится.
Предупреждение:
Он не имеет ничего общего с генеративным ИИ или сложными нейросетями.
Пример AI жителя
AI ai = AI.create(brain -> {
brain.inputs()
.add("hunger", 0.0)
.add("fatigue", 0.0)
.add("danger", 0.0)
.add("work", 0.0);
brain.layer("desires", layer -> {
layer.mix("desire_eat")
.add("hunger", 1.0).sub("danger", 0.7).sigmoid(6);
layer.mix("desire_sleep")
.add("fatigue", 1.0).sub("danger", 0.9).sigmoid(6);
layer.mix("desire_flee")
.add("danger", 1.0).sigmoid(8);
layer.mix("desire_work")
.add("work", 1.0).sub("hunger", 0.5).sub("fatigue", 0.4).sigmoid(5);
});
});
JobQueue queue = ai.queue(JobQueue.Mode.HIGHEST_WINS, 0.25, 3);
queue.register("Eat", ai.getBrain().getNode("desire_eat"), () -> System.out.println("Villager eats"));
queue.register("Sleep", ai.getBrain().getNode("desire_sleep"), () -> System.out.println("Villager sleeps"), () -> System.out.println("Sleep interrupted"));
queue.register("Flee", ai.getBrain().getNode("desire_flee"), () -> System.out.println("Villager flees!"), () -> System.out.println("Flee interrupted"));
queue.register("Work", ai.getBrain().getNode("desire_work"), () -> System.out.println("Villager works"));
// Each game tick:
ai.update(in -> in
.set("hunger", 0.8)
.set("fatigue", 0.3)
.set("danger", 0.0)
.set("work", 0.5));Режимы очереди
| Режим | Поведение |
|---|---|
HIGHEST_WINS | Самое насущное желание всегда первым |
FIFO_TIERED | Сортировка на высокий/средний/низкий уровни, FIFO внутри каждого |
WEIGHTED_RANDOM | Выше желание = выше шанс, но не гарантированно |
Очередь заранее рассчитывает следующие N задач. Если суммарная дельта желания превышает порог, она отбрасывается и перестраивается.
Операции связей
Встроенные: add, sub, mul, div, max, min.
Пользовательские:
layer.mix("desire_eat").op("hunger", (a, b) -> a + b * 1.5, 0.8);Частые вопросы
Как установить Brainless Lib?
Установите BTA (Babric) под свою версию Minecraft, скачайте Brainless Lib под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Нужен ли Brainless Lib на сервере?
Ставится только на сервер; игрокам ставить не нужно