Шеф Code | Gamedev 👨‍🍳
207 subscribers
206 photos
7 videos
22 links
Download Telegram
Хорош про медийку, пора раздать полезности. Начнем с базы, которая делает мир живым.

Деск-джампинг: Почему игроки ломают ваши планы 🤸‍♂️


🏃 Смотрите, я прыгаю на столе! Почему? Да просто потому, что мне никто не запрещает и я это могу.

🧩 В геймдизайне есть понятие деск-джампинг. Это когда игрок делает совсем не то, что от него ждут. Дизайнер расставил стулья, зажег свечи и ждет эпичный диалог с NPC, а вы в это время запрыгиваете на стол и пинаете тарелку с фруктами.

Почему мы это делаем?

🧱 Проверка границ. Первое, что делает игрок в новом мире — проверяет его на прочность. Можно ли разбить вазу? Залезть на шкаф? Если игра на все говорит нет, магия погружения ломается.

🎭 Манифест свободы. Игрок не всегда хочет быть героем. Иногда хочется просто похулиганить. Когда дизайнер разрешает устроить хаос в мирной локации, он как бы говорит: Я доверяю тебе этот мир, делай что хочешь.

🏺 Физика как контент. Если я могу перевернуть стол и использовать его как укрытие, это геймплей. Если я просто прыгаю на нем и вижу, как разлетаются бокалы - это живой мир.

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

🤔 А какое самое странное или бесполезное действие вы постоянно совершаете в играх просто потому, что можете? 👇
5🔥4🤪2
Почему первый прототип обязан быть деревянным 🪵🛠

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

Вот как это работает:

🔹 Механика важнее картинки. Если кубику не весело прыгать по платформе, то никакие 4К текстуры игру не спасут. Геймплей должен работать на уровне голых цифр.

🔹 Проверка гипотез. Прототип нужен, чтобы понять - а вообще весело играть? Часто киллер-фичи из головы на деле только бесят и мешают.

🔹 Режь без жалости. Главный скилл инди-разраба - умение выкидывать идеи. Если механика не клеится с остальными, она летит в корзину, даже если потратил на нее неделю.

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

🤔 Как вы боретесь с желанием вылизать первый же прототип до идеала?
5🔥3
Сегодня готовлю девлог, и тема там серьезная — VContainer. Начнем с базы, чтобы понять, зачем это вообще нужно в инди-проекте.

DI или зачем нам этот прораб? 💉🏗

🧱 Представьте, что ваш код - это стройка. Можно каждый раз самому бегать за молотком (создавать объекты через new или искать их по сцене), а можно нанять прораба. Он сам привезет инструменты и раздаст их рабочим. Этот прораб и есть DI-контейнер.

Почему это важно:

🧩 Слабая связанность. Ваши классы больше не знают, откуда берутся зависимости. Им плевать, как создана система звука или база данных. Они просто получают их на вход и работают.

🛠 Удобство. Нужно проверить механику отдельно от всей игры? Просто подсовываете фейковую зависимость вместо реальной.

🚀 Скорость. VContainer работает быстрее того же Zenject. Он не насилует процессор лишними проверками, что для мобилок и DOTS критично.

🏗 В следующем посте перейдем к конкретике: как именно VContainer связывает части игры и почему я выбрал его для Deckart. Поверьте, один раз попробуете DI - и возвращаться к синглтонам и ручному поиску объектов уже не захочется.
6🔥2🫡1
Как работает VContainer: Регистрация и Инъекция 🛠

🏗 В прошлом посте мы выяснили, что нам нужен прораб (DI-контейнер). Теперь посмотрим, как он раздает инструменты на практике. Процесс простой: Регистрация и Инъекция.

Вот как это устроено:

📝 Регистрация. Есть специальный скрипт LifetimeScope. В нем мы говорим контейнеру: вот этот класс отвечает за звук, а этот за инвентарь. Мы просто создаем список правил.

💉 Инъекция. Когда скрипту нужен звук, мы не ищем его по всей сцене. Мы пишем атрибут [Inject], и VContainer сам подставляет нужный объект прямо в скрипт.

Время жизни. Вы сами решаете: создать объект один раз на всю игру (Singleton) или делать новый каждый раз, когда он нужен.

⚙️ Почему VContainer? Он не сканирует всё подряд и не тормозит при запуске сцены. Вы сами четко указываете, что и куда поставлять. Это чище, понятнее и в разы быстрее.

🃏 В Deckart я так связал логику боя и колоду. Если нужно поменять механику выдачи карт, я правлю это в одном месте, и всё работает.
6🔥3👍2
🚀 Как и обещал в видео - держите ссылку на исходники!
Пользуйтесь, внедряйте, развлекайтесь.

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

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

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

Приятного просмотра и изучения! 👇🃏🛠

https://github.com/DeployChef/Lab
7🔥2🤣1
Прораб на стройке: Финишная прямая 🎬🏗

🚀 Похоже, девлог про VContainer получится реально мясным. Подготовил отдельную сцену и нормальные примеры, чтобы всё было наглядно.

📄 Сегодня добил сценарий. Вышло 4 страницы текста - пытаюсь выжать воду, но инфы всё равно гора. Хочется разжевать базу так, чтобы вопросов не осталось. Цель - выкатить полное видео до конца недели.

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

Работаем!
6🔥3🤣1
Что по поводу Deckart?

Темп упал, и поезд потихоньку тормозит. Я всему виной, всё дело в тяжелой задаче автобоя, которая никак не поддается. Это реальный затык, и на него сейчас уходят все силы.

Но хочется верить, что это не поезд тормозит, а он просто едет в крутую горку. Сейчас тратится весь ресурс, а прогресса почти не видно. Если получится перевалить через эту вершину и размотать логику, то дальше снова пойдет разгон.

Завтра предпринимаю очередную попытку справиться. Накидайте огней в печь, чтоб поддать сил.
🔥14🏆1🤨1
🛠 За сегодня с трудом, но дожал поле: реализовал дроп карт на хексагоны и корректный сбор обратно в руку. Все это шло через боль, пот и слезы, потому что логика сетки постоянно сопротивлялась, но процесс наконец-то сдвинулся с мертвой точки.

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

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

Работаем дальше.
🔥62🕊1
Этот вечер определенно стоил всех усилий. Автобой наконец-то заиграл красками, и четвертая попытка дала результат: получилось вынести всю симуляцию в домен.

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

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

Прекрасный вечер, чтобы выдохнуть и продолжить развитие.
👏63👍3
За сегодня прилично запыхался.

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

При этом работа над основной игрой не останавливается ни на минуту. В Декарте сейчас самый разгар, задачи летят одна за другой, и прогресс наконец-то стал ощутимым.

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

И еще — я придумал для нас один крутой интерактив на следующую неделю. Пока без спойлеров, но будет интересно, это я обещаю.

А я пока не ложусь. Осталось буквально 5 минут, чтобы домонтировать последние куски и убедиться, что завтра всё будет четко.
7❤‍🔥1😍1
Ну что, ребят, как и обещал - встречайте Devlog #5! 🎬🔥

Этот выпуск получился скорее про «DI Dev», чем про обычный лог разработки. Сейчас такой промежуточный этап, что мне показалось гораздо полезнее рассказать про архитектуру и порядок в коде, чем просто показывать картинки.

Разбираем внедрение зависимостей на пальцах!

📺 Смотреть девлог тут: https://youtu.be/jNndaQy5WRQ

Для тех, кто любит сразу переходить к делу и копаться в коде, я подготовил отдельный репозиторий с чистым примером. Забирайте, изучайте и внедряйте у себя:
📦 Исходники примера: https://github.com/DeployChef/DI_Example/tree/main

А чтобы вообще не осталось вопросов, вот вам ссылка на официальную документацию по VContainer. Там вся база:
📖 Документация VContainer: https://vcontainer.hadashikoneko.jp/

Залетайте смотреть, ставьте лайки и пишите в комментариях, как вам такой формат «полезных» девлогов. Ваша поддержка это лучший стимул не тормозить на подъемах! 🚀
🔥62
✏️ Зачем геймдизайнеру карандаш?

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

📍 День 1: Контроль линии

В скетчинге линия - это граница формы. Если она "волосатая" или кривая, мозг считывает это как неуверенность в самой идее. Четкая линия сразу дает объекту вес и структуру. Если ты не можешь провести линию от точки А до точки Б без дрожи - ты не контролируешь дизайн.

Мы учимся рисовать не кистью (пальцами), а всей рукой от локтя. Это дает размашистое и точное движение.

И так, чтоб оттачивать навык - задание: поставь две точки и соедини их одним росчерком (одним движением).
Нарисуй квадраты и впиши в них эллипсы так, чтобы они касались всех сторон.

👇 Присылайте свои листы с упражнениями под этот пост - будем разбираться, у кого рука тверже.
5🔥2
📦 День 2: Вращение и ориентация

Скетчинг для разработчика - это как работа во вьюпорте движка, только без мышки. Сегодня учимся управлять объектом в пространстве.

📍 Суть дня:
Важна не форма куба, а умение его повернуть. Любой ассет в игре мы видим под разными ракурсами. Если ты не можешь осознанно развернуть коробку на бумаге - ты не сможешь спроектировать сложный объект. Большинство проблем в дизайне начинаются именно здесь, когда идея есть, а повернуть её в нужный ракурс не хватает навыка.

Рисовать нужно насквозь. Видишь задние стенки - контролируешь объем.

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

Держи ось, представь, что объект насажен на вертел, вокруг которого он крутится.

📝 Задание:

Вы
бери пару примитивов (куб, цилиндр или шайбу).
Нарисуй его в 5-10 разных поворотах.
Собери их в одну линейку вращения, чтобы получилась раскадровка плавного поворота.

👇 Мои вертушки в шапке поста. Кидайте свои листы - посмотрим, у кого объем держится, а у кого форма плывет.
👍63
🌌 День 3: Перспектива - как не дать форме развалиться

Если в скетче объекты выглядят вывернутыми - у вас проблемы с точками схода. Сегодня разбираем математику кадра.

📍 Суть дня:
Перспектива - это то, как наш мозг считывает 3D в 2D пространстве. В геймдеве это база для левел-дизайна и настройки камеры.

📖 Теория:

1 точка схода:
классический коридор. Все параллельные линии сходятся в центре. Просто, но эффектно для симметрии.

2 точки схода: самый ходовой вариант. Видим объект с угла. Линии уходят влево и вправо на линию горизонта.

3 точки схода: добавляем вертикальное искажение. Третья точка уводит линии вверх или вниз. Это дает ощущение масштаба и высоты.

📝 Задание: Попробуйте нарисовать что угодно, хоть даже простые кубы во всех трех вариациях.

👇 Мои примеры уже в комментариях и посте. Кидайте свои листы - проверим, у кого горизонт завален, а у кого всё по сетке.
7🔥3
🛠 День 4: Декомпозиция, видим структуру насквозь

Любой сложный объект в мире это просто конструктор из кубов, сфер и цилиндров.

Декомпозиция это навык отсекания лишнего. В геймдеве это помогает не только в рисунке, но и в 3D-моделировании: ты сразу понимаешь, из каких примитивов собрать меш. Если ты научился вращать куб и сажать его в перспективу, то ты сможешь нарисовать что угодно.

Рисуем методом рентгена - от общего к частному:

Смотрим на предмет и решаем, в какие примитивы он вписывается.
Набрасываем прозрачный каркас. Видим задние стенки - контролируем объем.
Если каркас стоит в перспективе и читается без деталей - полдела сделано.

📝 Задание - Найди любой предмет на столе (джойстик, кроссовок, старый системник).
Нарисуй его как набор прозрачных примитивов (коробок и цилиндров).

Важно не рисуй детали! Только структуру.

👇 Кидайте свои скелеты, проверим!
5🔥3
💡 День 5: Светотень

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

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

Разбираем анатомию светотени:

Источник света: всегда четко определяй, откуда светит солнце. Все тени на листе должны слушаться этого правила.

Терминатор: это линия перехода от света к тени. На кубе она резкая, на сфере - мягкая. Именно она задает характер формы.

Падающая тень: всегда темнее собственной тени объекта. Она дает опору и сажает предмет в пространство.

Штрих по форме: штрихуй так, будто гладишь объект рукой. Линии штриховки должны подчеркивать изгибы.

📝 Задание - возьми свои вчерашние кубы или цилиндры в перспективе. Выбери один источник света. Нанеси собственные и падающие тени.

👇 Мои упражнения на объем уже в комментариях. Кидайте свои работы.
6🔥1
🏃‍♂️ День 6: Динамика и жест

Если рисовать человека по контуру - получится манекен из магазина одежды. Чтобы персонаж побежал, нужно работать с осями и весом.

Мы берем наши базовые формы (кубы и цилиндры) и заставляем их работать в связке. В геймдеве это основа для анимации: если ключевая поза (key pose) не считывается в силуэте, игрок не поймет, что делает персонаж.

📖 База по скетчам:

Line of Action:
Первая линия, которую ты проводишь. Она задает изгиб всего тела от головы до пят.

Блоки и скручивание: Представляй грудную клетку и таз как два кирпича. В движении они всегда крутятся в разные стороны. Это создает динамическое напряжение.

Центр тяжести: Следи, чтобы манекен не падал. Опорная нога должна стоять четко под точкой баланса.

📝 Задание на сегодня - открой любое видео со спортом или танцами.
Сделай 6 набросков поз, используя только шарнирного человечка.
Не трать на одну позу больше 2 минут. Ищи жест, а не детали.

👇 Кидайте свои листы - разберем, чей манекен самый живой!
5🔥2
🏆 ФИНАЛ НЕДЕЛИ: Большой челлендж по пропсам

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

📍 Суть челленджа - отрисовать 15 объектов (пропсов), постепенно усложняя конструкцию. Это лучший способ понять, как из простых геометрических тел рождается дизайн.

📝 Список задач:

3 пропса из 1 формы (например: ящик, балка, простой камень);

3 пропса из 2 форм (молоток, свеча в подсвечнике);

3 пропса из 3 форм (топор, турель, стул);

3 пропса из 4 форм (сундук с замком, сложный светильник);

3 пропса из 5 форм (фантастическая пушка, робот-помощник).

⚠️ Важно, следите за перспективой и не забывайте про падающие тени. Объект должен стоять на плоскости, а не летать в пространстве.

👇 Кто готов повторить? Скидывайте свои листы, будем подводить итоги недели! За лучшую работу подарю скетчбук🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1
Неделя скетчинга была плотной, так что времени на рефлексию почти не оставалось. Сейчас, когда можно немного выдохнуть, пора подвести итоги месяца, он пролетел максимально незаметно.

🎁 Итоги конкурса и и
деи
Начнем с приятного. Поздравляю @injones за интересные предложения по развитию Deckart, колода по мотивам Balatro отправляется победителю! Спасибо за свежий взгляд на проект.

📈 Сообщество
Если помните, был челлендж: к 100-му посту я обещал собрать 100 подписчиков в Telegram. Цель достигнута, нас уже 105 человек! Благодарю каждого за поддержку, для меня это действительно важно.

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

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

Планы были огромными, а сейчас стали просто грандиозными. Только благодаря вашей поддержке я нахожу силы двигаться дальше. Спасибо! 🃏
👍52👏2