Пікірлер
@whatareulookingat235
@whatareulookingat235 16 сағат бұрын
Как всегда полезно! Хотелось бы также увидеть UI и Settings Menu в частности. Хотелось быть уточнить, в текущем подходе - настройки будут инициализироваться в GameEntryPoint? То есть достаём прокси настроек и сетим значения к примеру в аудио микшер.
@gamedevlavka
@gamedevlavka 10 сағат бұрын
@@whatareulookingat235 скорее нужен какой-то биндер для настроек, который да цепляется на прокси и перекидывает значения в микшер, как только они обновляются
@lDyamonagl
@lDyamonagl Күн бұрын
У Васяна и Стасяна удалили подписьки....
@Barlog2012
@Barlog2012 3 күн бұрын
Спасибо. В чём разница с брокером сообщений, сходу не соображу.
@grootkroot22
@grootkroot22 3 күн бұрын
Допустим у меня есть скрипт с монобехом и публичным методом Initialization(SomeSystem someSystem), как мне в него передать эту систему, допустим в геймплейной сцене? У меня в голове только это: сделать сереализуемое поле в геймплейной точке входа, пробросить через инспектор и вызвать метод инитиалищации в этой точке входа. Как лучше сделать?
@gamedevlavka
@gamedevlavka 3 күн бұрын
Все правильно думаешь. Вся инициализация - через точку входа, где ты увидишь, как и из чего состоит сцена. Но есть один нюанс. Очень похоже на MVVM, только тогда скрипт с монобехом будет что-то вроде MyObjectBinder : Monobehaviour, система будет вьюмоделью MyObjectViewModel. И метод называться Bind(MyObjectViewModel viewModel) В случае MVVM ты можешь прокидывать зависимости в глубину. Условно у тебя есть некий WorldRootBinder - что является корневым баиндером, который и кидается в поле EntryPoint, как ты и написал. Но может быть внутри WorldRootBinder есть како-нибудь CharactersBinder, а внутри CharacterBinder - SomeSpecificCharacterBinder. И тогда зависимости спускаются соответственно через WorldViewModel дальше CharactersViewModel, дальше в SomeSpecificCharacterViewModel - как пример. Надеюсь понятно объяснил и не запутал. Мы будем это проходить чуть позже, в ближайшие 3 видео
@shpeenut
@shpeenut 4 күн бұрын
вижу, что прокси довольно хорошая вещь. жду отдельного видоса по этому паттерну!
@boost_456
@boost_456 4 күн бұрын
Как с помощью R3 сделать публичное реактивное свойство, но чтобы у него был сеттер, ограничивающий Math.Clamp'ом подаваемые значения?
@gamedevlavka
@gamedevlavka 4 күн бұрын
Никак, реактивные свойства для этого не созданы, они как уведомлялки
@boost_456
@boost_456 2 күн бұрын
@@gamedevlavka решил эту проблему, создав подписку на реактивное свойство внутри этого же класса
@grootkroot22
@grootkroot22 5 күн бұрын
Смотря все видео из этой линии, узнаю много мелких и удобных штук, про которые не говорят другие ютуберы и понимаю, что нужно больше применять реактивность, тк она очень удобная. Лучшая серия видосов)
@NewUser78654
@NewUser78654 5 күн бұрын
Все очень печально. Автору стоит серьезно подумать над тем, что он делает и почему для простейших решений (которые уже есть у более опытных разработчиков) он строит такого вот "монстра". Смотрю на всё это и мне страшно. Страшно - мы не знаем что это такое, если бы мы знали что это такое - мы не знаем что это такое. Если честно, у меня даже есть мысль, что автор троллит. Статический класс и БД SQLite. Всё. Без подписок, отписок, абстракций...они не для этого были созданы. Не надо показывать знания всего и толкать это всё туда, где ему не место. Не надо. Решение просто ужасно. И это выяснится на большом и реальном проекте. Это когда вы будете работать со стим и 100500 пользователями. Так сказать небольшая ответственность. И вам надо будет контролировать, загружать, изменять кучу ресурсов, обновления игры, модифицировать структуру сохранений. И вот с этим, что на видео, вы хлебнете горя.
@gamedevlavka
@gamedevlavka 5 күн бұрын
@@NewUser78654 Окей, засуну опыт работы над крупными проектами со Scopely (~200 человек на проекте, из них 40 программистов), откуда и взялся мой опыт работы с MVVM, реактивностью и клиент-серверным взаимодействием куда подальше. А если серьезно, то как раз такие решения используются на крупных проектах, и меня сложно будет переубедить, т.к. я имею немалый опыт работы с крупными проектами. Но ради справедливости скажу, что строить такого монстра я и не заставляю, я просто делюсь знаниями, использовать их или нет - дело ваше. Не стоит расписаться по поводу статики и базы данных, эта комбинация смертельна для мультиплатформенный проектов сложнее гиперказуалки (в долгосроке, конечно же). А простую игру можно на коленке написать часов за 8-16 без визуала
@AlexdV-Channel
@AlexdV-Channel 5 күн бұрын
Вопрос что смотреть за обедом отпал сам собой)
@MrGolovewkin
@MrGolovewkin 5 күн бұрын
Cool!
@nepochat
@nepochat 5 күн бұрын
👾💜
@user-sx7vo6kg8t
@user-sx7vo6kg8t 5 күн бұрын
Мне кажется с точки зрения загрузки игры, было бы лучше использовать какой нибудь unitask, чтобы не делать всякие флаги на загрузку и использовать await. Да и интерфейс провайдера настроек надо делать по хорошему сразу для работы с ожиданием. Иначе все равно придётся лезть в реализацию и изменять тип возвращаемого значения.
@gamedevlavka
@gamedevlavka 5 күн бұрын
@@user-sx7vo6kg8t да, можно подрубить uniTask, или ещё что, станет лучше конкретно в этом месте, но в остальном проекте они не понадобятся, так что оставлю пока так. Если прижмёт, то поменять - 5 минут
@NewUser78654
@NewUser78654 5 күн бұрын
Мне кажется надо сделать 1 статический класс и 1 БД SQLite и не пихать всё что есть в языке туда, где это не надо. Люди, 2024 храните данные в БД - это же очевидно. Используйте всю мощь SQL - всё масштабируется, синхронизируется, да что угодно - недостатков нет. Опционально пойти на курсы программистов майкрософт, которые ведут сертифицированные преподаватели со стажем и внимательно посмотреть где используются те или иные языковые конструкции. За 20 лет уже надоело, что каждый программист из страха показаться не профессионалом показывает знания всех паттернов, языковых конструкций, всех встроенных возможностей языка в одном решении . Впихнуть всё. Доколе?
@binarchik039
@binarchik039 5 күн бұрын
УРА
@KontAin
@KontAin 5 күн бұрын
сможешь помочь мне с ошибкой при билде на андроид?
@gamedevlavka
@gamedevlavka 5 күн бұрын
Залетай, тут помогают: t.me/gamedevtavern/18991
@Magic__Man
@Magic__Man 5 күн бұрын
Круто! Смотрим!
@hatiko8227
@hatiko8227 6 күн бұрын
Кстати я бы вообще избегал использование ContentSizeFitter т.к. если у его парента есть компонент Horizontal/Vertical LayoutGroup, он дает предупреждение и перестает нормально работать, я бы саму кнопку еще поместил в объекте на котором есть Horizontal/Vertical LayoutGroup с галочкой ControlChildSize.
@hawk8684
@hawk8684 6 күн бұрын
А как быть с динамичекми объектами которые взаимодействуют с игроком при прикосновении? И как настроить границы экрана чтобы игрок за них не могу заходить если границы это весь видимый экран?
@RGameFactory
@RGameFactory 11 күн бұрын
Надо больше времени тратить на подбор цветов, еще минут 15 а лучше 30, все ведь смотрят видео что бы посмотреть как цвета выбирают а не работу с грид
@alekseystepanov4108
@alekseystepanov4108 12 күн бұрын
Пилим игру на GamePush)
@gamedevlavka
@gamedevlavka 12 күн бұрын
@@alekseystepanov4108 я думал об этом. Сомневаюсь, что веб будет основной платформой, но к моменту интеграции, возможно геймпуш подтянет множество мобильных платформ)
@user-qx7qi7dq5q
@user-qx7qi7dq5q 12 күн бұрын
Спасибо за подкаст!
@RimuruDev
@RimuruDev 12 күн бұрын
Великолепный подкаст, очень понравилось. Отдельное спасибо Сергею за уделенное время, было круто🔥
@raidor2463
@raidor2463 13 күн бұрын
Очень интересный курс! Надеюсь ты не забросишь проект, эти видео многим будут полезны. Спасибо!
@yflow5337
@yflow5337 13 күн бұрын
Спасибо, уже понятнее. Удобно когда доступ в любой точке проекта, жаль что нежелательная схема. Как бы это сделать чтобы не нужно было по полям всё тягать и без сложных доступов через десять ветвлений, неужели нет возможности более удобно работать. Еще немножко не по теме, вопрос, как сделать формат фигурных скобок чтобы они сразу размещались в таком стиле, когда открытая стоит сразу в строке, а не внизу?
@issatay8876
@issatay8876 13 күн бұрын
Получиться использовать зенджект, или лучше сделать твой варик?
@gamedevlavka
@gamedevlavka 13 күн бұрын
@@issatay8876 зенжект подругому подключается, поэтому смысл один и тот же, но именно менеджмент ссылок не один к одному копируется на зенжект. Если разбираешься в зенжекте - можешь его использовать
@issatay8876
@issatay8876 14 күн бұрын
В начале не понял, а потом как не понял. Видос мощный, продолжай👍
@issatay8876
@issatay8876 13 күн бұрын
а теперь каак понял
@issatay8876
@issatay8876 14 күн бұрын
Можно ли R3 заменить UnitTask?
@gamedevlavka
@gamedevlavka 14 күн бұрын
@@issatay8876 и R3 и UniTask существуют для одной задачи - асинхронное программирование, но работают совершенно по разному. Так что концептуально, да, но эти видео не совсем добавят понимание
@vvkbees6473
@vvkbees6473 14 күн бұрын
🤝
@issatay8876
@issatay8876 15 күн бұрын
В пк играх все также работает?
@gamedevlavka
@gamedevlavka 15 күн бұрын
@@issatay8876 на любой платформе. Вообще этот проект нацелен на мультиплатформенность, так что можно не бояться на этот счет
@issatay8876
@issatay8876 14 күн бұрын
@@gamedevlavka спасибо за ответ. Просто я хочу сделать презентабельный рогалик, а такую систему с ui roots вижу впервые
@sfarx7167
@sfarx7167 15 күн бұрын
Мне кажется мне нереально повезло, что я нашёл эти видосы. То, что искал, то и нашёл, даже круче.
@vovawait
@vovawait 15 күн бұрын
Архитектура - это то, чего мне не хватает. Думаю, что мало просмотров из-за замедления просмотров. Зато позже твои видосики обретут культовый статус. Люди начнут называть детей в честь тебя. А пока что я подписался на бусти. Остальным тоже рекомендую.
@issatay8876
@issatay8876 12 күн бұрын
Назову сына Лавка
@0VERF0RT
@0VERF0RT 16 күн бұрын
У меня почему то текст скрипта в инспекторе серый и я не могу с ним работать. Причём ошибок нет
@KontAin
@KontAin 16 күн бұрын
мне нужно чтобы там где челка была прозрачность и там показывало то что происходит в игре
@gamedevlavka
@gamedevlavka 16 күн бұрын
@@KontAin это делается с помощью адаптивной вёрстки (якоря), но расписать подробно я не смогу текстом. В сумме нужен SafeArea на канвасе и внутри адаптивная верстка
@KontAin
@KontAin 16 күн бұрын
@@gamedevlavka как это сделать у игроков которые играют с айфон у них нет половины интерфейса из-за чёлки как можно сделать сдвиг экрана чтобы чёлка была отдельно от интерфейса?
@gamedevlavka
@gamedevlavka 16 күн бұрын
@@KontAin тебе нужно найти скрипт SafeArea и его накидывать на верхний слой UI, он будет скукоживать канвас и сдвигается интерфейс внутри,если правильно сверстан. К сожалению, текстом в комменте понятнее не объяснить
@mazhavilcomputer
@mazhavilcomputer 16 күн бұрын
Если после примера всё ещё непонятен Boxing/Unboxing - рекомендую урок на ulearn, где рисуют карты памяти. kzfaq.info/get/bejne/fM-CftSVtryRmIU.html И впринципе предыдущие уроки, где рассматривают карты памяти для разницы ссылочных типов и типов значений, тоже очень полезны и понятны.
@shpeenut
@shpeenut 16 күн бұрын
кстати, в след видосах надеюсь сделаешь выход из игры через кнопку в меню, просто не знаю даже как это сделать без использования обычных Action
@KontAin
@KontAin 16 күн бұрын
как сделать как в стандофф полоску для телефонов с вырезом? ответ нужен очень срочно
@user-eu5uc9iw3x
@user-eu5uc9iw3x 18 күн бұрын
У меня такой вопрос, откуда брать эти значения в методе Run() в скрипте MainMenuEntryPoint, если этот метод вызывается в "начале жизни смены", а значения могут появиться "в любое время": var saveFileName = "ololo.save"; var levelNumber = Random.Range(0, 300); P.S. может я чего не понимаю)
@gamedevlavka
@gamedevlavka 17 күн бұрын
Нет-нет, эти значения появляются не вначале жизни сцены. Они появляются, когда поступит сигнал на смену сцены: нажимаем на кнопку, срабатывает подписка - в этот момент собираем все нужные данные для передачи наружу и продолжаем вызов смены сцены, но уже с выходными параметрами
@user-eu5uc9iw3x
@user-eu5uc9iw3x 18 күн бұрын
Хотелось бы увидеть применение ViewModel. Не знаю к какому пункту это относится, но я за это.
@gamedevlavka
@gamedevlavka 18 күн бұрын
Это к обоим в конечном счете)
@shpeenut
@shpeenut 18 күн бұрын
спасибо за то, что ты существуешь
@justsimon_
@justsimon_ 18 күн бұрын
Питаю интерес к дата биндингу, если это будет в теме UI - голосую за неё :) Вновь пробудилась тягя к обучению, спасибо за твою работу!
@Erosrolf
@Erosrolf 19 күн бұрын
Сейчас доступ к контейнеру есть только в EntryPoint как я понимаю. Ты специально так сделал? Или дальше все же предполагается доступ к контейнеру через инстанс?
@gamedevlavka
@gamedevlavka 18 күн бұрын
Доступ только у регистраторов, внутрь сервисов и вьюмоделей контейнер передаваться не будет, незачем кому попало знать о нем
@MrGolovewkin
@MrGolovewkin 19 күн бұрын
Класс! Делаю свою игру вместе с тобой. Кажется, время впилить DI :)
@lDyamonagl
@lDyamonagl 19 күн бұрын
Не надо мне чистить мои подписьки, я сам, уже не маленький, уже не стажер
@grootkroot22
@grootkroot22 19 күн бұрын
Видео топ, хочется увидеть разработку состояний. UI, как по мне, можно самому создать.
@gamedevlavka
@gamedevlavka 19 күн бұрын
1:1
@sunriseq26
@sunriseq26 19 күн бұрын
Проект очень круто, спасибо тебе! Давай UI начнём пилить?
@gamedevlavka
@gamedevlavka 19 күн бұрын
Пока 1:1)
@user-sx9kf7lg9x
@user-sx9kf7lg9x 19 күн бұрын
А так спасибо большое за ролики
@user-sx9kf7lg9x
@user-sx9kf7lg9x 19 күн бұрын
У меня возникли проблемы еще в том ролике когда когда повторял
@gamedevlavka
@gamedevlavka 19 күн бұрын
Есть проект на гитхабе открытый, где можно и работоспособность увидеть, и самому код потыкать, и каждое видео - отдельный комитет, можно видеть состояние проекта после каждого видео
@Erosrolf
@Erosrolf 19 күн бұрын
Ура, новое видео!) Я разрабатываю игру в качестве пет-проекта и ты мне очень помогаешь, спасибо тебе за это))
@ViXX_gamedev
@ViXX_gamedev 19 күн бұрын
топчик👍
@sonicsp3149
@sonicsp3149 19 күн бұрын
Спасибо, такого хорошего материала очень мало. Возник вопрос вопрос: а почему добавление в инвентарь делается не через контроллер? Судя по схеме это событие генерирует View, которое логически связано только с контроллером и ничего не должно знать о сервисе
@RcFMhK
@RcFMhK 19 күн бұрын
Привет! Можешь подсказать куда капать. Я закидываю картинки из папок через префаб Image в Scroll, и с помощью GridLayoutGroup выстраиваю по порядку в несколько рядов, но как оставить реальный размер картинок, а то Grid их подгоняет под один размер, а самому через скрипт их не хочется править. Есть же компонет который может возвращать их реальный размер как он есть. Заранее спасибо!
@gamedevlavka
@gamedevlavka 19 күн бұрын
Юнитевский грид больше никак не работает, так что придётся искать обходные пути)
@RcFMhK
@RcFMhK 18 күн бұрын
@@gamedevlavka Да, но куда капать?)
@gamedevlavka
@gamedevlavka 18 күн бұрын
@@RcFMhK в собственный Grid, который расставит префабы по сетке как тебе нужно без изменения размера