Шеф Code | Gamedev 👨‍🍳
208 subscribers
206 photos
7 videos
22 links
Download Telegram
🌓 Поздравьте меня, вроде я восстановил график и сегодня не доделываю видео в ночи, а уже полностью с ним справился. Процессы потихоньку стабилизируются.

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

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

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

📺 А у вас бывает такое, что открываете свой код двухмесячной давности и удивляетесь объему?
🎉71
Почему это игнорируют?

Вчера, смотря на объём написанного кода, я задумался вот о чём. Нас (разработчиков) с самого начала учат что надо писать чисто и красиво. Но что это вообще значит на практике? Почему один код считается чистым, а другой — лютым говном? 😨

Если вспомнить, как этот феномен объясняют в бизнесе, то всё сводится к одной простой истине. Бизнес меняется и надо быть к этому готовым. Именно поэтому в энтерпрайзе, где сервисы развиваются десятилетиями, нас учат проектировать через архитектуру, использовать паттерны и соблюдать SOLID. Главный критерий чистоты кода здесь это его способность адаптироваться к изменениям. Чем легче и безболезненнее кодовая база принимает новые фичи, тем она чище. Прямая корреляция.

И вот какая мысль не даёт мне покоя. Если в коммерческой разработке адаптивность вбивают в голову со старта, то почему в геймдеве этой теме вообще не уделяют должного внимания?

Ведь геймдев меняется в сто раз быстрее и хаотичнее любого бизнеса! В бизнесе требования хоть как-то фиксируются. В геймдеве главный критерий это фан. Поиграли в прототип, стало не весело удаляем фичу к чертям. Провели плейтест, нашли крутую механику полностью меняем вектор. Всё режется, переписывается и перекраивается чуть ли не каждый день.

🤔 По логике, именно в геймдеве нужно кричать изо всех утюгов о том, как важно с самого начала писать адаптивный код и подкладывать соломку на случай резких изменений курса. Но почему-то большинство на это забивает?

🤨 Приходилось ли вам хоронить проекты из-за того, что код просто не вывез внезапных изменений в геймдизайне?
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤨1
Наткнулся тут на видео старых матчей Хартстоуна, как раз времен Ктуна и Йогг-Сарона. Кто помнит эту эпоху рандома?

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

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

В Deckart я заложил точно такой же процесс, хотя на Хартстоун в момент проектирования даже не ориентировался. Сначала домен просчитывает всю математику, собирает цепочку событий, а визуал просто идет следом по рельсам. Посмотрим, как это покажет себя в реальном бою, но разделение логики и отображения уже сейчас экономит кучу нервов.

📺 А вы обращали внимание на такие рассинхроны логики и анимаций в карточных играх?
2
Чем больше я рассказываю, тем больше подмечаю косяков. Пока собираешь контент и смотришь на проект со стороны, в бэклоге сам собой накопился список задач на месяцы вперед.

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

Проговаривание логики на аудиторию сработало как жесткое ТЗ для самого себя. Теперь фронт работ предельно понятен, осталось просто сесть и методично закрывать таски.

А у вас бывало так, что публичное ведение проекта или рассказы о нем заставляли переписать половину планов?
3
Кстати, насчет бэклога, последние месяцы я расслабился и копил все задачи в голове, и это моя катастрофическая ошибка. В самом начале разработки я вел микродоску прямо на холсте, но сейчас разленился и начал упускать из виду тонну важных штук. Без нормального контроля вести проект тяжело.

Для тех, кто не в курсе: в менеджменте проектов есть классная штука под названием канбан, и главная её часть это доска. Можно вообще не разбираться в методологиях, сама доска простая до безумия.

Суть - вы делите пространство на три колонки: «Нужно сделать», «В работе» и «Готово». Каждая задача это отдельная карточка. Появилась идея или баг, кидаете в первую колонку. Сели за работу, перетащили карточку в статус «В работе». Закончили, передвинули в «Готово». Всё. Вы наглядно видите весь масштаб катастрофы, понимаете, над чем сидите прямо сейчас, и не держите этот мусор в голове.

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

Там открылся супер старый борд, 2020 год, помните еще то время? А на доске висят детальные планы, как я буду делать свой блог и писать в нем посты, вот прямо как делаю сейчас. Емае, я помнил, что задумывал это давно, но чтобы настолько! Шесть лет прошло, и вот только сейчас пошло-поехало.

Короче какой вывод, если очень сильно хотеть, то задуманное точно сбудется, рано или поздно.

П.С. игру я тоже очень хочу сделать, надеюсь не придется ждать 6 лет 😏
6🔥1
Летал в симуляторе, и поймал себя на мысли, что игры тут, по сути, нет.

Никаких квестов, экспы, сюжета и полосок хп. Есть ты, физика и бетонный столб, в который ты влетаешь каждые пару минут. Удар - рестарт, снова снова и снова. Но оторваться почему-то не получается.

В геймдизайне есть такая штука - мастерство. Это когда игра цепляет тебя не фантиками, а твоим собственным ростом.

Большинство современных игр нас просто обманывают. Подсовывают суррогат, циферки урона растут, пушка начинает светиться фиолетовым, перс качается. Но ты-то понимаешь, что скилловее ты не стал.

В симуляторах этой фальши нет. Тут качается не пиксельный человечек, а твои собственные нейронные связи.

И когда ты после сотни падений наконец чисто пролетаешь узкую щель на скорости, игра не выдает тебе ачивку. Твоя награда вот это тихое внутреннее Я МОГУ.

Короче, записал под это дело небольшое видео. Залетайте глянуть.

https://www.instagram.com/reel/DZEyD8-MS1p/?igsh=cHM0eWh0cjNmeTM2
🔥41
Вчера люто поработал, почти доделал боёвку.

+1851
-2122

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

Получилось ловко. Воин бьёт ближайшего и контратакует, лучник стреляет тоже в ближайшего, но без ответки. Коэффициенты урона и защиты зависят от тира. Если понадобится добавить новый тип юнита, это будет просто новый класс поведения плюс строчка в фабрике, а SimulationState мы вообще не трогаем.

События, как и раньше, выплевываются по шагам, а UI на них только смотрит и отображает. Осталось допилить полировку и закрыть крайние кейсы.
6
🃏 Сегодняшний день не стал исключением — снова написал и переписал кучу кода, и теперь боёвка под капотом мне прямо нравится. Буду подробно рассказывать про неё в ближайших вечерних видосиках. Конечно, поймал чистый эстетический балдеж от того, как легко и правильно лёг код. Если вы понимаете это чувство разработчика, то это очень круто!

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

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

П.С. Приехал новый микрофон, а то в комментах частенько жаловались на эхо. На днях испробую, посмотрим на результат!

📺 А у вас бывало такое чувство, когда код ложится настолько идеально, что сидишь и просто любуешься архитектурой?
👍41🔥1
В 2008 году вышел первый Dead Space. Мне тогда было 12 лет. Я помню тотальное погружение и сильный страх, пока не привык к игре. Она пугала сильнее обычного, потому что авторы убрали привычные меню с экрана.

Вспомните подачу информации. Здоровье сделали как светящуюся шкалу на позвоночнике костюма. Запас стазиса стал индикатором на лопатке. Голограммы инвентаря и карты проецировались из маски персонажа прямо в воздух.

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

Зачем это нужно геймдизайну? Так убирается барьер между человеком и игрой. В углу экрана нет полосок хп и иконок оружия. Взгляд смотрит только в центр экрана на само действие.

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

В каких еще играх вы видели интерфейс, который разработчики вшили в реальность игрового мира?
🔥42👍2
Наконец прошел Days Gone!

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

У меня есть предположение как разработчики это сделали.

Вся толпа работает как один единый рой. Игра не считает мозги и физику для каждого фрика отдельно. Иначе процессор бы умер. Просчитывается движение всей массы целиком. У орды есть одна общая цель, бежать за игроком. А фрики внутри толпы просто смотрят на соседей и бегут рядом.

Но мы же можем убивать их по одному. Как тогда это работает?

Допустим делаем конвейер. Пока фрики просто бегут стеной, они упрощены. Но как только ты стреляешь в конкретного фрика, игра на лету выдергивает его из массы. Для него сразу включается личная физика и анимация попадания. Он отлетает, а остальные бегут дальше по простым правилам роя. Игра включает честный просчет только в момент твоего выстрела.

С анимациями тоже возможно схитрили. Передние фрикеры двигаются качественно, мы их видим близко. А те, кто бежит сзади в толпе и пыли, двигаются группами и намного проще. Хотя я так и не заметил.

Получился какой то хитрый баланс оптимизации. Толпа кажется живой и движок справляется. Чудо...

А вы как бы сделали такую систему, если бы перед вами стояла задача запустить 500 активных юнитов в одной сцене? Какие хитрости использовали бы?
2🔥2
Сегодня снова телега про иммерсивность или глубину интеграции игрока в виртуальную среду. Это когда сознание игнорирует комнату с монитором и верит в симуляцию.

На эту иллюзию работают три фундаментальных фактора:

1️⃣ Диегетический интерфейс (или его отсутствие). Никаких карт и всплывающих окон. Только чистый визуал.

2⃣ Аутентичность окружения. Логичное поведение света, теней и текстур, которые мозг считывает как осязаемые.

3⃣ Акустический объем. Звуковые отражения, эхо и шорохи, которые позиционируют игрока в пространстве.

Когда геймдизайнер сводит эти три точки вместе, включается абсолютное погружение.

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

https://www.instagram.com/reel/DZSBd_dMUrA/?igsh=MXR1ZXd4enZ5bDlxNg==
5🔥3
Уже несколько раз вы меня спрашивали в комментариях, какие ассеты я использую для цветных папок и game object-ов.
Это правда полезные ассеты, чтобы быстрее ориентироваться при разработке игры. И к тому же ни за одну из них не нужно платить.
Сейчас покажу.
Заходим на assetstore.unity.com, в поиске вбиваем

1. Folder Customizer.
Этот ассет может менять цвет фона для имён папок в инспекторе и ставить кастомный бекграунд на их фон.

2. Folder Color.
Этот ассет может задавать самим иконкам папок цвет, а так же можно менять иконки на кастомные, то есть загрузить что душе угодно.

3. И наконец Colourful Hierarchy Category GameObject.
Данный ассет может поменять цвет фона и текста gameObject-а на какой угодно, стоит лишь разобраться в легких настройках.
Нужно найти файл Color Palette, и в нём указать какой символ как будет красить объект. Потом нужно лишь добавить этот символ перед именем гейм обжекта. Например //CAMERA.

Про это все снял отпадный видос, я сам в шоке от того как получилось! Завтра сниму про Colourful Hierarchy Category GameObject. А пока про первые два -

День 57/100. Подключаем FolderColor к своему проекту!
https://www.instagram.com/reel/DZVIBPEMDlr/?igsh=MWVsdHN0aDNuNWJ0aA==
5🔥2
Разбавлю тему геймдева. Сегодня про соседствующий процесс, про видосикомейкинг.

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

В остальном процесс съемки и монтажа стал в разы быстрее. Теперь я четко знаю, что делать, и вообще не туплю. Выдавать по видосу в день это сейчас не так уж и сложно. Главное тут просто постоянство.

Кто то из вас хотел тоже начать снимать видео? Пробовали уже делать первые шаги или что то останавливает?
6🔥2
Че то я не понял, подсказывайте!

Сижу монтирую видео на вечер про хот релоад, думал что он бесплатный а он оказывается стоит аж 80 долларов, хотя по описанию он должен быть бесплатным для инди. У меня конечно получилось скачать через пакет или гит, но ассет стор подвел, там не нашел возможности. Что сейчас с этим плагином кто в курсе?

А для тех кто вообще не сечет - хот релоад это такая штука, которая позволяет менять код прямо во время запущенной игры.

Обычно в Unity как происходит. Ты написал строчку кода, возвращаешься в движок и сидишь ждешь. Игра замирает, крутится колесико компиляции, проект перезагружает все свои мозги. Это дико бесит и тратит кучу времени, особенно когда надо просто поправить одну цифру в формуле урона или поменять скорость полета стрелы.

Да и вообще как вам формат магазина на диване? Поделитесь фидбеком, куда мне дальше двигаться...
2
Сегодня про Memory Profiler в Unity. Это официальный плагин, ставится через Package Manager за минуту. Многие туда вообще не лазят, думая, что там какая-то жесть, но на самом деле всё просто. Эта штука делает снимок всей оперативки прямо во время игры и наглядно показывает, что сколько весит.

Мне эта тема еще в бэкенде дико помогала при поисках утечек памяти, а в Unity всё сделали еще проще и визуальнее.

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

Пользуетесь вообще этой темой или до последнего на глаз всё оптимизируете?
2🔥1
Собянин решил бордюр и на моей даче поменять!

Ну, а если по делу, то сегодня я счастливый фермер. Тут не до геймдева, траву покоси, костер разведи, мясо пожарь! Хороших выходных всем!

П.с. я успел сделать видосик сегодняшнего дня, так что скоро выйдет
🕊42
Возмущен тем, почему за каждый чих нужно платить в юнити. Чтобы посмотреть отчет билда плати, хочешь хот релоад плати. Это очень неприятно. В любом случае я нашел, где все покупать брать....

Расскажу про билд репорт тул. Я так понял, при билде, если открыть через консоль подробности, можно вычитать билд репорт. В нем куча инфы, но все плоское и нечитаемое. Можно, конечно, и там покопаться, но для удобства разок можно и ассет использовать.

Так вот, Build Report Tool берет эти данные и показывает в виде разных метрик. Он считает за тебя процентики и дает удобные фильтры. Плюс, что немаловажно, подсвечивает, какие файлы вообще не используются, но в билд попали. Можно подчистить перед релизом.

Но покупать... хз, только если как дань уважения разработчикам. Хотя, имхо, такое должно быть из коробки, а не так с рынка.
1🤬1