#8 Быстрая и простая архитектура проекта в Unity для новичков

  Рет қаралды 11,505

Game Director

Game Director

Жыл бұрын

Извините за качество записи, разберусь с этим.
В этом ролике мы разберем БАЗОВУЮ архитектуру для небольшого проекта с которой вам будет удобно работать. Это идеальный баланс между скоростью, расширяемостью и простотой.
Скинуться на геймджем: boosty.to/michaelgamedirector
Проверенный ассет для сейвов: assetstore.unity.com/packages...
➡ Telegram:t.me/game_director
➡ Группа MYINDIE в ВК: myindieru

Пікірлер: 103
@BaTTeRFeeD
@BaTTeRFeeD 4 ай бұрын
Вот он, человек со светлой темой в VisualStudio)
@GameDirectorMichael
@GameDirectorMichael 4 ай бұрын
Да это удобно когда компьютер стоит рядом с окном, иначе днём ничего не видно.
@tglstudio2655
@tglstudio2655 Жыл бұрын
Я новый подписчик, нравится твоя подача и хотел бы видеть больше таких тем, как в этом ролике, ибо она очень интересная)
@GameDirectorMichael
@GameDirectorMichael Жыл бұрын
Спасибо!)
@LFirm
@LFirm 5 ай бұрын
Дерзкий мужик!!! Научите нас пожалуйста делать игры с нуля до суперпупер профи!!!
@dm1tryrin
@dm1tryrin 21 күн бұрын
Опа! Я спалил локализацию))) Было бы интересно посмотреть как делать локализацию игры хотя бы на два языка!)))
@NoobittoBoy
@NoobittoBoy Жыл бұрын
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Спасибо)
@Daragni
@Daragni Жыл бұрын
"Это не человек, это ангел!" Благодарю!
@flugenkehhannen
@flugenkehhannen 6 ай бұрын
прикольно что оказывается все рано или поздно приходят примерно к одним и тем же решениям)
@alexeytrusovru
@alexeytrusovru Жыл бұрын
Лайк поставил авансом перед просмотром. :) Не разочаровался! Спасибо! :)
@co6op13
@co6op13 Жыл бұрын
Спасибо. давай ещё. Ждём следующий видос
@RS-nj2dv
@RS-nj2dv 10 ай бұрын
Какой душевный мужик🙂
@flaxshow8796
@flaxshow8796 Жыл бұрын
четко и по факту говоришь,продолжай делать контент
@Veles017
@Veles017 Жыл бұрын
Моё почтение автору канала!
@kowaruss
@kowaruss 10 ай бұрын
Ааааа.... Хочу вторую часть. Плиз. Очень очень очень надо
@GameDirectorMichael
@GameDirectorMichael 10 ай бұрын
Извини, были важные дела, на этой неделе запишу
@ue1angeange317
@ue1angeange317 Жыл бұрын
спасибо! классный контент!
@user-mm7ch3xw4e
@user-mm7ch3xw4e Жыл бұрын
Хороший видос, прикольная подача! От книг хуже не будет точно. Глядишь, человеку больше понравиться программировать. Вот в лавке разработчика без базовых знаний программирования вообще ловить нечего)
@GameDirectorMichael
@GameDirectorMichael Жыл бұрын
Скорее всего будет лучше от книг, но мне кажется до книг нужно дойти, сначала нужно приобрести интерес, а потом уже его развивать с помощью книг
@user-mm7ch3xw4e
@user-mm7ch3xw4e Жыл бұрын
@@GameDirectorMichael Вот тут согласен на 100%. Некоторые книги могут убить желание начинать что-то делать практически с первой страницы))) Я про Рихтера например)
@AntonTechDev
@AntonTechDev Жыл бұрын
Приветствую, Михаил! Ты сказал что игра на Стиме! Как там с монетизацией? Я имею ввиду если находишься в России, с монетизацией, переводами дохода со Стима на счёт в руб., проблем нет?
@GameDirectorMichael
@GameDirectorMichael Жыл бұрын
Привет, чтобы получать доход со Стима нужно создать карту где-то заграницей, насколько я знаю можно сделать её удалённо, никаких ограничений к россиянам кроме банковских у стима нет.
@AntonTechDev
@AntonTechDev Жыл бұрын
@@GameDirectorMichael Благодарю за ответ! Формат видео зачёт)
@user-lg7wy4km3y
@user-lg7wy4km3y 11 ай бұрын
Привет, спасибо за контент. Скажи, а как трудн осейчас найти работу джуну юнити?
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Всё сильно зависит от того, где и как ты будешь искать. В мире найти не очень сложно, со знанием английского. В России честно говоря не знаю, всё меняется каждый день.
@goshacar2273
@goshacar2273 9 ай бұрын
Привет. Наткнулся на твой канал, прикольная подача, интересно рассказываешь) Хотел сказать по поводу реализации синглтона: instance нужно делать обязательно свойством с приватным сеттером. На уровне новичков, которые в одиночку пилят свою игру это не повлияет, но в среднем проекте с командой хотя бы человек в 5-6 (не говорю уже о чём-то большем) всегда найдётся умник, который захочет перезаписать instance в другой части программы и всё сломается. Особенно руководствуясь принципом "нужно срочно, потом подрефакторим". Проверено на практике. Ну и как по мне паттерны проектирования для новичков рассказывать - не очень хорошо. Многие новички не понимают разницы между классом и экземпляром класса. А им это на практике применить нужно... Так что отвечая на вопрос есть ли что-то проще синглтона? Да, есть))
@GameDirectorMichael
@GameDirectorMichael 9 ай бұрын
Да, полностью согласен с синглтоном. По поводу простоты, тут мне субъективно кажется он очень простым для понимания, даже проще чем наследование например.
@Arve62
@Arve62 11 ай бұрын
Добрый день, гений ютуб шортсов))) Какой ассет использовать для локализации?
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Simple localization with Google Sheets
@r2d2-vw9wc
@r2d2-vw9wc 3 ай бұрын
А для простых игр для сохранения лучше использовать PlayerPrefs, или тот ассет?
@GameDirectorMichael
@GameDirectorMichael 3 ай бұрын
Без разницы, если сохранять только цифры то достаточно player prefs
@user-gg1wk1fx4b
@user-gg1wk1fx4b Ай бұрын
Я делал один класс SaveManager и во всех играх использую его. Делаешь в этом классе 3 метода Load, Save, ClearData и еще один класс пишешь в скрипте в этом куда будешь все сохранять SaveContainer и сверху пишешь модификатор [Serialize]. В контейнере делаешь что будешь сохранять допустим int a, и в SaveManager int a, в методе Save просто их приравниваешь a=a, затем делаешь класс Singlton и сохраняешь из любого места программы
@user-pp4tq3td7d
@user-pp4tq3td7d 5 ай бұрын
Привет, вопрос к открывающей сцене, она подгружает большинство систем и билд прекрасно работает. А как быть на этапе разработки, например, проверить сцену, ты не сможешь этого сделать, так как не все системы будут инициализированы. Сам новичок, и пришел к такому решению: #if UNITY_EDITOR [RuntimeInitializeOnLoadMethod] #endif private static void InitializeData() { } Хорошее это решение или нет?
@GameDirectorMichael
@GameDirectorMichael 5 ай бұрын
Хороший кстати вопрос. Я обычно создаю еще префаб который будет загружать все элементы и кидаю его на сцену где мне нужна проверка. Так как это касается только Эдитора, то тут любое самое простое решение подойдет.
@user-pp4tq3td7d
@user-pp4tq3td7d 5 ай бұрын
@@GameDirectorMichael Спасибо
@user-oe1hf4lu3x
@user-oe1hf4lu3x 11 ай бұрын
имбаа видос
@zimdd405
@zimdd405 Жыл бұрын
настоящий клад для меня !
@dmitriypermyakov5402
@dmitriypermyakov5402 8 ай бұрын
А можно Kingdom Come включить на послушать?
@user-ef8yw9mq8p
@user-ef8yw9mq8p 3 ай бұрын
уф, мужик)) оочеень странно, но может и полезно) я просто программист по профессии) смотрю и плачу) вообще, может и подходит для кликеров такое, но запутаться всё равно местами можно будет очень больно после этого...
@GameDirectorMichael
@GameDirectorMichael 3 ай бұрын
Если есть примеры более простой реализации чтобы игра могла работать и при этом разработчик понимал что где у него, то я действительно рад буду о них узнать))
@MaxHarperMusic
@MaxHarperMusic Жыл бұрын
привет, подписался, нужно больше про архитектуру приложения, очень надоела путаница в куче файлов связных друг с другом не пойми как
@domiurk
@domiurk 6 ай бұрын
Привіт, всі хвалять твою подачу, з ними згоден подаєш прикольно, надіюсь не закинеш цю справу, ооо і ще, було б класно якби ти хоча б в коментах залишав пакети які ти юзав, думаю комусь буде інтересно
@wofogames1139
@wofogames1139 Жыл бұрын
Don't destroy on load можно внутри if написать.
@Doctor_Leo_LS
@Doctor_Leo_LS 2 ай бұрын
Я, как новичок, ответственно заявляю, что далеко не глупый. Но вот вообще нет тех объяснений, что хотелось бы получить. Очень тяжело к усвоению. И самое печальное то, что сильно лучше тоже найти ничего не могу.
@GameDirectorMichael
@GameDirectorMichael 2 ай бұрын
Напиши пожалуйста подробнее, чего именно тебе не хватило
@mastervolodsobeck5176
@mastervolodsobeck5176 Жыл бұрын
Скинхед от мира программистов :) Мастер, а ты крут.
@xantezzv
@xantezzv 6 ай бұрын
чтобы пользоваться чензжектом не нужно читать книги десятки лет и выгорать это база
@StratoCatster
@StratoCatster 11 ай бұрын
Большие дяди не разрешают в script execution order лезть) Лучше точку входа сделать единую где иницилизировать один сервис локатор и в него положить все фичи)
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Да поэтому я и сказал что лучше его не трогать :) но в целом это не так страшно как все пугают. Просто если будут ошибки их сложно будет отследить
@user-fk6kg3qt7g
@user-fk6kg3qt7g 7 ай бұрын
Все хорошо, только вот код плохо видно, даже в качестве 1440
@GameDirectorMichael
@GameDirectorMichael 6 ай бұрын
Постараюсь более чётче делать
@user-xb4lj2lo8l
@user-xb4lj2lo8l Ай бұрын
Мотнул в случайное время, увидел Singleton без объявления его минусов, изменения Script Execution ордер и вышел с видео. С такими подходами вы далеко не уедите. Изучите DI/IOC. Поставьте себе extenject, а лучше VСontainer чисто для DI и офигейте от того, как у вас легко всё инициализируется по порядку, а скрипты не ломаться от нулрефов.
@GameDirectorMichael
@GameDirectorMichael Ай бұрын
Хорошо что ты вышел, потому что видео как и канал как раз о том что все что ты бы написал просто бессмысленно использовать для инди проектов. Больше времени тратишь на разбор этого всего.
@KINOSHOT999
@KINOSHOT999 Ай бұрын
Так я и не понял как пользоваться этим синглтоном. Ссылки на объекты как я к нему покинуть не могу, ну и зачем тогда он вообще нужен?
@GameDirectorMichael
@GameDirectorMichael Ай бұрын
Почему ты не можешь прокинуть ссылки в Singleton? Создавай любые Public или защищенный поля и обращайся к ним
@GameDirectorMichael
@GameDirectorMichael Ай бұрын
А нужен для того чтобы структурировать, и написать несколько менеджеров каждой из которых будет отвечать за свое.
@KINOSHOT999
@KINOSHOT999 Ай бұрын
@@GameDirectorMichael да, разобрался уже. Спасибо
@ilyamedvedev8943
@ilyamedvedev8943 8 ай бұрын
Ммммм антипаттерн🥲 композит рут один из лучших архитектурных решений.
@GameDirectorMichael
@GameDirectorMichael 7 ай бұрын
Нету такого понятия Антипаттерн, это придумано какими-то снобами с комплексами, поэтому не рекомендую это слово использовать 😸
@Niakita
@Niakita 7 ай бұрын
1 файл - 1 класс, или в юнити по другому и в 1 файл пихают кучу классов?
@GameDirectorMichael
@GameDirectorMichael 7 ай бұрын
В идеале да
@teawizzard
@teawizzard 11 ай бұрын
Я ждал что жэ ето такое XD
@kapik10793
@kapik10793 11 ай бұрын
извините , почему при билде игры на web Gl выскакивают 11 ошибок
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Честно говоря сам ещё только начинаю делать билды под WebGL
@brollerchannel819
@brollerchannel819 2 ай бұрын
0:21 как песня называется?
@GameDirectorMichael
@GameDirectorMichael Ай бұрын
Чтоб я знал, что то с библиотек бесплатных
@GbyGRus
@GbyGRus 11 ай бұрын
Блин реально было интересно это сингтон или что-то новое. Могу сказать от себя это действительно популярный подход к архитектуре в Unity. Уже говорит о том что автор может чему-то научить новичков.
@NoobittoBoy
@NoobittoBoy 11 ай бұрын
А есть вообще такое место в интернете где програмисты скидывают какието свои наработки, хвалятся какие они молодцы, хвастаются кодом, и т.д.?
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Привет! Ты про игры или конкретно про программирование? Если про программирование - это это Гитхаб
@r2d2-vw9wc
@r2d2-vw9wc 3 ай бұрын
А почему мобильные проекты фигня? В Steam размещать игры выгоднее?
@GameDirectorMichael
@GameDirectorMichael 3 ай бұрын
Я думаю что инди разработчику в стим залететь больше шансов. Хотя возможно больше в Web :)
@SanekKerman
@SanekKerman 11 ай бұрын
Братан ты конечно молодец, но все твои ролики все равно ооочень сложны для новичков, я вот не знаю что такое инстанс, синглтоны и остальные всякие сложные штуки, тебе бы запистаь полный курс по юнити от самого начало до конца на несколько часов как на канале у сакутина по c#, потому что на ру ютубе такого нет и вся инфа очень разбросана и устарела. И я вангую у тебя будет сотни тысяч просмотров и куча донатов на бусти
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Так Синглтон это самая простая штука, проще уже просто нечего придумать, видимо нужно лучше мне объяснять :)
@igor_mutny
@igor_mutny 10 ай бұрын
Instance - это просто статическое поле, ссылающееся на объект. Можно назвать его как-то по-другому, хоть HeyYouComeHereNow 😄 просто сложилась такая традиция при создании синглтонов называть это поле "инстансом". Синглтон - это простейший паттерн объектно-ориентированного программирования. Он реализуется на любом ООП-языке и применяется далеко не только в геймдеве (как и любой другой паттерн). Все эти темы не имеют прямого отношения к Unity, - это такая универсальная база, которую нужно знать, чтобы мочь накодить хоть что-то мало-мальски серьезное. Вне зависимости от того, каким языком программирования ты пользуешься и какой отраслью программирования занимаешься.
@golodnenkiy
@golodnenkiy 8 ай бұрын
Ролик только для новичков, если автор говорит про паттерн singleton должен предупреждать, что его использование дурной тон в более серьезных программистских кругах (почему думаю писать не надо, много информации в интернете). Архитектурой тут не пахнет. Используйте DI и будет вам счастье.
@GameDirectorMichael
@GameDirectorMichael 8 ай бұрын
Синглтон топ, если игру делает меньше трех человек.
@ziiron322
@ziiron322 Ай бұрын
DI не везде нужен. В маленьких проектах его вполне себе можно заменить сервис -локатором. А Синглтон плох тем, что его пихают везде из-за отсутствия опыта и набитых шишек, это такой же инструмент как и всё остальное.
@DarkIllusoire
@DarkIllusoire 8 ай бұрын
Скоро написание какого-то кода, будет называться архитектурой - карандаш в руки взял, и уже чувствуешь, как становишься архитектором
@kellerkey
@kellerkey 8 ай бұрын
!хороший же код, !будем делать так же
@DarkIllusoire
@DarkIllusoire 8 ай бұрын
@@kellerkey делай, благословляю
@plexoid
@plexoid 8 ай бұрын
0:54 ладно(
@albertnikitin8071
@albertnikitin8071 Ай бұрын
А в какой момент Bootstrap переключается на следующую сцену? Имею ввиду что на сцене создается множество менеджеров, как отследить что все менеджеры создались и можено загружать следующую сцену?
@GameDirectorMichael
@GameDirectorMichael Ай бұрын
если сцена полностью загружена, то все префабы что были на ней в редакторе загрузились, иначе сцена не появится. Но несколько кадров все таки нужно оставить чтобы Unity точно успел все Awake и Start выполнить. Я не парюсь и ставлю в этой сцене 2 секунды до след. сцены. Но в более сложных играх где прогружается много ресурсов лучше контролировать это.
@bonbad612
@bonbad612 Жыл бұрын
Di лучше чем Singleton)
@GameDirectorMichael
@GameDirectorMichael Жыл бұрын
Возможно но опять же это сложнее, первую игру лучше делать без этого
@ode2877
@ode2877 8 ай бұрын
Синглтоны то что нужно для старта новичков, и в том чтобы быть новичком нет ничего плохого,
@minithanos20
@minithanos20 9 ай бұрын
DontDestroyOnLoad не переносит объект из сцены в сцену,а копирует его
@Bushido_Cat
@Bushido_Cat Жыл бұрын
Очень интересно но ничего не понятно. Было бы круто если бы ты показал это на практике по этапно. А не на готовом проекте, хаотично открывая и дергая туда-сюда эти скрипты. Получается каша а не урок. Такое впечатление, что ты просто хочешь показать какой ты хороший программист и похвастаться. Точно не для новечков.
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
я точно не хороший программист, но намеренно) я пока разбираюсь как подавать что бы было максимально понятно, спасибо за отзыв.
@Vjuh_and_kx
@Vjuh_and_kx Жыл бұрын
2:17 Асуждаю! Мобильные проекты тоже бывают норм... тем более они приносят заработок в разы больше чем любые другие платформы! Что уже говорит само за себя, а именно что эти ваши стимы и епики фигня!)
@GameDirectorMichael
@GameDirectorMichael Жыл бұрын
Естественно если делать заработок то можно сделать что угодно, и лучше даже не игры)) среди мобильных игр тоже есть свои шедевры, но в среднем это просто помойка, извините, не могу по-другому выразиться глядя на какой-нибудь Google play.
@Vjuh_and_kx
@Vjuh_and_kx Жыл бұрын
@@GameDirectorMichael Не я не спорю что там много мусора. Но разработчики тоже вроде как стараются.
@GamDevRus
@GamDevRus 11 ай бұрын
как же много воды...
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Я называю это развлекательный контент 😉
@YACommunity
@YACommunity 8 ай бұрын
слышу синглтон, выключаю ролик и всем советую
@GameDirectorMichael
@GameDirectorMichael 8 ай бұрын
Детский сад
@GERGONable
@GERGONable 3 ай бұрын
Ну если ты гейм дизайнер- не учи людей программировать. Учиться не должно быть простым. Учиться всегда труд, Юнити коммунити только начало выползать с этого дна, а эти видосы только тянут новых разработчиков обратно в эту лужу
@GameDirectorMichael
@GameDirectorMichael 3 ай бұрын
Я не согласен с этим. Порог в хода у программирования падает с каждым днем, не нужно придумывать себе сложностей. Для сложностей есть другие каналы, можешь смотреть их)
@hea7enn
@hea7enn 11 ай бұрын
а чё класс бы не сделать статичным?
@GameDirectorMichael
@GameDirectorMichael 11 ай бұрын
Я там вроде упоминал, тогда его не видно в инспекторе и сложнее понять что где, а так все очевидно, для новичка это важно.
#7 Интерфейсы понятным языком в Unity C#
10:43
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 26 МЛН
Заметили?
00:11
Double Bubble
Рет қаралды 3,5 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 3,1 МЛН
Unity Architecture for Noobs - Game Structure
16:24
Tarodev
Рет қаралды 185 М.
Полный разбор задания 15.1 на Робота КуМир | ОГЭ по информатике
20:33
Архитектура проекта в Unity. Часть 1
20:52
Лавка Разработчика
Рет қаралды 35 М.
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 26 МЛН