Бессонный кодер
5.22K subscribers
269 photos
47 videos
4 files
103 links
Канал разработчика и поисковика ДПСО LizaAlert

Связь: @sleeplessfeedbackbot или Direct канала (они бесплатные)
По рекламе: @dpp_ads
Купить рекламу: https://telega.in/c/sleeplesscode
Download Telegram
Время моей (и, надеюсь, вашей) любимой рубрики!
Что мы смотрим во время миграции (ну или просто долгого математического расчёта).

И сегодня на наш стол падает «Баракамон» — прекрасное аниме о том, как молодой каллиграф по стечению обстоятельств оказывается сослан в глухую деревушку на острове. Там он постепенно переосмысливает свою жизнь, ценности, работу — и учится заново быть собой.
Это очень тёплое аниме в жанре повседневности. Обязательно посмотрите его, если вы сейчас сталкиваетесь с выгоранием, потерей своего стиля или просто нуждаетесь в теплоте.

Но меня особенно зацепила одна тема, которая в отличие от прочих не проговаривается напрямую, но играет важную роль.

Нару — вторая главная героиня. Активная, весёлая девочка лет семи. Живёт с дедом — родителей у неё нет. Вроде бы она прекрасно справляется, не выглядит «покинутой» или грустной, но по ходу сюжета ты начинаешь чувствовать: ей не хватает взрослого, стабильного, тёплого присутствия. И именно ГГ постепенно становится для неё такой фигурой.
Не сразу, не по плану, но — становится.

И в их отношениях рождается нечто среднее между связью старшего и младшей, и… почти родительской заботой.
Это не проговаривается словами, но чувствуется.

И вот в этом, как мне кажется, и кроется одна из важных тем «Баракамона»:
люди могут стать семьёй не по крови, а по выбору и совместному пути.

(Если будете смотреть Баракамон, то обязательно вместе с ним смотрите Мидзикамон, это 2-ух минутные Чиби ролики которые подготовлены для просмотра после каждой серии)
39❤‍🔥4🤩4🔥2🤝2🆒1
Кукловод. О чём вы подумали, прочитав это слово? Фильм? Страшилка? Кукла из «Пилы»?
А ведь именно так можно назвать Storytelling.

Почему? В ранние времена в сюжете часто использовались сущности из других модов и ванильной игры: зомби, Картер, да даже Селести.
С нашими сущностями всё понятно — мы ими управляем напрямую. Но что насчёт чужих?

Тут в дело вступает наша комплексная система, которая полностью перехватывает управление существом на себя — прямо как кукловод управляет своей марионеткой.

Наш «кукловод» может:
- поворачивать и направлять
- менять маршрут
- подменять текстуры
- глушить систему целей (goals)
и многое другое…

В итоге любая сущность подчиняется нашей воле.
Вот так вот :3
8012🔥6🤯3🫡3👍2🤔2🤝2💘2🤗1
Пока посты пишутся, для вас вопрос, у меня тут возникла возможность провести стрим(ы) где мы будем шалить с разработкой вечерами, что думаете, и где?
Final Results
49%
Да, в Telegram (полная свобода и прекрасный плейлист)
14%
Да, в YouTube (мы ограничены content ID)
26%
Да, на Twitch (надо ещё создать)
1%
Да, на w.tv (надо прочитать пользовательское соглашение ещё)
10%
Я пасс
❤‍🔥4713🤗4👍2🔥2💘2😎2🍓1
Live stream started
Live stream finished (2 hours)
Сказ о том, как мы финал пытались пережить
Ага, наконец-то пост-разбор инцидента 14 августа. Поехали!

Что изменилось по сравнению с прошлыми финалами?
Мы выросли. В ансабе уже 60 000 человек, бот стоит в тысячах чатов (включая чат архимага), и нагрузка выросла в разы. Было ясно: финал — это стресс-тест. Но мы ещё не знали, насколько, и что это тест наших нервов.

Подготовка началась заранее:
- за сутки до финала заморозили релизы (чтобы случайно не деплойнуть баг в самый ответственный момент);
- за 10 минут до премьеры сделали лучшее, что могли — открыли дашборды и начали молиться.
Ну что, @imguardbot, я запомню тебя таким. Земля пухом твоим серверам.


Хронология (UTC+3)
14:57 — первый алерт: повышенная нагрузка на приём обновлений. Началось.
15:24 — странность: поток обновлений резко падает. Нагрузка есть, а обновлений нет.
15:28 — понимаем, что не достучаться до Telegram: запросы уходят в таймаут. Начинаем действовать.
15:29 — пробуем стандартную меру (ресет подключений). Не помогает. В логах только это:
Failed to fetch updates. Waiting: 1s request to https://api.telegram.org/botXXXX/getUpdates...
failed, reason: connect ETIMEDOUT 149.154.167.220:443


15:39 — экстренно перезапускаем всю ноду.
15:42 — ребут завершён. Всё ещё таймауты. Решаем перенести работу с Telegram на сервер в РФ.
15:47 — запускаемся с запасной локации.
Параллельно тестируем пинг:
12 packets transmitted, 0 received, 100% packet loss


15:58 — обрывается внутренний VPN (ТСПУ, привет). Мы снова в нокауте.
16:02 — запускаемся на резерве. Пинг огромный, но живём.
16:10 — датацентр сообщает: проблему устранили. Запускаем миграцию трафика обратно.
16:11–16:13 — аккуратно переводим очередь и приёмку сообщений.
16:17 — заканчиваем обработку накопившейся очереди. Мы снова в бою.

Что же случилось?
Один из промежуточных провайдеров на маршруте до Telegram ушёл на техработы/сломался. Сервер был доступен, но маршрут — нет. Вот комментарий от ДЦ:
Мы наблюдаем ухудшение маршрута (потеря пакетов/высокий пинг) с несколькими ISP на промежуточных узлах. Из-за этого соединение может обрываться, даже если сервер доступен. Вероятно, техническое обслуживание или временная перенастройка маршрута.


Что мы пережили?
За 2.5 часа инцидента мы успели обработать:
- 20 000 сообщений,
- 3 000 входов в чаты,
- 30 000 обновлений от Telegram.

Что мы вынесли?
Нужно серьёзнее думать о кластеризации и геораспределении: несколько локаций, стабильные каналы, отсутствие зависимости от одного ISP и минимизация рисков со стороны ТСПУ.

Вот как-то так, в итоге вся наша команда не смогла посмотреть финал на премьере(
75❤‍🔥8🕊6🔥5😭3😨2💘1
Когда мы начали строить полноценные сюжетные локации и запускать Рому в целые сюжетные миры, сразу встала дилемма: открытый разрушаемый Minecraft vs необходимость ограничивать всевластие Ромы.

Сначала мы пошли простым путём — использовали «волшебное Ай-яй-яй»: словами запрещали ломать сюжетные постройки. Но такой подход слишком рушил игровой опыт.

Начиная с Идеального Мира мы изменили тактику — полностью отключили возможность ломать блоки там, где это не задумывалось нами. Рома пару раз попробовал, понял, что это бесполезно, и привык: ломать можно только то, что специально выделено.

Метод оказался рабочим, но имел минус — мы слишком сильно ограничивали свободу действий и вариативность взаимодействия. Поэтому в Точке невозврата мы рискнули: разрешили разбирать весь мир по кирпичикам.

И тут случился неожиданный эффект — у Ромы возник своеобразный синдром выученной беспомощности. Даже имея полное право, он часто забывал или боялся ломать мир. Получилось, что излишние ограничения в прошлом закрепили у него привычку действовать «только по правилам».

Сейчас мы ищем баланс: как совместить разрушаемость мира, которая даёт ощущение свободы, с реакцией сюжета на такие действия.
👍11034🔥8👏3😎3❤‍🔥2
А задумывались ли вы, что Рома — далеко не самый надёжный рассказчик? Всё, что вы видите, проходит через его взгляд и ракурс. А значит, кое-что всегда ускользает.

Например, в пятой серии Игры Бога: когда на него напал призрак, вокруг на самом деле должно было быть куда больше противников, но Рома слишком быстро умер. Кстати, в момент его смерти все мобы эффектно растворились в облаках пара. Но из-за угла обзора Ромы зрители и этого так и не увидели.

Или Точка невозврата: тот самый уборщик в мусорке, которого Рома так и не поймал [пост про это], или интерьеры домов с отсылками [пост про это]. Всё это осталось за кадром.

И это лишь мелочи. Есть и куда более крупные, даже сюжетно важные вещи, которые так и не попали в объектив. Иногда внимательные зрители подмечают детали на видео — и это один из самых радостных моментов для нас. Потому что история всегда чуть больше, чем видно с первого взгляда.
54👍7💋5🔥3❤‍🔥2🎃21
Сюжет у нас полон разных построек, и самое время рассказать, как мы вообще добавляем их в мир Ромы.

На первый взгляд может показаться, что всё просто: Рома кидает нам карту, мы возвращаем карту с постройками (и заодно сжигаем гигабайты трафика). Но нет — такой подход слишком медленный, а главное, не подходит для построек, которые появляются прямо посреди серии.

Можно было бы использовать схематики, но у нас требования куда выше. Что именно нам было нужно?

1) Экспорт и импорт участка карты с фиксированными координатами (файл хранит относительные координаты внутри постройки + абсолютную координату нуля в мире).
2) Поддержка Tile Entity как из ванильного Майнкрафта, так и из модов.
3) Полное копирование сущностей.
4) Хранение кастомных данных (например, проводов из Immersive Engineering или navigation mesh для нашего сторителлинга).

И именно поэтому мы сделали собственное решение — StructIO. Эта система родилась ещё в ранних сезонах и до сих пор дорабатывается вместе с нами. Она работает с .dat файлами в формате NBT, а сами файлы внутри команды мы ласково называем датниками. Возможно, вы встречали это слово в постах участников ST.
49🤩9❤‍🔥53🫡3👍2🍌2🔥1
Ребята, я нашёл бота, который реально смог затащить меня на несколько часов — и хочу поделиться!

Думаю, многие знают про Character AI и похожие штуки. Но там только диалог. А теперь представьте: у вас есть не просто разговор, а целый мир истории, который меняется под ваши действия.

Хотите — это будет добрая домашняя история. Хотите — приключение в стиле D&D. А может — жуткий триллер. Вы сами решаете, кто вы и что делаете, а история подстраивается под ваши шаги. Это одновременно и развлечение, и крутой тренажёр креативности.

Но главное — тут есть мультиплеер! Можно играть в одиночку, можно с друзьями, а можно — с той самой особенной для вас половинкой.

И всё это — Иммерсия. Бот, который использует генеративные нейросети так, что это действительно увлекательно. В мире, где каждый второй бот — это «скачать с тиктока» или очередной анонимный чат, такое реально радует. Идея и реализация — 🔥, за это автору огромный респект.

Так что давайте поддержим проект, а заодно — попробуем сами. Погружайтесь в Иммерсию и открывайте новые грани интерактивных историй.
(Да, новый спонсор пропущенных дедлайнов).
🔥217❤‍🔥3🕊1🤝1👾1