Hollow Horizon

Hollow Horizon 

A Certain Developer of a Certain Engine 🙃

137subscribers

85posts

goals4
17 of 25 paid subscribers
Такое количество подписчиков позволяет мне регулярно работать и обновлять движок. А также иногда вкладываться в дизайн и удобство движка.
1 of 3
$0.13 of $201 raised
Создание редактора визуальных эффектов, вроде Effekseer или Photon ✨ Поддержка Compute шейдеров и инстансинга для обработки миллионов частиц 👀

Прогресс по скриптингу

🚀 Прогресс по скриптингу: рассказываю про некие функции @Suspendable!
Компилятор в игре уже работает, осталось немного:
✔️ Настроить совместимость со скриптами (уже почти готово)
✔️ Довести до ума сохранение состояний
✔️ Реализовать сохранение данных в файлы мира
А пока — давайте разберём @Suspendable функции (сериализуемые корутины) и как с ними работать!
🕒Пример 1: Функция ожидания wait()
Как использовать:
wait(2.sec) → 2 секунды (40 тиков, так как 1 сек = 20 тиков)
Реализация:
Фича тут в том, что обычно в языках нужно вручную ставить yield() для паузы после всех действий в цикле, но здесь задержка встроена в цикл — нельзя случайно забыть о тиках!
❓ Как думаете: оставить эту "чёрную магию" или перейти на классический подход с yield()? Пишите в комментариях)
👣Пример 2: Движение NPC к точке
Как использовать:
npc.move(pos(x, y, z))
Реализация:
Кстати говоря буквально тоже самое в Legacy требовало более 50 строчек, включая сохранение, проверку переменных, возврат состояния, не говоря уже о самой стейтмашине. Ну а теперь — всего 5 строк!
💬Бонус: Автоматические паузы в диалогах
Хотите, чтобы текст появлялся не мгновенно, а имел встроенную задержку после вывода в чат?
Решение:
Итог:
npc.sayAndWait("Привет, путник!") → скрипт продолжится ровно тогда, когда игрок успеет его прочитать.  
⚠️Важно: Аргументы функций обновляются каждый тик!
Сравните:
Это даёт гибкость: например, можно заставить NPC преследовать ближайшего игрока без дополнительного кода!
👉 Что думаете про такой подход? Стоит ли оставить автоматические паузы в циклах или вернуть ручное управление через yield()?
Жду ваших мнений в комментариях)
P.S. Кстати, все скрины сделаны прямо через редактор в игре :D
Прекрасно, мне кажется, что продуманность паузы именно фича, так что было бы круто видеть ее на релизе
А примеры скриптов вдохновляют, хочется попробовать их в деле, очень круто и понятно описано
Всё супер, ждём выход мода на бусти!
Subscription levels4

Передовой Хеллоу-Вордер

$2.01 per month
Приобретя эту подписку Вы сможете получить доступ к большинству постов и некоторым бета-версиям мода. Кроме того, Вам станет доступен канал для подписчиков в Discord, где я часто делюсь своими мыслями и наработками.
+ chat

Продвинутый Скриптописец

$3.4 per month
Эта подписка уже открывает посты дороже, чаще всего это доступ к всяким глобальным обновлениям, объяснениям различных сложных механик и прочих фишек мода, о которых большинству не известно. 
+ chat

Магистр Kotlin

$13.4 per month
Это уже довольно солидная цена для подписки, так что с ней у вас будет больший приоритет на голосованиях и вашим идеям и предложениям будет уделено больше внимания :)
+ chat

Верховный Спонсор

$67 per month
Интересно, зачем нужна эта подписка?
+ chat
Go up