🎮 Как правильная сетка бережет вашу видеокарту?
Вчера мы обсуждали квады и чистую топологию. Сегодня о том, зачем это нужно игровому движку. Компьютер ленив и не хочет рендерить миллионы полигонов там, где можно схалявить.
Вот три столпа оптимизации:
1️⃣ LOD-ы (Level of Detail): Классика. Зачем рисовать пуговицу на куртке врага, если он в 100 метрах? Делается несколько версий: LOD 0 (максимум деталей для крупных планов) и LOD 3 (мыло из пары треугольников для дали). Движок меняет их на лету.
2️⃣ Тесселяция (Tessellation): Чтобы кирпичная стена казалась объемной, не нужно моделить каждый кирпич. Движку дают плоскую стену и «карту высот». Он сам в реальном времени дробит сетку и выпячивает кирпичи наружу. Появляется рельеф и честные тени. Тесселяцию мы еще затронем когда будем делать снег.
3️⃣ Nanite (Unreal Engine 5): Убийца ручной оптимизации. Он сам анализирует пиксели на экране и решает, где показать микроскопические детали, а где упростить гору. Можно вставлять киношные модели, и видюха не сгорит.
При чем тут топология? Даже самым крутым технологиям вроде тесселяции или Nanite в разы легче работать с правильной сеткой. Дыры или кривые пересечения выдадут страшные визуальные артефакты вместо красивого рельефа. Чистая сетка залог здоровой игры!
Вчера мы обсуждали квады и чистую топологию. Сегодня о том, зачем это нужно игровому движку. Компьютер ленив и не хочет рендерить миллионы полигонов там, где можно схалявить.
Вот три столпа оптимизации:
1️⃣ LOD-ы (Level of Detail): Классика. Зачем рисовать пуговицу на куртке врага, если он в 100 метрах? Делается несколько версий: LOD 0 (максимум деталей для крупных планов) и LOD 3 (мыло из пары треугольников для дали). Движок меняет их на лету.
2️⃣ Тесселяция (Tessellation): Чтобы кирпичная стена казалась объемной, не нужно моделить каждый кирпич. Движку дают плоскую стену и «карту высот». Он сам в реальном времени дробит сетку и выпячивает кирпичи наружу. Появляется рельеф и честные тени. Тесселяцию мы еще затронем когда будем делать снег.
3️⃣ Nanite (Unreal Engine 5): Убийца ручной оптимизации. Он сам анализирует пиксели на экране и решает, где показать микроскопические детали, а где упростить гору. Можно вставлять киношные модели, и видюха не сгорит.
При чем тут топология? Даже самым крутым технологиям вроде тесселяции или Nanite в разы легче работать с правильной сеткой. Дыры или кривые пересечения выдадут страшные визуальные артефакты вместо красивого рельефа. Чистая сетка залог здоровой игры!
❤2🤓1
🏁 Итоги недели 3D. Зачем инди-команде знать всё это?
Эта неделя погружения в геометрию подошла к концу. Почему вообще важно разбираться в пайплайнах соседних специалистов, даже если твоя основная задача писать код и собирать архитектуру?
В небольшой инди-команде границы между ролями часто размываются. Когда программист понимает, почему у 3D-модели поехали нормали, а 3D-шник понимает, как скрипт обращается к его префабу, скорость разработки возрастает кратно. Меньше времени тратится на перекидывание ассетов туда-сюда со словами "оно сломалось в движке, переделывай".
Понимание базовых правил 3D позволяет выстроить грамотный конвейер добавления контента в игру будь то новые карточки, элементы интерфейса или окружение.
Как вам такой формат? Хотите, чтобы я иногда разбавлял наши девлоги и отчеты о механиках вот такими техническими экскурсиями в смежные области? Или лучше вернуться к суровому коду и геймдизайну?
Голосуйте реакциями и пишите в комменты! 👇
Эта неделя погружения в геометрию подошла к концу. Почему вообще важно разбираться в пайплайнах соседних специалистов, даже если твоя основная задача писать код и собирать архитектуру?
В небольшой инди-команде границы между ролями часто размываются. Когда программист понимает, почему у 3D-модели поехали нормали, а 3D-шник понимает, как скрипт обращается к его префабу, скорость разработки возрастает кратно. Меньше времени тратится на перекидывание ассетов туда-сюда со словами "оно сломалось в движке, переделывай".
Понимание базовых правил 3D позволяет выстроить грамотный конвейер добавления контента в игру будь то новые карточки, элементы интерфейса или окружение.
Как вам такой формат? Хотите, чтобы я иногда разбавлял наши девлоги и отчеты о механиках вот такими техническими экскурсиями в смежные области? Или лучше вернуться к суровому коду и геймдизайну?
Голосуйте реакциями и пишите в комменты! 👇
❤5👍1🔥1👻1
Реальность вносит свои правки в роудмап 🎬
Всем привет! Две недели пролетели, по плану сегодня должен был быть девлог, но... его не будет. По крайней мере, не сегодня.
Я взял на себя смелость копнуть тему CMS чуть глубже, чем планировал изначально. Хотелось не просто показать картинки, а реально разложить по полочкам, как это работает под капотом.
Свести техническую базу и интересный рассказ в один сценарий оказалось той еще задачкой.
Как итог просто переоценил свои силы. Бывает.
К этому нужно быть готовым, иногда перфекционизм побеждает график.
Завтра финальный рывок по монтажу и досъемкам. Надеюсь завтра уже побалую вас контентом.
Спасибо, что понимаете. В этом и есть весь честный путь с его затыками, факапами в планировании и желанием сделать по красоте.
Всем привет! Две недели пролетели, по плану сегодня должен был быть девлог, но... его не будет. По крайней мере, не сегодня.
Я взял на себя смелость копнуть тему CMS чуть глубже, чем планировал изначально. Хотелось не просто показать картинки, а реально разложить по полочкам, как это работает под капотом.
Свести техническую базу и интересный рассказ в один сценарий оказалось той еще задачкой.
Как итог просто переоценил свои силы. Бывает.
К этому нужно быть готовым, иногда перфекционизм побеждает график.
Завтра финальный рывок по монтажу и досъемкам. Надеюсь завтра уже побалую вас контентом.
Спасибо, что понимаете. В этом и есть весь честный путь с его затыками, факапами в планировании и желанием сделать по красоте.
💔3
Слушайте, видео опять задерживается, и честно это какой-то ад. Я сижу и переписываю каждый кадр по 30 раз. Вроде начинаю говорить, а язык просто встает комом в горле. Все, что выходит какой-то бред или поток э-э-э, который вообще не туда идет. Постоянно одергиваю себя: Блин, нет, это шляпа, давай по новой.
И так по кругу. Реально могу один кусок на 30 секунд записывать целый час или даже дольше, потому что либо сбиваюсь, либо просто бесит, как это звучит. Не знаю, как люди делают эти крутые девлоги, где всё так гладко и просто. Смотришь на них всё так легко, вылизано, всё летает. А мне тяжело. Ужасно тяжело.
Просто знайте, что за каждым кадром, который вы увидите, стоят часы вот этого «давай еще раз». Я к этому отношусь как к учебе рано или поздно научусь и станет легче, но сейчас это выжимает все соки. Видео будет, просто дайте мне еще немного времени это всё дожать.
У кого есть советы по поводу съемки, я буду рад их выслушать! 🃏🛠
И так по кругу. Реально могу один кусок на 30 секунд записывать целый час или даже дольше, потому что либо сбиваюсь, либо просто бесит, как это звучит. Не знаю, как люди делают эти крутые девлоги, где всё так гладко и просто. Смотришь на них всё так легко, вылизано, всё летает. А мне тяжело. Ужасно тяжело.
Просто знайте, что за каждым кадром, который вы увидите, стоят часы вот этого «давай еще раз». Я к этому отношусь как к учебе рано или поздно научусь и станет легче, но сейчас это выжимает все соки. Видео будет, просто дайте мне еще немного времени это всё дожать.
У кого есть советы по поводу съемки, я буду рад их выслушать! 🃏🛠
🤝3😁2😱1
Девлог #3 на базе! Дожал. 🚀
Вчера писал как же тяжел процесс съемок. Сегодня показываю, ради чего всё это было. Мы наконец-то собрали свою CMS (систему управления контентом), и она заиграла.
https://youtu.be/6uUYXnTCg6Q
В этот раз я решил копнуть глубже и выдать максимум пользы по архитектуре данных.
Мы отошли от простого хардкода объектов к системе ContentProvider. Теперь данные живут отдельно, а логика отдельно. Пока это ScriptableObjects, но архитектура уже готова к переезду на любые внешние таблицы.
В видео разложил по полочкам:
✅ Почему хардкод статов это ловушка.
✅ Как работают базы данных в памяти на Dictionary.
✅ Как интерфейсы помогают нам подменять источники контента.
Залетайте смотреть, пока я со спокойной совестью иду разгребать бэклог по контенту.
Теперь, когда система работает, пора заселять мир Deckart!
Жду ваш фидбек в комментариях под видео! 👇
Вчера писал как же тяжел процесс съемок. Сегодня показываю, ради чего всё это было. Мы наконец-то собрали свою CMS (систему управления контентом), и она заиграла.
https://youtu.be/6uUYXnTCg6Q
В этот раз я решил копнуть глубже и выдать максимум пользы по архитектуре данных.
Мы отошли от простого хардкода объектов к системе ContentProvider. Теперь данные живут отдельно, а логика отдельно. Пока это ScriptableObjects, но архитектура уже готова к переезду на любые внешние таблицы.
В видео разложил по полочкам:
✅ Почему хардкод статов это ловушка.
✅ Как работают базы данных в памяти на Dictionary.
✅ Как интерфейсы помогают нам подменять источники контента.
Залетайте смотреть, пока я со спокойной совестью иду разгребать бэклог по контенту.
Теперь, когда система работает, пора заселять мир Deckart!
Жду ваш фидбек в комментариях под видео! 👇
YouTube
Как построить CMS в Unity и не сойти с ума | Разработка игры Deckart Devlog #3
В этом выпуске мы ныряем в двигатель нашего проекта Deckart. Сегодня не просто девлог, а большой технический разбор того, как перестать плодить сущности и начать строить системы.
Главная тема CMS (Content Management System). Я искал внятные гайды на YouTube…
Главная тема CMS (Content Management System). Я искал внятные гайды на YouTube…
👍3🔥2🎉2❤🔥1
📉 Когда кривая сложности в жизни не оптимизирована
Ребят, только начал вести канал и тут блокировка Телеграма. Все планы летят к чертям, постоянное сражение с какими-то внешними событиями. Сейчас как никогда нужна ваша поддержка.
Но я не останавливаюсь. Постараюсь и дальше делиться постами каждый день.
Я смотрю на это через геймдизайн: кривая сложности в жизни тоже привязана к этапам. Есть белые полосы (легкость для игрока) и черные (вводимый хардкор). Да, сейчас баланс явно не оптимизирован, но жизнь и не должна быть простой. Как мы знаем из геймдева - если в игре нет вызова, она становится ужасно скучной.
Так что принимаем этот челлендж. Продолжаем работать. 🃏🛠
Ребят, только начал вести канал и тут блокировка Телеграма. Все планы летят к чертям, постоянное сражение с какими-то внешними событиями. Сейчас как никогда нужна ваша поддержка.
Но я не останавливаюсь. Постараюсь и дальше делиться постами каждый день.
Я смотрю на это через геймдизайн: кривая сложности в жизни тоже привязана к этапам. Есть белые полосы (легкость для игрока) и черные (вводимый хардкор). Да, сейчас баланс явно не оптимизирован, но жизнь и не должна быть простой. Как мы знаем из геймдева - если в игре нет вызова, она становится ужасно скучной.
Так что принимаем этот челлендж. Продолжаем работать. 🃏🛠
😱3
Го разнообразим посты, запущу холивар по теме разработки...
Синглтоны это зло, которое аукнется позже. Разбираю архитектуру проекта и в очередной раз убеждаюсь: если хочешь построить что-то сложнее кликера, завязывай с Instance. Да, бахнуть статический доступ из любой точки кода это соблазнительно. Но через месяц ты получишь проект, где всё зависит от всего, а ошибки инициализации в Awake станут твоими лучшими друзьями.
Я топлю за DI (Dependency Injection). Это когда скрипт не рыщет по сцене в поиске менеджеров, а смиренно ждет, когда их ему заинжектят сверху.
В чем разница на пальцах:
📦 Singleton: Ты из каждого утюга вызываешь SoundManager.Instance.Play(). Удобно? Да. Но попробуй теперь запустить этот скрипт в другой сцене без этого менеджера. Он просто вылетит с ошибкой. Твой код это заложник глобальных ссылок.
💉 DI: Скрипт просто декларирует, мол мне нужен интерфейс звука, чтобы работать. И контейнер сам подсовывает ему нужный сервис. В итоге код чистый, зависимости прозрачные, а заменить одну систему на другую можно по щелчку пальцев, не переписывая половину игры.
Конечно, настроить какой-нибудь VContainer или Zenject это чуть дольше, чем написать одну строчку со статикой. Но это та цена, которую ты платишь за возможность не сойти с ума при рефакторинге.
А на чем сидите вы? Всё еще грешите синглтонами потому что так быстрее или уже перешли на светлую сторону DI и интерфейсов? Пишите, чей подход побеждает в реальном геймдеве. 👇 🃏🛠️
Синглтоны это зло, которое аукнется позже. Разбираю архитектуру проекта и в очередной раз убеждаюсь: если хочешь построить что-то сложнее кликера, завязывай с Instance. Да, бахнуть статический доступ из любой точки кода это соблазнительно. Но через месяц ты получишь проект, где всё зависит от всего, а ошибки инициализации в Awake станут твоими лучшими друзьями.
Я топлю за DI (Dependency Injection). Это когда скрипт не рыщет по сцене в поиске менеджеров, а смиренно ждет, когда их ему заинжектят сверху.
В чем разница на пальцах:
📦 Singleton: Ты из каждого утюга вызываешь SoundManager.Instance.Play(). Удобно? Да. Но попробуй теперь запустить этот скрипт в другой сцене без этого менеджера. Он просто вылетит с ошибкой. Твой код это заложник глобальных ссылок.
💉 DI: Скрипт просто декларирует, мол мне нужен интерфейс звука, чтобы работать. И контейнер сам подсовывает ему нужный сервис. В итоге код чистый, зависимости прозрачные, а заменить одну систему на другую можно по щелчку пальцев, не переписывая половину игры.
Конечно, настроить какой-нибудь VContainer или Zenject это чуть дольше, чем написать одну строчку со статикой. Но это та цена, которую ты платишь за возможность не сойти с ума при рефакторинге.
А на чем сидите вы? Всё еще грешите синглтонами потому что так быстрее или уже перешли на светлую сторону DI и интерфейсов? Пишите, чей подход побеждает в реальном геймдеве. 👇 🃏🛠️
🤔3❤1
Весь день полишил текущий билд рабочего места ✨
❄️ Сначала занялся оптимизацией производительности и установил кондей чтобы FPS не проседал от перегрева.
🏗️ Затем провел полный рефакторинг архитектуры и пересобрал рабочий стол
Обновил UI и UX. Теперь в моем сетапе 3 монитора. Добавил один ультраширокий для максимального погружения в код и Unity 🖥️🖥️🖥️
Завез нормальный микрофон для качественного звука 🎙️🎧
Накатил финальный пост-процессинг. Добавил подсветку выставил правильные тона стиль и красоту.
Получилась локация прямо из Pinterest 📸🌟
В геймдеве всё точно так же. Механики могут быть топ но без полишинга играть неприятно. Теперь билд рабочего места стабилен и выглядит дорого. Завтра возвращаюсь к коду в максимально комфортных условиях 😎🚀
В общем зацените результат и кидайте свои рабочие места в комменты. Устроим смотр локаций 👇🃏🛠️
❄️ Сначала занялся оптимизацией производительности и установил кондей чтобы FPS не проседал от перегрева.
🏗️ Затем провел полный рефакторинг архитектуры и пересобрал рабочий стол
Обновил UI и UX. Теперь в моем сетапе 3 монитора. Добавил один ультраширокий для максимального погружения в код и Unity 🖥️🖥️🖥️
Завез нормальный микрофон для качественного звука 🎙️🎧
Накатил финальный пост-процессинг. Добавил подсветку выставил правильные тона стиль и красоту.
Получилась локация прямо из Pinterest 📸🌟
В геймдеве всё точно так же. Механики могут быть топ но без полишинга играть неприятно. Теперь билд рабочего места стабилен и выглядит дорого. Завтра возвращаюсь к коду в максимально комфортных условиях 😎🚀
В общем зацените результат и кидайте свои рабочие места в комменты. Устроим смотр локаций 👇🃏🛠️
👍3🍌3🔥1
Давайте отвлечемся от общих тем и поговорим про игру. Расскажу про одну из ключевых систем, это магазин. Он напрямую влияет на декбилдинг и является важной частью рановой метапрогрессии. То есть вы улучшаете магазин для продвижения в текущем забеге чтоб открывать контент для усиления.
Сейчас в планах разделить магазин на два принципиально разных подтипа:
🏰 1. Город (Замок)
Это ваша база внутри рана. Представьте замок из «Героев 3». Сюда вы возвращаетесь после победы над боссом очередного этапа. В городе можно будет нанимать коммандиров в таверне, покупать улучшения или юнитов, а так же строить здания для расширения возможностей. Именно здесь происходит основная прокачка между большими сегментами похода.
🐫 2. Бродячий торговец
Это мобильный магазин между боями. Цикл выглядит так: вышли из города, провели бой, встретили торговца, снова бой, босс и возврат в замок для подготовки к следующему этапу. У торговца можно будет докупить рандомные вещи через механики гачи, выбор из трех или рероллы.
В будущем хотим добавить специализацию торговцев. Например маг продает только свитки, а работорговец предлагает новых юнитов.
Конечно это планы на дальний горизонт. Будем тестировать что из этого приносит фан, а что кажется лишним. Сейчас задача минимум это разделить магазин на два стейта и наполнить их базовым контентом.
Как вам такая идея с городом внутри рана? Что может добавить фана в такую систему? Пишите свои мысли в комменты 👇
Сейчас в планах разделить магазин на два принципиально разных подтипа:
🏰 1. Город (Замок)
Это ваша база внутри рана. Представьте замок из «Героев 3». Сюда вы возвращаетесь после победы над боссом очередного этапа. В городе можно будет нанимать коммандиров в таверне, покупать улучшения или юнитов, а так же строить здания для расширения возможностей. Именно здесь происходит основная прокачка между большими сегментами похода.
🐫 2. Бродячий торговец
Это мобильный магазин между боями. Цикл выглядит так: вышли из города, провели бой, встретили торговца, снова бой, босс и возврат в замок для подготовки к следующему этапу. У торговца можно будет докупить рандомные вещи через механики гачи, выбор из трех или рероллы.
В будущем хотим добавить специализацию торговцев. Например маг продает только свитки, а работорговец предлагает новых юнитов.
Конечно это планы на дальний горизонт. Будем тестировать что из этого приносит фан, а что кажется лишним. Сейчас задача минимум это разделить магазин на два стейта и наполнить их базовым контентом.
Как вам такая идея с городом внутри рана? Что может добавить фана в такую систему? Пишите свои мысли в комменты 👇
🔥3
Ребят, накидали идей для нашего города. Хочется, чтобы это был не просто скучный экран с кнопками, а живое место с реальным выбором.
Вот что надумали по механикам:
🍻 В таверне
Покупаем у бармена слухи о слабом месте следующего босса. Можем нанять элитных наемников, которые дико сильны, но уходят из отряда сразу после первого боя. Или просто рискуем золотом в кости, чтобы сорвать куш перед рынком.
🔨 В кузнице
Разбираем ненужный хлам на ресурсы для прокачки любимых юнитов. Можно сделать именную гравировку: даем бойцу имя и получаем бонус к статам, но терять такого «именного» ветерана потом в разы больнее. Еще думаем над слиянием: варим из двух слабых предметов один случайный, но классом выше.
🏛 В ратуше и на рынке
Инвестируем золото в развитие кварталов сейчас, чтобы в следующий заход товары стали дешевле или выбор юнитов больше. Тут же висит доска заказов берем челлендж на следующий бой (например, победить без магии) и получаем жирную награду.
Это пока наброски, будем смотреть, что дает больше фана и реально влияет на стратегию.
Как вам такие варианты для города? Что больше всего зацепило или хотите предложить что-то свое в нашу локацию? Пишите в комменты! 👇
Вот что надумали по механикам:
🍻 В таверне
Покупаем у бармена слухи о слабом месте следующего босса. Можем нанять элитных наемников, которые дико сильны, но уходят из отряда сразу после первого боя. Или просто рискуем золотом в кости, чтобы сорвать куш перед рынком.
🔨 В кузнице
Разбираем ненужный хлам на ресурсы для прокачки любимых юнитов. Можно сделать именную гравировку: даем бойцу имя и получаем бонус к статам, но терять такого «именного» ветерана потом в разы больнее. Еще думаем над слиянием: варим из двух слабых предметов один случайный, но классом выше.
🏛 В ратуше и на рынке
Инвестируем золото в развитие кварталов сейчас, чтобы в следующий заход товары стали дешевле или выбор юнитов больше. Тут же висит доска заказов берем челлендж на следующий бой (например, победить без магии) и получаем жирную награду.
Это пока наброски, будем смотреть, что дает больше фана и реально влияет на стратегию.
Как вам такие варианты для города? Что больше всего зацепило или хотите предложить что-то свое в нашу локацию? Пишите в комменты! 👇
🔥4
Вышел Unity 6.4! Это так называемый поддерживаемый релиз, который будет стабилен до выхода следующей версии 6.5. Юнити явно сменили стратегию: вместо сырых фич они теперь пилят мелкие итеративные улучшения качества жизни.
Самая обсуждаемая тема это перенос ECS (Entities) в ядро движка. Теперь пакет не нужно ставить отдельно. Мы в Deckart не используем ECS, так как для пошага это кажется избыточным. Но тут есть нюанс. Юнити готовит почву для полного слияния GameObjects и Entities в будущем.Оспорить избыточность ECS можно тем, что это не только про производительность. Это про строгий порядок данных. В пошаговой игре это могло бы идеально лечь на систему реплеев, мультиплеер или сохранение состояния. Но пока порог входа высокий и количество бойлерплейта пугает, классический подход с DI кажется разумнее.
Что еще завезли в 6.4:
✅ Project Auditor встроен по умолчанию. Инструмент анализирует весь проект на предмет косяков в коде и настройках. Отличная штука для быстрой проверки «здоровья» билда.
✅ Runtime Sprite Atlases. Теперь можно генерировать атласы прямо во время игры. Это киллер фича для моддинга, когда игроки подгружают свои текстуры и мы хотим сохранить производительность.
✅ Input System + OnMouse. Наконец события типа OnMouseDown работают с новым Input System из коробки. Больше не надо городить костыли при переходе со старого менеджера.
✅ Кастомный рендер в 2D. В URP теперь можно расширять процесс рендеринга и делать сложный пост процессинг для 2D проектов.
✅ Burst на вебе. Мультипоточность с использованием Burst теперь доступна для WebGL билдов. Звучит очень мощно для браузерок.
Движок становится лучше с каждым релизом, хоть и без взрывных анонсов.
Как думаете, стоит ли изучать ECS сейчас или лучше подождать того самого полного слияния с GameObjects и бесконечно вечным?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Дочитал книгу «Designing Games: A Guide to Engineering Experiences» Тайнана Сильвестра, разработчика RimWorld.
С уверенностью могу сказать что это было максимально полезно. Готов советовать её всем кто прокладывает свой путь в геймдизайн.
Мне нравятся книги которые открывают базовые понятия, остающиеся в слепой зоне пока о них не прочтешь. При чтении постоянно возникал вопрос - это же так очевидно, почему я раньше об этом не думал?
Главный инсайт книги в том что геймдизайнер создает не игру, а систему генерации опыта.
Сама по себе игра это просто набор файлов. Настоящая магия происходит только в голове игрока. И наша задача как инженеров этого опыта проектировать системы так, чтобы каждое решение влияло на впечатления человека. Если механика или деталь не работают на этот опыт, они балласт.
Книга учит смотреть на разработку как на создание машины для эмоций. Если хотите перестать делать просто набор фич и начать проектировать глубокие впечатления, это маст рид.
А какие книги заставляли вас воскликнуть почему я не знал этого раньше?
Пишите в комменты 👇 🃏🛠
С уверенностью могу сказать что это было максимально полезно. Готов советовать её всем кто прокладывает свой путь в геймдизайн.
Мне нравятся книги которые открывают базовые понятия, остающиеся в слепой зоне пока о них не прочтешь. При чтении постоянно возникал вопрос - это же так очевидно, почему я раньше об этом не думал?
Главный инсайт книги в том что геймдизайнер создает не игру, а систему генерации опыта.
Сама по себе игра это просто набор файлов. Настоящая магия происходит только в голове игрока. И наша задача как инженеров этого опыта проектировать системы так, чтобы каждое решение влияло на впечатления человека. Если механика или деталь не работают на этот опыт, они балласт.
Книга учит смотреть на разработку как на создание машины для эмоций. Если хотите перестать делать просто набор фич и начать проектировать глубокие впечатления, это маст рид.
А какие книги заставляли вас воскликнуть почему я не знал этого раньше?
Пишите в комменты 👇 🃏🛠
🤓3🔥2
Закрыл Сильвестра и перехожу к следующей базе.
Начинаю Game Balance от Яна Шрейбера и Бренды Ромеро.
Если прошлый автор учил проектировать опыт и эмоции, то здесь будет больше системности. Числа, кривые прогрессии, экономика и теория вероятностей.
Чего жду от книги. Хочу перестать крутить статы юнитов в Deckart по наитию. Нужна четкая система, где каждое число обосновано логикой, а не просто моими ощущениями в конкретный вечер. Баланс это не только про то, чтобы никто не был слишком сильным. Это способ управлять интересом игрока через математические модели.
Главными инсайтами из книги конечно буду делиться с вами. Посмотрим, как эти знания лягут на мои текущие задачи в коде. Одно дело проектировать архитектуру, и совсем другое это настройка живой экономики внутри проекта. 🃏🛠
Кто из вас уже строил баланс через таблицы и графики? Насколько это в итоге совпало с реальным геймплеем? Пишите в комменты. 👇
Начинаю Game Balance от Яна Шрейбера и Бренды Ромеро.
Если прошлый автор учил проектировать опыт и эмоции, то здесь будет больше системности. Числа, кривые прогрессии, экономика и теория вероятностей.
Чего жду от книги. Хочу перестать крутить статы юнитов в Deckart по наитию. Нужна четкая система, где каждое число обосновано логикой, а не просто моими ощущениями в конкретный вечер. Баланс это не только про то, чтобы никто не был слишком сильным. Это способ управлять интересом игрока через математические модели.
Главными инсайтами из книги конечно буду делиться с вами. Посмотрим, как эти знания лягут на мои текущие задачи в коде. Одно дело проектировать архитектуру, и совсем другое это настройка живой экономики внутри проекта. 🃏🛠
Кто из вас уже строил баланс через таблицы и графики? Насколько это в итоге совпало с реальным геймплеем? Пишите в комменты. 👇
🔥4🤔1
Экономика в игре это прежде всего инструмент управления выбором ⚙️
Если золота бесконечно много, игрок перестает выбирать и просто забирает все. Геймплей появляется там, где ресурсов не хватает. Вчера я внедрил базу этой системы - золото и простой магазин 🛒
Главное здесь не в цифрах, а в структуре. Я заложил структуру так, чтобы новые типы магазинов, ресурсов и товаров добавлялись предсказуемо. Каркас готов к масштабированию от простого кошелька до управления караваном или развития замка. 🏗
Караван (мобильный лагерь): 🐪
Слоты, расширение вместимости инвентаря или армии.
Возможно провизия, как ресурс для переходов между точками.
Замок (глобальный хаб): 🏰
Кузница, апгрейд характеристик карт.
Ратуша, отвечает за пассивный прирост золота или налоги.
Систем в проекте всё больше, скоро плотно переключимся на контент. 🛠
Вопрос к вам, как бы вы расширили функционал каравана или замка? Какие ресурсы, кроме золота, добавили бы в такой микс рогалика и стратегии? Пишите идеи в комменты. 👇
Если золота бесконечно много, игрок перестает выбирать и просто забирает все. Геймплей появляется там, где ресурсов не хватает. Вчера я внедрил базу этой системы - золото и простой магазин 🛒
Главное здесь не в цифрах, а в структуре. Я заложил структуру так, чтобы новые типы магазинов, ресурсов и товаров добавлялись предсказуемо. Каркас готов к масштабированию от простого кошелька до управления караваном или развития замка. 🏗
Караван (мобильный лагерь): 🐪
Слоты, расширение вместимости инвентаря или армии.
Возможно провизия, как ресурс для переходов между точками.
Замок (глобальный хаб): 🏰
Кузница, апгрейд характеристик карт.
Ратуша, отвечает за пассивный прирост золота или налоги.
Систем в проекте всё больше, скоро плотно переключимся на контент. 🛠
Вопрос к вам, как бы вы расширили функционал каравана или замка? Какие ресурсы, кроме золота, добавили бы в такой микс рогалика и стратегии? Пишите идеи в комменты. 👇
🔥4🤷♂1
Красота математики в шейдерах 🎨⚙️
Сегодня поговорим про шейдеры. Я и раньше слышал про них и видел применение в видеопотоках но по настоящему оценил это исполнение когда поиграл в Balatro 🃏✨
Там красота математики видна максимально отчетливо. Все эти психоделические задники и переливы карт с искажениями это не готовые картинки а чистые вычисления в реальном времени
📈 После такого опыта начинаешь иначе смотреть на детали в других играх.
Если разобраться то шейдеры это просто инструкции для видеокарты. Они говорят ей каким цветом закрасить каждый конкретный пиксель на экране. В отличие от обычного кода здесь всё завязано на математических формулах и работе с видеоядром 🖥⚛️
Чтобы увидеть возможности такой математики в чистом виде стоит заглянуть на Shadertoy. Там люди создают целые миры вообще без 3D моделей просто описывая функции в коде. Выглядит как магия но по факту это работа с векторами и временем 🌌📐
В Unity сейчас процесс стал намного доступнее благодаря Shader Graph. Это визуальный редактор где можно не писать код на HLSL вручную а просто соединять ноды между собой. Для начала это идеальный вариант потому что вы сразу видите результат и понимаете как конкретная формула меняет картинку 🛠🖼
Тема очень глубокая и я сам только начал в ней по настоящему разбираться. Это знание кардинально меняет взгляд на то как строится современная графика.
А вы обращаете внимание на такие эффекты в играх или для вас это просто красивый фон? Пишите в комментарии 👇🚀
Сегодня поговорим про шейдеры. Я и раньше слышал про них и видел применение в видеопотоках но по настоящему оценил это исполнение когда поиграл в Balatro 🃏✨
Там красота математики видна максимально отчетливо. Все эти психоделические задники и переливы карт с искажениями это не готовые картинки а чистые вычисления в реальном времени
📈 После такого опыта начинаешь иначе смотреть на детали в других играх.
Если разобраться то шейдеры это просто инструкции для видеокарты. Они говорят ей каким цветом закрасить каждый конкретный пиксель на экране. В отличие от обычного кода здесь всё завязано на математических формулах и работе с видеоядром 🖥⚛️
Чтобы увидеть возможности такой математики в чистом виде стоит заглянуть на Shadertoy. Там люди создают целые миры вообще без 3D моделей просто описывая функции в коде. Выглядит как магия но по факту это работа с векторами и временем 🌌📐
В Unity сейчас процесс стал намного доступнее благодаря Shader Graph. Это визуальный редактор где можно не писать код на HLSL вручную а просто соединять ноды между собой. Для начала это идеальный вариант потому что вы сразу видите результат и понимаете как конкретная формула меняет картинку 🛠🖼
Тема очень глубокая и я сам только начал в ней по настоящему разбираться. Это знание кардинально меняет взгляд на то как строится современная графика.
А вы обращаете внимание на такие эффекты в играх или для вас это просто красивый фон? Пишите в комментарии 👇🚀
👍2🔥2
Объявляю субботник! 🧹✨
🌊 А вы любите убираться? Знаете игру PowerWash Simulator? Какие чувства она у вас вызывает?
На бумаге это звучит максимально странно: вы часами смываете грязь со старых фургонов или заборов. Но давайте разберем это с точки зрения геймдизайна 📝🧐
Основной кайф здесь в моментальном результате. В реальности мы редко видим как наши усилия мгновенно превращают хаос в порядок. В игре же каждый сантиметр очищенной поверхности дает четкий визуальный фидбек. Вы буквально стираете грязь и возвращаете вещам их первоначальный вид. Это медитативный процесс где у вас есть полный контроль над ситуацией 🌊
Магия в том что игра превращает монотонную работу в поток дофамина за счет простого цикла: приложил усилие и сразу увидел результат ⚡️🔋
На днях я ощутил это на себе в реальности когда затеял уборку в квартире 🏠🧼 Поначалу лень но как только видишь чистые поверхности и порядок в вещах накрывает чувство глубокого удовлетворения. В прибранной квартире сразу и думается легче и работать приятнее. Когда вокруг нет лишнего визуального шума фокус на коде или архитектуре игры держится гораздо лучше 💻🎯
В общем PowerWash доказал что в наведении порядка есть свой особый фан если правильно настроить обратную связь 💡✨
А вы какие еще знаете игры которые вызывают такие же приятные но нестандартные эмоции? Может это Unpacking с его уютом от расстановки вещей или Hardspace Shipbreaker где вы методично разбираете корабли на детали 📦🛠
Пишите в комменты свои примеры игр которые успокаивают через порядок 👇
🌊 А вы любите убираться? Знаете игру PowerWash Simulator? Какие чувства она у вас вызывает?
На бумаге это звучит максимально странно: вы часами смываете грязь со старых фургонов или заборов. Но давайте разберем это с точки зрения геймдизайна 📝🧐
Основной кайф здесь в моментальном результате. В реальности мы редко видим как наши усилия мгновенно превращают хаос в порядок. В игре же каждый сантиметр очищенной поверхности дает четкий визуальный фидбек. Вы буквально стираете грязь и возвращаете вещам их первоначальный вид. Это медитативный процесс где у вас есть полный контроль над ситуацией 🌊
Магия в том что игра превращает монотонную работу в поток дофамина за счет простого цикла: приложил усилие и сразу увидел результат ⚡️🔋
На днях я ощутил это на себе в реальности когда затеял уборку в квартире 🏠🧼 Поначалу лень но как только видишь чистые поверхности и порядок в вещах накрывает чувство глубокого удовлетворения. В прибранной квартире сразу и думается легче и работать приятнее. Когда вокруг нет лишнего визуального шума фокус на коде или архитектуре игры держится гораздо лучше 💻🎯
В общем PowerWash доказал что в наведении порядка есть свой особый фан если правильно настроить обратную связь 💡✨
А вы какие еще знаете игры которые вызывают такие же приятные но нестандартные эмоции? Может это Unpacking с его уютом от расстановки вещей или Hardspace Shipbreaker где вы методично разбираете корабли на детали 📦🛠
Пишите в комменты свои примеры игр которые успокаивают через порядок 👇
👍4🐳1
И тут я понял... 💡
В этот ран начали вести документацию в Obsidian. Наша вики растет невероятными объемами. Глядя на эту структуру я наконец увидел что мы делаем и осознал масштаб. То что раньше было в голове теперь материализовалось в сотни страниц текста и связей. 📚
Сегодня пришло полное принятие того что мы делаем очень сложную и дорогую игру. Речь не про ценник в сторе а про объем сил и ресурсов которые мы отдаем разработке 🚀
Стало ясно что это не просто поделка а серьезная работа. Алгоритмы, анимации, звуки и VFX накапливаются в нас опытом который ощутим уже сейчас. Этот труд точно не будет напрасным📈⚙️
Да это амбициозная цель и амбициозный проект. Но мы стремимся сделать его идеально и мы это сделаем. Мы создаем систему которая выводит нас на новый уровень как разработчиков 🏆🔥
П.С. Девлог будет, но чуть позже. Это не опаздание, так запланировано. Мы ориентируемся на половины месяца так что ожидайте видос на неделе. Покажем результаты текущего рана и поговорим о планах 🎬
В этот ран начали вести документацию в Obsidian. Наша вики растет невероятными объемами. Глядя на эту структуру я наконец увидел что мы делаем и осознал масштаб. То что раньше было в голове теперь материализовалось в сотни страниц текста и связей. 📚
Сегодня пришло полное принятие того что мы делаем очень сложную и дорогую игру. Речь не про ценник в сторе а про объем сил и ресурсов которые мы отдаем разработке 🚀
Стало ясно что это не просто поделка а серьезная работа. Алгоритмы, анимации, звуки и VFX накапливаются в нас опытом который ощутим уже сейчас. Этот труд точно не будет напрасным📈⚙️
Да это амбициозная цель и амбициозный проект. Но мы стремимся сделать его идеально и мы это сделаем. Мы создаем систему которая выводит нас на новый уровень как разработчиков 🏆🔥
П.С. Девлог будет, но чуть позже. Это не опаздание, так запланировано. Мы ориентируемся на половины месяца так что ожидайте видос на неделе. Покажем результаты текущего рана и поговорим о планах 🎬
🔥5❤1🤯1
Начнем потихоньку разбирать книгу по геймбалансу. Рассыплю пару крупиц знаний. Так вот первая глава Game Balance ломает главный стереотип начинающих разработчиков 📖🛠
Многие ошибочно полагают что сбалансированная игра это среда где все стратегии персонажи или карты идеально равны между собой. На самом деле полная симметрия часто убивает интерес. Если у игрока нет возможности найти скрытое преимущество или собрать сильную комбинацию игра превращается в рутину 📉⚙️
Шрейбер утверждает что баланс это прежде всего управление вниманием и вовлеченностью. Мы создаем систему где игрок постоянно находится в поиске наиболее эффективного пути. Если этот путь находится слишком быстро игра пройдена. Если путей слишком много и они одинаково эффективны сам выбор теряет всякий смысл.
Наша задача заключается в поддержании состояния неопределенности. Игрок должен чувствовать что он может переиграть систему за счет своего понимания механик. Математика здесь нужна не для того чтобы сделать всех одинаковыми а для того чтобы контролировать уровень этого неравенства и не дать ему разрушить игровой цикл 📐⚛️
Баланс это инструмент который заставляет игрока сомневаться в каждом своем решении.
А вы как считаете должна ли игра быть идеально честной или в ней всегда должно быть место для сломанных комбинаций? 👇
Многие ошибочно полагают что сбалансированная игра это среда где все стратегии персонажи или карты идеально равны между собой. На самом деле полная симметрия часто убивает интерес. Если у игрока нет возможности найти скрытое преимущество или собрать сильную комбинацию игра превращается в рутину 📉⚙️
Шрейбер утверждает что баланс это прежде всего управление вниманием и вовлеченностью. Мы создаем систему где игрок постоянно находится в поиске наиболее эффективного пути. Если этот путь находится слишком быстро игра пройдена. Если путей слишком много и они одинаково эффективны сам выбор теряет всякий смысл.
Наша задача заключается в поддержании состояния неопределенности. Игрок должен чувствовать что он может переиграть систему за счет своего понимания механик. Математика здесь нужна не для того чтобы сделать всех одинаковыми а для того чтобы контролировать уровень этого неравенства и не дать ему разрушить игровой цикл 📐⚛️
Баланс это инструмент который заставляет игрока сомневаться в каждом своем решении.
А вы как считаете должна ли игра быть идеально честной или в ней всегда должно быть место для сломанных комбинаций? 👇
🔥3🤨1
Проблема доминирующей стратегии и значимый выбор 📉⚖️
Продолжаем разбирать базу системного дизайна. Одной из центральных тем первой главы является концепция значимого выбора ⚙️🧩 В геймдеве часто встречается ошибка когда одна стратегия становится объективно лучше всех остальных. Это называется доминирующей стратегией.
В такой ситуации баланс считается разрушенным потому что у игрока исчезает необходимость думать. Он просто нажимает на самую сильную кнопку 🏁 Шрейбер объясняет что значимый выбор возникает только тогда когда у каждого варианта есть свои плюсы и минусы 🔍⚖️
Если у вас есть два меча и один из них просто на 10 процентов мощнее другого выбора не существует. Но если один бьет медленно но сильно а другой наносит быстрые удары с малым уроном появляется поле для экспериментов ⚔️🛡 Игрок начинает сопоставлять эти параметры со своим стилем игры или текущей ситуацией на поле боя.
Мы как инженеры системы должны проектировать такие развилки на каждом этапе. Математический баланс здесь выступает как ограничитель который не дает одному варианту поглотить все остальные 📏🏗 Важно понимать что игрок всегда будет искать кратчайший путь к победе и наша цель сделать этот путь интересным и полным сложных решений.
Продолжаем разбирать базу системного дизайна. Одной из центральных тем первой главы является концепция значимого выбора ⚙️🧩 В геймдеве часто встречается ошибка когда одна стратегия становится объективно лучше всех остальных. Это называется доминирующей стратегией.
В такой ситуации баланс считается разрушенным потому что у игрока исчезает необходимость думать. Он просто нажимает на самую сильную кнопку 🏁 Шрейбер объясняет что значимый выбор возникает только тогда когда у каждого варианта есть свои плюсы и минусы 🔍⚖️
Если у вас есть два меча и один из них просто на 10 процентов мощнее другого выбора не существует. Но если один бьет медленно но сильно а другой наносит быстрые удары с малым уроном появляется поле для экспериментов ⚔️🛡 Игрок начинает сопоставлять эти параметры со своим стилем игры или текущей ситуацией на поле боя.
Мы как инженеры системы должны проектировать такие развилки на каждом этапе. Математический баланс здесь выступает как ограничитель который не дает одному варианту поглотить все остальные 📏🏗 Важно понимать что игрок всегда будет искать кратчайший путь к победе и наша цель сделать этот путь интересным и полным сложных решений.
❤1🤨1