Лавка Разработчика
3.36K subscribers
392 photos
42 videos
16 files
635 links
Мы тут игры пилить будем, или как?

YouTube: https://youtube.com/@gamedevlavka

Автор: @vavilichev

Все контакты: https://linktr.ee/vavilichev
加入频道
Еще одна схемка, очень надеюсь, что понятная для тех, кто слышал слово DI или фразу Dependency Injection

На схемке типичная контейнеризация зависимостей, разделенная на разные уровни доступа:

- Уровень игры, где лежат сервисы, существующие всю игровую сессию. Часто это сервисы аналитики, показа рекламы, платежей, время и подобные

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

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

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

Все вопросы, особенно от тех, кто вообще ничего не понял - жду в комментариях, желательно с пояснением, какая часть именно не понятна.
👍18🔥94🥴2
This media is not supported in your browser
VIEW IN TELEGRAM
Скриншот-суббота
Vol. 137


Схематичная, математичная

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

🔠 Для продолжения цикла роликов проекта #пилиигру надо бы разработать видение архитектуры проекта, и поэтому я на этой неделе упарывался в схемки, к которым я смогу отсылаться, чтобы рассказать всю картину в целом в сжатые сроки. Благодарю за вопросы в комментах, они мне тоже помогут в уточнениях. Схемки глануть можно здесь, здесь, здесь и здесь.

___
Еще играю в Ratchet & Clank: Rift Apart. Будет что рассказать, т.к. намереваюсь пройти. А вы чем занимались на неделе? Кидайте в комменты ваши нюдсы гифки, тексты с результатами!

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥86😱2
Продолжаем идти по "кусочкам" архитектурной схемки

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

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

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

Этим мы уже занимались в #пилимигру, если что. У нас как раз домики так строятся.

Вопросики в комменты, пожалуйста!
🔥20👍8
🎯 Ищем игры на релиз и маркетинг!

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

Идеальный кандидат:

📌 Сформированная команда (1-30 человек) с доказанным опытом или сильным прототипом.
📌 Проект с четкой дорожной картой, ведущей к релизу в ~2026 году.
📌 Игра, сочетающая сильную тематику (техно/этика/история), новаторский геймплей и выразительный визуал.

Мы предлагаем:

Поддержку,
🤝Партнерство,
💥Издательство,
🔥МАРКЕТИНГ

Присылайте свой проект👉 https://yangx.top/CyberRomGamesBot
📩 https://gamecyber.ru
Baldur's Gate III пройден

Играя одну сессию в неделю с друганами, 109 часов геймплея прошлись за полтора года реальной жизни. Впечатляет!
А ведь игра стоит всего $30 (вероятно, где-то подороже, но тем не менее). $30 за 109 часов историй и развлечений, представляете? А говорят, игры дорогие нынче.

Хочу поделиться отзывом об этой игре.

От игрока:
Игра отличная, однако Divinity: Original Sin 2 лучше. В этом мы сошлись во мнении с моими друзьями после завершения BG3. В свою очередь Baldur's Gate 3 взяла награзу GOTY вполне заслуженно. В игре графон, в игре сюжет, в игре тонны интерактивностей, что позволяет не скучать учитывая достаточно однообразную боёвку.

Что понравилось:
- DND с кубиком. Larian показали, как работают механики рандома в ДНД играх буквально подбрасыванием кубика. Это позволило многим игрокам узнать больше о DND (в том числе и для меня) и многих даже побудило поиграть в настолки. Механика классная, и породила множество мемов.
- История. А именно - персонажи. История не про спасение мира, но спасение города, понравилось. Персонажи вообще классные, у каждого своя глубокая история, свои проблемы, страхи, свой характер. Не могу вспомнить персонажей, прописанных лучше, чем в BG 3
- Графоний - завезли. Игра оч красивая
- Сиси и писи - завезли, в том числе романтик и любовные утехи. К тому же все помнят ролик про соитие с друидом в форме медведя. Такое одновременно откровенное и нейтральное изображение темы наготы и секса мне понравилось
- Баланс игры-сюжета, неторопливый геймплей с интересными сюжетными вставками, с большой вариативностью происходящего, плюс зависящего от навыков (в основном харизмы), идеальный кандидат на прохождение в кооперативе под чипсеки

Что НЕ понравилось:
- Прокачка. 12 (вроде) уровней за всю игру, качаются долго и различия между первым уровнем и уровнем после 100 часов игры, не то чтобы не значительны, но хотелось бы больше. Способностей много, но пользуешься 3-4.
- Боевка. Очки действий и навыков перемудрили, как мне кажется. Кто играл, тот поймет. Вроде бы их цель сделать ограничение на использование мощных навыков, но получилось так себе. Сами бои не шибко сложные, чтобы это имело хоть какой-нибудь смысл. Плюс, можно использовать долгий отдых без особых последствий, поэтому после боя можно восстановить все силы. Самое большое разочарование - смещение фокуса с комбинированных атак. Когда разливаешь воду - электризуешь ее, масло - поджигаешь, кровь - мажешь стрелы и т.д. Они есть (комб атаки), но внимания им не уделяется, эффекта от них существенного нет. Стратегия тут скукожилась
- Лут. Тут минус небольшой, за все 109 часов я нашел лишь один плащ на мага, это... Страннова-то

Итог:
BG 3 с точки зрения разработки геймплея и основных механик на самом деле не очень-то большая. Огромная работа была проведена с окружением, с катсценами, с сюжетом, вариативностью и балансом - это правда. Рекомендую ли я в нее поиграть? Наверное, да. Особенно, коопчиком под чипсеки
👍2510🤡4
Поделюсь еще одной схемкой. Более непонятно, но уже ближе к проекту #пилимигру, что мы с вами делаем

В посте выше, я уже рассказывал, как устроены взаимосвязи в MVVM. Но то были взаимосвязи "по вертикали", то есть кто кого видит, и за что отвечает. Теперь же нам нужно бы разобраться, как строятся горизонтальные связи. Как условное оружие, которое можно модернизировать отображается и в геймплее и в UI окошке с крафтом, например? Используют ли они одну вьюмодель?

Прежде чем читать далее, небольшой дисклеймер:
1. На схеме выше, а также в проекте #пилимигру мы делаем не бест оф зе бест реализацию MVVM. Потому что идеальная реализация подразумевает то, что баиндеры - это маленькие монобехи цепляющиеся непосредственно к свойствам классов вьюмодели. То есть в редакторе вешаешь баиндер (монобех) на строку, выбираешь вьюмодель к которой цепляешься и реактивное свойство со строкой. Таким образом такой баиндер можно использовать повсюду. Баиндеры могут быть и на спрайты, и на звуки, и ковертеры вроде bool => Sprite, чтобы в зависимости от реактивного свойтсва подставлять нужную картинку и т.д. Этого у нас не будет, но у меня однажды была попытка сделать подобное в ассете Lukomor. Наверное, надо бы его обновить, глядишь, полезным окажется
2. Вьюмодели нужны не для всех объектов в игре. В зависимости от игры, для мировых объектов вьюмодели могут не применяться. Пример: игры вроде Lethal Company, или R.E.P.O. Все объекты с которыми можно взаимодействовать не нуждаются во вьюмоделях, т.к. не содержат необходимости быть соединенными с моделью. Игрок играет сессию, собирает/рушит/перемещает предметы в игре, но это никак не влияет на модель (сами предметы в модели никак не отображаются). Предметы могут нанести урон игроку - но это происходит за счет игрока, соединенного с моделью, а не предметов. Так что не нужно пихать вьюмодели там, где они не нужны.

В остальном, мы получаем некое дерево зависимостей, с входом через 2 точки: для UI и для World, т.е. для мира. Так разделено, потому что UI обычно создается из префаба, а World (то бишь сцена) имеет какие-то заготовки помимо создаваемых объектов. Фабрики вьюмоделей регистрируются в DI контейнере, поэтому в момент входа на сцену после регистрации, мы можем запросить нам выдать корневые вьюмодели - для UI и для World. Тут же в точке входа мы можем вытащить UIRootBinder и WorldRootBinder и выполнить методы Bind(uiRootViewModel) и Bind(worldRootViewModel) на обоих. Каждая вьюмодель может иметь внутри себя ссылки или списки ссылок на другие вьюмодели. Они даже могут пересекаться (несколько вьюмоделей иметь ссылку на одну и ту же модель, см. ViewModel D). Игрок имеет инвентарь, инвентарь имеет ячейку, ячейка имеет предмет - вложенность, я думаю понятна.

Получается каждый баиндер получает свою модель. И (в нашем проекте) каждый баиндер имеет ссылку на вложенные баиндеры. То есть условный баиндер инвентаря имеет ссылку на баиндеры ячеек инвентаря. Баиндер инвентаря получает вьюмодель инвентаря в которой лежит список вьюмоделей ячеек инвентаря. Баиндер инвентаря проходится по этому списку и запихивает каждую вьюмодель ячейки в баиндер ячейки. И так далее. Получается дерево.

Интересный момент, что при такой структуре разные баиндеры могут получать одну и ту же модель и отображать ее по разному. Вспомним пример с крафтовым оружием из начала поста: вьюмодель оружия содержит информацию обо всех "обвесах", мировой баиндер оружия их визуализирует, а UI баиндер показывает иконками, какой обвес в какой слот на оружии добавлен. Меняя обвес в UI, он автоматически меняется и в мире, т.к. биндеры подписаны на одну и ту же модель

Как-то так. Похоже, скоро всё соберется в кучку и выдавится в видеоролик.. Вопросы!
🔥16👍83
Скриншот-суббота
Vol. 138


Схематичная, нагруженная

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

🔠 На этой неделе проработал ещё несколько важных схем для пояснения архитектуры проекта #пилимигру. Если повезет, то на неделе запишу видосик. Надо только всё в кучу собрать. Новые кусочки здесь и здесь

🔠 Ещё Baldur's Gate III завершил, и почему написал небольшой отзыв. К обсуждению можно присоединиться под этим постом

___
Рассказывайте как ваши дела? Как лето? Как проекты? Всё в комментариях!

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
Скриншот-суббота
Vol. 139


No Comments*

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

___
Надеюсь у вас с этим всё в порядке и вы закинете в комменты свои наработки за неделю, закинете же, да?

#скриншотсуббота
👍13💯54
Похоже, что надо вылезать из спячки и что-то делать, да?
👍32💯15🥴11🤷43
Скриншот-суббота
Vol. 140


Пора просыпаться

Всё ещё ничего не делал, но отдохнул, кажетс. Кажется удалось и готов двигаться дальше. Так что, какой-то контент начнет появляться с этой недели. Ну а пока..

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

#скриншотсуббота
🫡13🔥43🏆1
🕹Возвращаемся потихоньку, и начну с поверхностного обзора Ratchet & Clank: Rift Apart от Insomniac

Игра вышла в 2021м году, как демонстрация крутизны PlayStation 5. Через пару лет игра вышла и в Steam (2023).

Игра является продолжением Ratchet & Clank: Into the Nexus, первой части серии, в которую мне погружаться совсем не охота. Даже посмотреть: что там по сюжету. И далее станет понятно, почему.

Итак, Ratchet & Clank: Rift Apart - ААА игра от Insomniac Games, которая славится проработанными анимациями и вниманием к деталям. Собственно, наверное, на этом плюсы в игре и заканчиваются, по крайней мере для меня.

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

Но нам, как разработчикам больше нужны косячки и шороховатости, чтобы в своих играх не натыкаться на те же грабли, верно? Что я увидел в игре и пометил как "не очень":

1. В игре много оружия, и не смотря на то, что оно очень разнообразное, есть четкое преимущество одних над другими. То есть, есть условный автомат, дробовик, снайперка даже, гранаты с разными эффектами, даже спавн миньонов есть, которые атакуют врага. Это здорово. Но 99% геймплея покрывает 2-3 вида оружия. Единственная причина, которая заставляет использовать другое оружие (буквально заставляет): дефицит патронов. Битва с боссами выглядит обычно так: тратишь патроны с подходящих пушек (дальних), а затем вывозишь забрасывая всякой ближней фигней, что есть в наличие. Это не стратегия, это искусственная смена геймплея. Может быть кому-то прикольно, но не мне

2. Сюжет достаточно детский. Он не про становление героев, он такой, типично комиксовый: есть герой, есть злодей, который пакостит - надо победить, а то будет плохо. Краешком задет внутренний конфликт между Ривет и Кит, но весьма поверхностно. Кстати, Кит как персонаж раскрыта сильнее всех, хоть и не полностью. В общем, сюжет на 2/5

3. Еще по геймплею: его пытаются растянуть за счет миниигры Глючкой (типа программка, борящаяся с вирусами в системах, буквально стрелять по вирусам надо), миниигры с Кланком или Кит - головоломка, и за счет арены для Ривет. Глючка - хрень, а не геймплей, просто уничтожить вирусы, одно и тоже раз 6 за всю игру. Скукота без прогрессии. Головоломка с Кланком и Кит неплохая, прогрессия хорошая, только подбешивает что нужно внутри игры постоянно проходить 3 уровня, 3ий уже подбешивает однообразием. Арена для Ривет - хорошее разнообразие, плохая мотивация. Вроде зарабатываешь гайки (деньги), но покупаешь на них ненужное оружие (читать п.1). То есть мотивация остается - получить новый геймплей, новый вызов, чего малова-то, чтобы пройти все доступные арены. Я прошел 2 сложности арен, а 3я не доступна. Не знаю почему.

4. Прокачка оружия почти не ощущается. Очков прокачки много, много куда можно вложиться. А смысла в этом немного, опять же потому что оружие бессмысленно. Условно, в какую-то ненужную пушку можно вбухать 20-30 очков, но прогрессии не ощущается. Даже если бы пушки были полезные, то мне кажется нужно уменьшить количество шагов прокачки, но сделать их существеннее, вместо 20 шагов с увеличением урона на 1%, сделать 4 шага с увеличением на 5%. Как-то так.

Итого, оценки:
- Геймплей 3/5
- Визуал 4/5
- Звук и музыка 3/4
- Сюжет 2/5

Итого: 3/5. Рекомендовать не буду, можно использовать как референсы к анимациям

P.S. В титрах стоят заглушки. Много заглушек!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63👎1🔥1
А вы бы какую оценку поставили Ratchet & Clank: Rift Apart?
Anonymous Poll
40%
1️⃣
6%
2️⃣
19%
3️⃣
22%
4️⃣
13%
5️⃣
GMTK Game Jame 2025 скоро наклевывается (буквально завтра), а у меня огромное желание поучаствовать, а времени нэ ма :(

Кто-то будет участвовать? Готовы?

P.S. Есть небольшая вероятность, что получится поучаствовать в Brackeys Game Jam 2025.2😈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Всем здрасти!

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

https://www.youtube.com/watch?v=n6RFeQfG9mU

#полезное
👍22🔥122
Скриншот-суббота
Vol. 140


Еще пять минуточек

🔠 Решил для разминки сделать проект за "пару часов", но пока потратил на него минут 40 :) Собрал коробку основной комнаты (локации), управление, интерактивность запилил, но релизовал пока ток дверь. Подобрал визуал и освещение на основе ассетов от Synty. Продумал идею для демки (Кстати, идею придумал еще неделю назад, и забавно, что она совпала с интерпретацией джема GMTK: Loop), осталось всё собрать. Главная задумка - сделать игру без архитектуры, такие дела. Времени мало, снова занимаюсь бумажками, на этот раз для визы. Небольшое превью в комментах

🔠 Еще прошел To The Moon, т.к. она коротенькая, а это то, что сейчас можно позволить. Отзыв по игре будет позднее.

___
Традицию скриншот-субботы нарушать нельзя, так что я и от вас жду каких-то результатов в комментариях

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥122
⚡️С 0 ДО JUNIOR+ К 2026 ГОДУ. Детальный roadmap ⚡️

Всем привет! Меня зовут Яковлев Илья - я разработчик на юнити уже более 8 лет, а также автор телеграмм и ютуб каналов по разработке игр!
И сегодня хочу вас пригласить на открытый вебинар!

🔜 Когда?

12 и 13 августа, в 19:00 по МСК на прямой трансляции (вебинар пройдет в 2 дня, так как информации будет реально много)

🖥 Как попасть?

Для регистрации на вебинар нужно просто перейти к боту ТЫКНУВ СЮДА и нажать кнопочку "попасть на вебинар". Ссылка на трансляцию автоматически придет в день вебинара

👀 Что будет?

Впереди нас ждет 2 дня четких инструкций, следуя которым ты поймешь:

👉 Как продуктивнее всего изучать C# + Unity
👉 С какого этапа можно начинать проходить собеседования
👉 Как делать пет проекты, чтобы не стоять на месте и показывать релевантный опыт в резюме
👉 Насколько необходимо знание архитектуры junior разработчику и как вообще постигать эту область
👉 И не только

🎁 Ну и, конечно же, будут подарки:

👉 Ссылки на все озвученные в ходе вебинаров обучающие материалы
👉 Ссылка на полный и удобно составленный roadmap, двигаясь по которому вы сможете дорасти до junior+ уровня и выше

Думаю, получится очень крутой вебинар, который зарядит вас энергией и задаст вектор развития к новому году! Буду всех ждать🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4👍21😢1
Первые шаги в разработке игр

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

В нулевых выпускался такой журнал: Игромания. Он еще был бумажным и выходил с диском в комплекте. Денег на журнал у меня не было (250 руб, в те времена ухх), так что я брал журнал у своего обеспеченного одноклассника. Кстати, дело было где-то в 2005-2006 году. И вот на этом диске 100% есть CheMax - програмка с большой базой чит-кодов к играм, ArtMoney - программка для взлома числовых значений в одиночных играх и разные моды для игр. Очень много было для GTA. На тот момент GTA: VC и в скором времени для GTA: SA. В общем, читы, "взлом", моды - вот это вот всё мне очень нравилось.

Также там недалеко был релиз TES: Oblivion, и в относительно скором времени появился редактор к игре. В редакторе можно было переписывать и дополнять весь геймдизайн и нарратив! Это просто офигительный инструмент, который я и мой друг спускали на то, чтобы положить 600 стрел из драконьего стекла в сундук радом с городом, а в городе поставить огромную даэдра-паучиху, чтобы с ней весь город бился. И меняли реплики на русском языке на смешные, с матюками. Ржака же. 12 лет мне было.

Там же где-то, ставя моды на GTA: SA, понял, что можно не просто ставить моды, а свои вставлять. Так что я вооружившись пеинтом (ну не фотошопом же, интернета-то нет, где его взять) перерисовывал текстурки. Моя гордость - фак на луне, коряво нарисованный в том самом пеинте.

Какие у вас ребяческие и не очень первые шаги в геймдеве были?
1😁137🆒3