Бессонный кодер
4.85K subscribers
314 photos
61 videos
5 files
126 links
Канал разработчика и поисковика ДПСО LizaAlert

Связь: @sleeplessfeedbackbot или Direct канала (они бесплатные)
По рекламе: @dpp_ads
Купить рекламу: https://telega.in/c/sleeplesscode
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Ну что ребята, время вернутся на работу/учёбу.

Как проводите первый рабочий день?
🥰5913🔥9❤‍🔥3💯2😢1💋1😇1
Ну что, хеппи бёздей ту ми.

Не успел подвести итоги года (пытаюсь доделать статы, но меня мучает работа), а уже пора подводить итоги моего очередного года.
В целом, этот год был очень интересен и необычен, закончилось несколько больших вех моей жизни и начались ещё несколько других.
Я наконец закончил образование и начал работать полноценно, а не в отрыве от учёбы, да и начал налаживать другие аспекты жизни.
Посмотрим что из этого выйдет, ну а я пока пойду смотреть, что за задача перепала мне в джире.

Надеюсь, увидимся уже совсем скоро, ведь я очень хочу наконец полноценно ожить и радовать вас интересным и познавательным контентом)
87🎉45🔥10💊3❤‍🔥2
Немного позже, чем я планировал (почти на месяц), но бывает — я тут воевал с РКН, так что можно простить 😅
Как и обещал, статистика за 2025 год!

Начнём с моего мучителя и кошмара — Имперского стражника.
Репорты
И, как показывает интересная статистика, лишь около половины репортов получает итоговую оценку от модераторов. Грустно, но понятно, учитывая их общее количество :3
Репортов отправлено — 23 800
Одобрено репортов — 4 300
Отклонено репортов — 4 500

Ограничения
Баны модераторы, судя по всему, любят больше других мер наказания, что довольно… критично 😄
Выдано блокировок — 63 000
Удалено ограничений — 5 000
Выдано мутов — 21 000
Выдано заметок — 2 500
Выдано предупреждений — 40 000

Взаимодействия
Входов в чаты — 131 000
Поймано рейдов — 400
Сообщений обработано — 27 000 000

Базовая статистика
Пользователей — 880 000
Каналов — 18 000
Файлов проверено — 13 000 000

А теперь посмотрим, как поживает мой случайно родившийся пет — MembersLoggerBot:
Событий обработано — 120 000
Чатов — 217

Как там наш малоизвестный, но очень милый My Stickers?
Стикеров добавлено — 5 300
Пользователей — 2 000

Ну и как я мог забыть легенду — Подпольного транскриптора?
Чатов — 2 100
Пользователей — 500 000

И под конец — самый локально известный и активный: бот апелляций лолофд.
Обработано апелляций — 3 000

Топ причин апелляций:
По вопросам блокировок в ансабе — 1 700
По прочим причинам (помощь в трудной ситуации или уточнение, куда задать вопрос) — 800
По вопросам блокировок в СФЧ — 200
37🤔6💘4🍓2
Многие думают и интересуются, как много мы вообще работаем и насколько большой Storytelling. Кажется, настало время поделиться размерами сезонов и рассказать о том, что мы делаем помимо непосредственной работы над ними.

История Storytelling началась с Игры Бога. За этот сезон было сделано 643 коммита, в рамках которых создано 3 555 файлов. Из них 505 — Java-классы, а это 82 041 строка Java-кода и 1 932 строки комментариев. Неплохое начало, не так ли?

Дальше был Идеальный мир — сезон, который стал любимым для многих. Самое важное в нём — мы начали относиться к Storytelling как к движку для создания сюжетов. Появились абстракции, API, систематизация, попытка упростить жизнь себе в будущем. Параллельно мы начали активно расширять штат кодеров, что позволило делать больше и интереснее, сохраняя частоту выхода серий.
За сезон было сделано 1 447 коммитов, создано 11 364 файла, из них 938 — Java-классы. Это 202 765 строк Java-кода и 14 046 строк комментариев.

Следом идёт Голос Времени. Здесь большой фокус был на геймплее и визуале: прокачка, частицы, динамичные катсцены. Как бы ни была важна удобная разработка, в первую очередь важно то, что видят зрители.
За сезон: 894 коммита, 6 218 файлов, 1 091 Java-класс, 179 072 строки Java-кода и 30 583 строки комментариев.

Затем пришли Тринадцать Огней. Мы начали сильнее связывать сюжет и действия Ромы, продолжая прокачивать визуал — что, конечно, аукнулось. В некоторых сценах FPS на мощных ПК мог проседать до 10, а легендарные 750 тысяч стульев появились не просто так :3
За сезон: 1 666 коммитов, 12 460 файлов, 1 224 Java-класса, 227 539 строк Java-кода, 31 707 строк комментариев и 4 строки шейдеров.

Далее — Последняя Реальность. Здесь мы поняли: движок тоже должен развиваться. Сезон стал точкой глобальной переработки ядра, которое частично не менялось со времён Игры Бога.
Появилась система времени с жёсткой сюжетной привязкой: движок понимал день и ночь, часы и минуты, и в зависимости от этого корректировал поведение всех персонажей. Те, кого видел Рома, жили своей жизнью — ходили на работу, учёбу, отдыхали. У второ- и третьестепенных персонажей появился детально проработанный распорядок дня (и головная боль для нас).
Появился смартфон — кажущееся мелочью решение, но каждое приложение было отдельной системой. Даже обсуждалась идея вынести его в отдельный мод.
За сезон: 3 726 коммитов, 22 314 файлов, 2 076 Java-классов, 382 390 строк Java-кода, 41 746 строк комментариев и 4 строки шейдеров.

Далее — Сердце Вселенной. Мы решили, что сюжета много, а геймплея всё ещё мало. Формат сменился: Рома перестал просто общаться и выполнять поручения — он начал выживать. Эксперимент удался, Роме понравилось, и это стало новой точкой роста.
Также сезон стал важным этапом рефакторинга: ядро было оптимизировано и уменьшено.
За сезон: 2 464 коммита, 13 658 файлов, 1 525 Java-классов, 270 117 строк Java-кода, 10 строк шейдеров и 17 974 строки комментариев.

Почти настоящее время — Точка Невозврата. Мы пошли ва-банк и лишили Рому привычных механик, полностью завязав выживание на наши собственные системы. Дерзко, необычно и очень весело в разработке.
Появилась система бункера, зависимость состояния мира от действий Ромы, а также огромный скачок в визуале: шейдеры, освещение, погодные эффекты — всё это работало в реальном времени, а не на монтаже.
За сезон: 6 596 коммитов, 35 128 файлов, 2 594 Java-класса, 422 215 строк Java-кода, 302 строки шейдеров и 32 536 строк комментариев.

Продолжение следует...
🔥8522❤‍🔥9👏4👍1
Продолжаем рассказывать вам о размерах наших сезонов и не только!

И вот мы в настоящем — Мастерская 47. Сезон, где мы решили перевернуть всё и попробовать интеграцию с RTS. Предпосылки шли давно, особенно в Точке Невозврата. Мы продолжили активно работать над визуалом: собственный GUI, обновлённые модели, катсцены.
Важно: здесь учитываются только коммиты Storytelling (ядро + сюжет), без учёта доработок RTS-мода. Статистика приведена на 20.01.2026, сезон продолжается.
За это время: 1 788 коммитов, 14 300 файлов, 2 354 Java-класса, 252 037 строк Java-кода, 414 строк шейдеров и 17 673 строки комментариев.

И наконец, последний, но не по важности, наш необычный эксперимент, сезон Торговка тайнами. Ответвление от Ромы, с идеей попробовать то, что мы никогда бы не смогли внедрить в рамках основной ветки сюжетных сезонов.
Тут у нас за 20 серий вышло 370 коммитов, 2833 файла в которых было 65.443 строки java кода.


Но вы правда думали, что на этом работа заканчивается? Конечно нет.
Помимо сезонов, мы делаем моды, утилиты, библиотеки и сервисы.
Чтобы не расписывать про всё отдельно (это будет слишком много текста, да и не о всём можно рассказать, мы объединим всё в категории).
А самое главное, тут уже нарушается мнение о нас, как о жёстких джавистах, ведь в нашем стеке есть и другие языки.

ST Communal
Веб-сервисы, CI-конфиги, интеграции YouTrack, Telegram-боты, API и внутренние сайты. Всё, что упрощает совместную работу и доступ к инструментам из регионов с плохой связностью.
478 коммитов, 1 525 файлов,
4 880 строк TypeScript, 4 885 строк Vue, 1 451 строка Java, 1 019 строк Kotlin.

ST Utilitary
Утилиты вне основной сетевой инфраструктуры. Например, наш плагин для IDEA с расширенной подсветкой, макросами и кодогенерацией.
185 коммитов, 984 файла, 2 114 строк Kotlin, 5 253 строки Java.

Моды
Выпущенный мод на машину и несколько готовящихся проектов, о которых мы вам расскажем уже совсем скоро!
103 коммита, 1 048 файлов, 18 750 строк Java-кода.

Вот как-то так. Надеюсь, вам было интересно и познавательно.
А я пошёл писать ещё пару сотен строк, пытаясь наладить инфраструктуру в мире, где подключения могут случайно обрываться по воле всевышних сил.
72🥰8❤‍🔥5🔥3🤩1🙊1
И так ребята, спустя долгое время, несколько судов, большого количества споров и сотен листов документов, наконец я получил этого героя. Теперь можно и за посты вернуться.
173🤯43🎉15🤡5🫡2💘2❤‍🔥1
Media is too big
VIEW IN TELEGRAM
ТАК, угадайте кто снова с вами! Да, я наконец сократил список задач и пишу снова постики для вас!
А что может быть лучше, чем интересный цикл постов?) Цикл постов, в подготовке которого мне пришлось изучать дополнительную литературу.
Кстати, читатели моего чатика уже получали спойлеры на этот счёт, не пропускайте)

Смерти, давайте поговорим немного о них. Замечали как тема смерти стала привычной и даже будничной в играх и кинематографе.
Мы не удивляемся если умирает кто-то, ну или удивляемся если это Джоэл. Можно даже сказать что даже ваша собственная смерть стала будничной вещью в многих играх.

Мы умираем постоянно. В первые минуты, в середине уровня, перед самым концом.
По своей ошибке, из-за неверного тайминга, плохого решения, невнимательности, пролага, низкого тикрейта, автомобиля пролетевшего через голову (смотрите видео) или просто потому, что ещё не поняли, «как здесь принято играть».
И каждый раз игра реагирует одинаково спокойно: она не драматизирует (если это не игровое кинцо) и не объясняет — она просто перезапускает процесс.

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

Большинство игр визуализируют неудачу именно как смерть аватара. Не «ошибку», не «неверное действие», а именно гибель тела, через которое игрок присутствует в мире. Камера падает, персонаж распадается, исчезает, замирает — и тем самым игра переводит абстрактную неудачу в наглядный, телесный акт.

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

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

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

И дальше возникает более тревожный вопрос: если смерть в игре — это норма, если она встроена в обучение, повторение и прогресс, то что именно мы на самом деле испытываем, когда умираем?
🔥30🤔74❤‍🔥2
Когда мы начинаем говорить о испытываемых чувствах, мы переходим из анализа медиа и технологий, в анализ психологический. И тут нам поможет... ребёнок 😁 А если быть точным, наблюдение за ним.

Мы обратимся к исследованиям Зигмунда Фрейда (у меня интересный набор книг в литресе). Он описывает простую сцену:
У ребенка была деревянная катушка с намотанной на нее бечевкой. Ему никогда не приходило в голову, например, таскать ее за собой по полу, то есть поиграть в тележку, но он с большой ловкостью, держа катушку за веревочку, бросал ее за край своей кроватки, в результате чего она там исчезала; при этом он произносил свое многозначительное «о-о-о-о», а затем снова вытаскивал катушку за бечевку из кровати, приветствуя на этот раз ее появление радостным «вот». В этом и заключалась вся игра – в исчезновении и возвращении, из которых обычно удавалось наблюдать только первое действие. Оно само по себе без устали повторялось в качестве игры, хотя большее удовольствие, несомненно, было связано со вторым актом.


На первый взгляд — крайне примитивная игра, но в ней есть принципиальный и важный момент: ребёнок воспроизводит ситуацию утраты, ситуацию в которой у него нет власти, и делает это сам. Он не может контролировать уход матери, но может контролировать исчезновение игрушки. Потеря превращается в действие. Боль — в повторяемый жест.

Здесь важно не само возвращение, а цикл.
Присутствие —> отсутствие —> присутствие.

И если вернуться в мир видеоигр, мы видим именно этот цикл.
Появление на уровне Geometry Dash — присутствие.
Смерть от первого шипа — отсутствие.
Перезапуск уровня — присутствие.

В момент смерти игрок теряет контроль. Камера падает (в случае игр где камера держит перспективу игрока), управление исчезает, действие прерывается. Это всегда ощущается одинаково: что-то пошло не так, и мир больше не отвечает. А затем контроль возвращается — но уже с поправкой на пережитое.

Важно, что игра почти никогда не лишает игрока возможности повторить. Она не говорит: «ты проиграл». Она говорит: «снова». И в этом «снова» заключён весь смысл.

Игрок, как и ребёнок в fort-da, не пытается избежать потери. Он воспроизводит её. Снова заходит в ту же ситуацию, снова рискует, снова умирает — но уже с небольшим смещением. Чуть раньше нажал кнопку. Чуть иначе выбрал маршрут. Чуть лучше понял правила уровня.

Поэтому смерть в игре не разрушает процесс, а запускает его.
Она не противоположна игре — она встроена в неё.
Как отсутствие встроено в присутствие.
И если убрать смерть — убрать возможность потерять контроль — игра перестаёт работать именно на этом, глубинном уровне. Она больше не позволяет прожить утрату и вернуть себе агентность через повтор.

Поэтому ключевая мысль здесь довольно неприятная, но честная:
мы играем не ради победы.
Мы играем, чтобы снова и снова переживать потерю —
но уже на своих условиях.
Вы конечно можете сказать, что вы играете ради победы, но будет ли сладка так победа, если она досталась вам просто, об этом мы поговорим дальше.
42🔥12🥰4❤‍🔥2
Но перед тем как говорить о сладости победы и её сложности, давайте отметим для себя ещё одну важную структуру. «Сохранение — смерть — перезагрузка» — это не просто механика.
Это способ, которым игра организует наше мышление.

Если проследить эволюцию, картина получается довольно аккуратной и даже в каком-то образе линейной.
Аркадные автоматы с тремя жизнями. Умер — минус одна. Но ты всё ещё в игровом мире, в системе игры.
Домашние консоли — сохранения. Можно остановиться, зафиксировать прогресс, вернуться.
Современные игры — автосейвы, чекпоинты, мгновенный респаун.
Но при этом, такую эволюцию нельзя назвать аркадизацией, ведь пропрционально облегчению процесса сохранения, линейно, а где-то и геометрически растёт сложность.

И это довольно важный сдвиг. В большинстве цифровых игр смерть перестаёт быть финалом. Она становится операцией внутри цикла. Временной остановкой процесса, а не его обрывом. Даже надпись «Game Over» всё чаще обозначает «возврат к последней точке сохранения», а не «всё закончено».

Чекпоинты, автосейвы и даже ручное сохранение — это не просто удобство. Это архитектура уверенности. Игрок знает: риск допустим, потому что система предусматривает возвращение. Можно идти в неизвестность, потому что за спиной есть точка восстановления, но и полностью на неё — пологаться нелья, ведь между сместью и точкой может быть достаточно большой или сложный путь.

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

Отсюда и ключевой эффект: игрок не боится умирать так, как боялся бы в другой системе. Он раздражается, злится, устает — но почти всегда нажимает «продолжить».
44🔥4💩4❤‍🔥1
Давайте теперь поговорим об сладости победы посредством её сложности, и тут мы встречаем важный камень преткновения:

Walkthrough — гайды, которые детально описывают маршруты и стратегии прохождения уровней, с одной стороны, это подсказка и помощь, но с другой — негативный модификатор к ощущениям от победы.

Это буквально игра без неопределённости. В обычной ситуации игрок входит в новый уровень, новое пространство — и не знает его тайн, не знает как пройти к концу уровня, не знает за какой стеной или углом будет находиться враг или скример, не знает в каком сундуке найдёт рычаг от двери. Но игрок пробует, ошибается, умирает и возвращается, корректируя стратегию.

Такой подход к образованию навыков — наращивание репертуара игрока. Как музыканты, они учатся и запоминают, изучают аккорды и целые композиции, тем самым пополняя свой репертуар, тоже самое работает и с игроком, он учится и пополняет свой репертуар новыми ударами, новыми прыжками или даже полноценными стратегиями.

Но что происходит когда мы играем по walkthrough гайду. Эта часть игры пропадает, мы заранее знаем где рычаг, мы знаем когда сделать шаг назад или какой билд персонажа правильный для этого босса. Наш репертуар уже почти идеален, но мы не получаем удовольствия от процесса его изучения и познания. Это не твой опыт игры, это опыт игры автора гайда.

И что самое важное, в таких гайдах почти никогда не показаны смерти игрока, мы видим только траекторию успеха, что ограждает нас от опыта подобного опыту игры fort-da.

Но при этом, назвать такие гайды полностью плохими и бесполезными тоже нельзя, ведь они помогают в случаях когда разработчик допустил ошибку или игрок попал в логический тупик. Такой опыт был и у меня в The Last of Us, на уровне перед школой Линкольна, был завал автобусов и наступление орды заражённых, я сделал почти пол десятка попыток пройти уровень: пытался убежать, отстреляться, отбиться, увернуть. Но когда я всё-таки сдался и посмотрел walkthrough этого момента, оказалось что в момент появления орды надо было запрыгнуть на автобус.
А почему я не пробовал это? Потому что я пытался запрыгнуть на него до появления орды, не смог, и пометил этот путь как полностью недоступный навсегда.

В этом и возникает этическое напряжение.

С одной стороны, гайд — это инструмент. Он экономит время, снижает фрустрацию, делает игру доступнее. В сложных системах он может быть необходим. Это ускорение.

С другой стороны, он меняет структуру переживания. Он сокращает зону риска. Он уменьшает вероятность смерти — а вместе с ней и необходимость пересобирать свою стратегию. Мастерство в таком режиме формируется иначе: не через столкновение с пределом, а через следование инструкции.

Тогда возникает вопрос: если ты прошёл игру, не сталкиваясь с апорией, если ты не пережил собственных неудач, это то же самое мастерство? Давайте обсудим этот вопрос в комментариях.
131❤‍🔥2🔥2
И говоря об всём этом, мы переходим к главному вопросу, который задают не игроки — игрокам: ты видишь и делаешь одно и тоже, тебе это действительно нравится (не надоело)?

На уровне здравого (но не знающего) смысла это звучит абсурдно.
Повтор — рутина, ошибка — раздражение, смерть — провал.
Но в играх это повторение — не проблема, а часть процесса.

Если присмотреться, игры буквально построены на повторе одного и того же набора действий. Выбор точки —> Высадка —> Быстрый лут —> Занятие позиции —> Отстрел соперников —> Перемещение к центру зоны —> Смерть или winner winner chicken dinner. Насколько бы не были большими карты, ты постепенно запоминаешь их и каждый поворот становится знакомым, каждое оружие — узнаваемым, каждый соперник — предсказуемым.

В этом и есть эстетика повторения: мир не меняется, меняешься ты.

С психологической точки зрения, тут включается довольно понятный механизм. Так называемое частичное подкрепление. Награда не гарантирована, но возможна. Иногда ты проходишь дальше и побеждаешь, иногда ты не доходишь даже до топ-10. Если бы успех был гарантирован, игра потеряла бы остатки напряжения.

К этому добавляется психологический диссонанс. Ты проиграл — значит. что-то сделал неправильно. И возникает внутреннее давление: исправить, доказать, сделать лучше. Отсюда и желание продолжать играть.

Поэтому повтор не воспринимается как пустая цикличность. Он воспринимается как постепенное приближение. Даже если это приближение измеряется секундами выживания или одним удачным уклонением. Но тут важна оговорка, чрезмерная цикличность тоже не идеальна и не подходит всем игрокам. Лучший пример — ваше солнышко. Я не люблю CS, Valorant и подобные тактические шутеры, так как в них как раз есть эта чрезмерная цикличность где упор идёт на скилл, НО, пару месяцев назад ваше солнышко открыло для себя PUBG и застряло в нём. (уже собрал 67 часов игры)

И тут открывается интересная вещь — я вообще не люблю шутеры, да и PvP игры в целом, но тут, что-то было изменено в формуле и мне понравилось, как закончу изучать, я обязательно напишу пост об этом, ну а сейчас, в качестве подношения ловите пару записей :3
227❤‍🔥2🔥1