Оптимизация игры на Unity. Entity Component System, LeoECS

  Рет қаралды 29,211

Night Train Code

Night Train Code

Күн бұрын

Пікірлер: 169
@Digildon
@Digildon 2 жыл бұрын
Чел, спасибо. Твой тутор прям как вода в пустыне. Сейчас нигде нет, но капец как нужно.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
На здоровье, рад, что помог)
@НикитаБедарев-ч6и
@НикитаБедарев-ч6и 9 ай бұрын
Отдельное спасибо за 18:16 пол дня тупил
@adengard3473
@adengard3473 3 жыл бұрын
Хотелось бы режиссерскую версию подлиннее с обзором лео ецс (какие методы есть, что делают, за что отвечают, как использовать... Чтобы прям совсем для чайников). Видео супер, канал бомбезный, автор попадет в вальхаллу для прогеров ))) хотелось бы такое года 3 назад
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Спасибо 🍰😜 Можешь написать про те моменты, с которыми есть непонятки в ECS. После того, как остальные ролики по плану смастерю, возможно, ещё более подробный урок выпущу) А пока в этом попытался собрать максимум того, что точно пригодится при разработке или используется чаще всего 🍨
@adengard3473
@adengard3473 3 жыл бұрын
@@NightTrainCode Проблема в том, что ecs считается как бы не для новичков и про неё может рассказать два с половиной человека, которые говорят уже на непонятном языке, оперируя терминами которые иногда за гранью понимания ( а если и понятны, то только в теории... да и то с натяжкой. Плюс это еще на пятой скорости речи, так что мозги пухнут). Понятное дело, что можно на паузу ставить и короткие ролики чаще смотрят, но бывает тяжко воспринимать не линейную инфу, да еще и без пояснений или без представления полной картины (чего мы хотим добиться, почему именно так, какие проблемы нас могли бы подстерегать). ВВодный урок на мой взгляд должен рассказать как работает лео (имеется ввиду методы которыми мы можем оперировать, их назначение, порядок применения с пояснениями (Что мы делаем и почему в таком порядке. Казалось бы это очевидно, но думаю не всем).
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@Aden Gard Конечно, далеко не всем это очевидно, если даже про монобехи мне пишут люди, что не всё понятно Сначала только все к ООП привыкли, а тут ECS со своим дата ориентед с ноги влетает) Если будет время и желание, разжую LeoECS для новичков 🔥
@adengard3473
@adengard3473 3 жыл бұрын
@@NightTrainCode Просто по юнити тонны видео где каждый кто, что то пишет, говорит это вот первое что вы видите, метод старт и обдейт. В других еще скажут, что есть Авейк и ОнЕнейбл, в третьем Фиксед и Ласт обдейты, расскажут для чего все это... И так по крупицам собираешь картину, а с лео есть 3 видео и черная магия ))). Не понятно , что прописывать, что там делается, что можно прописать.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@adengard3473 Там по документации всё достаточно просто. А тем, кто в ООП шарит - будет куда легче разобраться без видосов
@vovanchik_ru4208
@vovanchik_ru4208 3 жыл бұрын
слишком быстро. Я достаточно хорошо знаком с материалом, но даже для меня всё просто какое-то мелькание картинки.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Спасибо за замечание, учту в следующих роликах 🤙
@Kealstex
@Kealstex 2 жыл бұрын
Думаю, пора попробовать ECS. Псмотрела видос. " ну да,вроде всё понятно" *через полтора часа..* " ДА БЛ№№Ь ЧО ОН НЕ ПРЫГАЕТ" боже дай сил не сойти с ума.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Если нервов не хватает, то можно и дальше на монобехах кодить) Тем более если ты любитель и не требуют этого на работе
@Kealstex
@Kealstex 2 жыл бұрын
@@NightTrainCode уже разобралась:D спасибо. да на работе не требует, но для самообразования явно полезно. так глядишь, через полгода и сферу деятельности сменить можно будет в качестве джуна)
@pengw1negames
@pengw1negames Жыл бұрын
@@NightTrainCode Такая же проблема, ну не прыгает и все. К тому же зависаю в воздухе и rigidbody не помогает. Гравитации будто не существует. Думал что прыжки помогут это исправить, однако нет, все так же в воздухе, так еще и не прыгает
@zitskycom
@zitskycom 3 жыл бұрын
Ох е, ток сегодня узнал про ecs, думал старое видео смотрю, а оно 6 часов назад вышло 😂
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Это я всё предусмотрел 😄🔥
@entity5148
@entity5148 3 жыл бұрын
Большое спасибо тебе за полезный контент!) Желаю тебе много подписчиков!
@NightTrainCode
@NightTrainCode 3 жыл бұрын
На здоровье 🍰 Большое спасибо 😎😜
@НикитаБедарев-ч6и
@НикитаБедарев-ч6и 9 ай бұрын
Проморгал я момент с entity reference, думал думал как решить, в итоге сделал через сравнивание позиции коллайдера и всех энтити, но твое решение куда лучше
@KingoSr
@KingoSr 2 жыл бұрын
Что делать, если ошибка при добавлении проекта из git с помощью package manager?
@vicktoriashepard
@vicktoriashepard 3 жыл бұрын
Основной плюс ecs не в одном update и не в представлении всех сущностей простыми float, а в не дефрагментации памяти вроде как.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Да в принципе в простоте и отсутствии кучи лишних методов, полей и свойств, как у монобехов, которые нужны далеко не каждому объекту. Энтитюхи, компоненты и системы используют только то, что им нужно, что тоже плюс И да. В ECS всё лежит где-то рядышком в памяти
@Владимир-т2ч5э
@Владимир-т2ч5э 2 ай бұрын
Сейчас уже есть ecslite-unityeditor от самого Leopotam, на твой взгляд он лучше UniLeo-Lite ?
@firstvf
@firstvf 9 ай бұрын
За ролик, конечно, спасибо, но единственное, что я не могу понять - зачем делать спидран по ролику-туториалу? Даже если в названии нет ни одного упоминания о том, что это учебный материал, в любом случае с первых секунд он себя позиционирует как обучающий. Невероятно трудно пытаться извлечь какую-то информацию, когда она скипается буквально за 1-2 секунды.. приходится >Постоянно< отматывать назад. Надеюсь, если будут еще гайды по ECS, то чуть-чуть по-медленнее и без скипа некоторых новосозданных классов/структур😵‍💫 Но еще раз спасибо! материала по этой теме действительно мало :(
@NightTrainCode
@NightTrainCode 9 ай бұрын
Старый ролик, в новых не спидраню) Спасибо за коммент
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
Спасибо за видео. Есть замечание по поводу скорости, с которой ты объясняешь. В некоторых моментах приходиться на 0.75 ставить. И у меня вопросик, менять значения в рантайме никак нельзя? Например чувствительность мыши.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
На здоровье) Спасибо за конструктивную критику Почему нельзя то?) Всё можно. Персонажи иначе как бы двигались?)
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
@@NightTrainCode Я имел в виду в ручную в инспекторе. Просто когда запускаешь, то все провайдеры пропадают же.
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
@@NightTrainCode И ещё можно вопрос. foreach воспринимать как обычный update? На 9:18 ты вынес методы за пределы foreach. Можно было же lookComponent.direction.x = Input.GetAxis("Mouse X); ? Просто для читабельности сделано или есть какой-то сакральный смысл?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@OlegRonaldo9 Можно, никто же не запрещает совмещать Ecs и МоноБехи
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@OlegRonaldo9 Input.GetAxis не нужно вызывать больше, чем один раз за кадр. Если бы подходящих для этого Entity было бы не 1, а 100, то метод вызвался бы лишних 99 раз, выдав везде одинаковый результат Оптимизация)
@ДмитрийХристов-х3щ
@ДмитрийХристов-х3щ 5 ай бұрын
Привет, можешь, пожалуйста, сделать ролик про Ecs lite? Там я пробовал совместить Ecs lite и Voody UniLeo, но выдавало ошибку(поменял на leoEcs и все заработало). Но том с 22 года заморозили проект и сейчас развивается только ECS Lite, так что было бы круто узнать как именно с этой версией работать и что можно добавить вместо Voody UniLeo. Спасибо)
@_EnVyUs
@_EnVyUs 3 жыл бұрын
У меня вот такой вопрос, не затратно ли каждый раз использовать фильтры и возможно ли хеширование в ecs?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Нет, не затратно, фильтры обновляются только при изменении компонентов на entity, а компоненты достаются по интам
@vovanchik_ru4208
@vovanchik_ru4208 3 жыл бұрын
нет, не затратно. Фильтры это просто "ключи" к определённой области памяти. А вот циклы в run должны вызывать больше вопросов :) Если у Вас заведомо единственный компонент в фильтре, то рациональней использовать просто условие if(filter.Length>0)... Но на самом деле это всё же экономия на спичках. Систем может быть сотни и тысячи при правильном их использовании, ведь они не обязаны всегда все использоваться. За остальные мелочи отвечают оптимизаторы при подготовке кода для виртуальной машины(JIT-компиляция, CLR и даже burst можно использовать :)). Короче, просто пишите код, а там разберётесь с производительностью. При сколь-либо правильном использовании ecs подхода - запас прочности производительности будет достаточным :) Ну а если что, то не стесняйтесь использовать стандартный профилировщик unity для большего понимание на что надо пенять :) Удачи!
@psy_gamer
@psy_gamer 3 жыл бұрын
Что тут можно сказать - мой мозг однозначно сломался! Интересный вариант, но к нему нужно привыкать не одну неделю.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Что тут можно сказать - ставь мою системку NightCache (есть видос на канале) и не парься 😎🔥
@psy_gamer
@psy_gamer 3 жыл бұрын
@@NightTrainCode Люблю сам писать системы, чтобы потом легче было с ними разбираться, чем использовать чужой фраемворк) Но спасибо!
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@psy_gamer Это отлично) Но бывают случаи, в которых точно не нужно изобретать велосипед, например, свою ECS писать, как это по приколу недавно делал я 😆
@VladislavSafargalin
@VladislavSafargalin 3 ай бұрын
Привет, ютуб перестал работать, даже goodbyedpi не помогает, есть канал на rutube или других площадках или может собираешься переходить туда? не могу найти (
@MarePlayZ
@MarePlayZ Жыл бұрын
Начинающий юнити программист... Ещё даже нет своих проектов. Вот сейчас работаю над собственным маленьким шмапом, чисто в юнити без фреймворком и т.д., т.к. не умею пока что. Хочу двигатся и совершенствоваться. С чем стоит знакомится чтобы улучшать свой код? На счёт ролика очень интересно но совсем ничего непонятно😅 надо будет пересмотреть несколько раз
@BlackHole-ei9mi
@BlackHole-ei9mi Жыл бұрын
Бро нет смысла, я сам сижу пытаюсь в фреймворки, но LeoEcs обновился и он сейчас работает со структурами, пока не видел туториалов по нему абсолютно, только документацию на гите смотреть.
@Hellscaner
@Hellscaner 3 жыл бұрын
Стоит ли сразу учится писать на ECS, или использовать ваш NightCache? А то привык уже к классике.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Да всё по желанию, я и на работе, и у себя NightCache юзаю и иногда подгружаю его обновления на GitHub Производительность в итоге не уступает ECS, да и больше всё равно нагрузка идёт на рендеринг, а не на вычисления, так что не парься
@great8814
@great8814 3 жыл бұрын
Привет! Скоро допишу одну из своих игр и недавно узнал про ecs. Думаю следующую свою +- крупную игру написать с помощью ecs. Но мне интересно, если я разберусь в esc, то мне нужно будет всю игру писать с помощью ecs? Это как архитектура или вокруг ecs нужно выстраивать какую-то архитектуру для ecs? Спасибо!
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Можешь что-то на монобехах писать, можешь что-то на ECS, никто не запрещает) В ECS кучу систем и компонентов пиши на каждый чих, вот и получится архитектура. Но, конечно, всё делать надо с умом и думать на будущее
@nightkot4917
@nightkot4917 Жыл бұрын
Хорошо бы еще помедленнее, без всего этого "мелькания" и "запредельного скакания по скриптам".
@NightTrainCode
@NightTrainCode Жыл бұрын
Уже сотый, кто это пишет, это мой старый видос :)
@МОРЕКС-к1и
@МОРЕКС-к1и 3 жыл бұрын
А что лучше использовать? Night cache или Ecs для андроидов? И ещё, проверять постоянно например jumpEvent не затратно? или лучше сделать Action в структуре и через него методы подписывать
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Ecs в том случае, если уверен, что справишься с этим паттерном и хорошо в нём шаришь А так вместо Ecs и NightCache рекомендую обратить внимание на мой MonoCache 2.0: github.com/MeeXaSiK/MonoCache Системка из моего первого видео, которую я обновил и довёл до ума. Документация имеется (версия в видео устарела), там всё проще, чем с NightCache
@vector7932
@vector7932 Жыл бұрын
Монобэхах) Кто использует монобэхи - не забывайте включать поворотники! По тутору: 1. internal в компонентах можно оставить, если провайдеры тоже делать интернал 2. Time.deltaTime нету в видео - пока не посмотрел в исходник проекта, не понял, что он там нужен. Да, ты об этом сказал) 3. Камеру обновлять лучше в LateUpdate 4. Нотация приватных членов класса без _ смотрится не привычно - вкусовщина
@КонстантинЪЪЪ
@КонстантинЪЪЪ 3 жыл бұрын
думаю PlayerInputSystem должна генерировать команды управления для ентити, а уже в нужной системе эти команды преобразуются в логику передвижения ;)
@КонстантинЪЪЪ
@КонстантинЪЪЪ 2 жыл бұрын
@Дарий сделать "запись" игры например
@PurpleDaemon_
@PurpleDaemon_ 2 жыл бұрын
Подскажи, пожалуйста, по логике этого подхода я в системе "выстрел" должен обработать все связанное с ним, то есть заспавнить пулю, начать анимацию, звук. Или наоборот все анимации в системе анимаций, и все звуки в системе звуков?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Да, всё по отдельным системам, конечно Системы на каждый чих Но никто не мешает и всё в одну засунуть)
@dmitry711
@dmitry711 Жыл бұрын
Спасибо. Планируешь ли ролик про ECS от Unity (DOTS)?
@NightTrainCode
@NightTrainCode Жыл бұрын
На здоровье. Нет, пока не вижу смысла в DOTS. Лучше уж Morpeh
@denisgoodman4492
@denisgoodman4492 Жыл бұрын
@@NightTrainCode Compile Burst
@ИльяМаглич-ь2е
@ИльяМаглич-ь2е 3 жыл бұрын
Привет) Спасибо за видос. Лайк и подписка! Понимаю, что рекомендации ютуба, но всё-таки довольно быстро всё происходит в видео. Пришлось пересматривать с паузами) У меня есть несколько вопросов: 1) По идее связывание с монобехами будет в любом случае. Может вообще выйти так, что из-за кучи связываний производительность станет даже хуже, чем просто на бехах?) Довольно странный вопрос, но мало ли был опыт. 2) Немного не понял, почему именно система игрока должна быть первой, а потом уже движение?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Привет, спасибо) 1) Нет, особенно если все ссылки на классы кэшировать в переменные) 2) Сначала идёт система ввода направления игрока (задаётся Direction), а потом система передвижения двигает игрока в этот самый Direction
@ИльяМаглич-ь2е
@ИльяМаглич-ь2е 3 жыл бұрын
@@NightTrainCode Чтобы открыть сцены из архива нужен юнити последней версии? А то у меня что-то не открывает
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@ИльяМаглич-ь2е Я на 2021 работаю, но, думаю, и на 2020 должно завестись
@anykayenne
@anykayenne 3 жыл бұрын
Отличный ролик, большое спасибо за часть с провайдерами! Почти нет инфы про нее
@NightTrainCode
@NightTrainCode 3 жыл бұрын
На здоровье)
@daemonstergames716
@daemonstergames716 3 жыл бұрын
А scriptable objects можно использовать с ECS? Нет у них побочных конфликтов?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Можно, всё там окей) Им там не из-за чего возникать, на ECS можно творить всё то же самое, что и на монобехах, просто немного по-другому Так как это паттерн проектирования, а не какая-то иная магическая штука)
@intrigazTV
@intrigazTV 2 жыл бұрын
Как называется эта тема оформления (синтаксиса)? Офигенная
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Привет, "Rider Melon Dark"
@IgorKu-m4o
@IgorKu-m4o 2 жыл бұрын
Куда движется Юнити? ECS в будущем заменит Монобихейвер? Или они они будут существовать параллельно?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Не думаю, что MonoBehaviour исчезнут. А так, Unity рекламируют системки DOTS и Jobs. Многопоток, привет
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
Вопрос про удаление объекта. Глянул другие проекты на ECS и почему-то некоторые не удаляют объект, а просто выключает его через SetActive(). Т.е. тут по большому счету это на личное усмотрение? Если не учитывать того, что просто засирается иерархия выключенных объектов.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Возможно в этих проектах работает пул объектов, иначе проще объект просто удалить, а не отключить Если объект просто отключить и не удалить Entity, то системы продолжат его обрабатывать, даже если он выключен
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
@@NightTrainCode Спасибо. Про пул объектов не знал.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@OlegRonaldo9 На здоровье. У меня есть ролик про Object Pooling
@OlegRonaldo9
@OlegRonaldo9 3 жыл бұрын
@@NightTrainCode Хорошо, гляну.
@ДенисАндриянов-к8ъ
@ДенисАндриянов-к8ъ 2 жыл бұрын
Как я понял, любые Run системы существуют всегда и Run запускается каждый кадр. Поэтому событий как таковых нету, только создание новых энтити или компонентов. Не существует подписок. Это немного ломает мозг и смущает. Я верно это понимаю?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
События есть и я про это тоже говорил в видео) Подписки тоже никто не запрещал
@ВасилийМигулин-т1й
@ВасилийМигулин-т1й 2 жыл бұрын
Не понимаю почему у меня нет доступа к пространству имен Voody.Unileo хотя я все пакеты установил
@pengw1negames
@pengw1negames Жыл бұрын
Добрый день, решили ли вы эту проблему? Если да то как?
@ВасилийМигулин-т1й
@ВасилийМигулин-т1й Жыл бұрын
@@pengw1negames это устаревшая информация
@ВасилийМигулин-т1й
@ВасилийМигулин-т1й Жыл бұрын
@@pengw1negames нужно установить все пакеты Лео Стандартный, di и т.д.
@janitor13
@janitor13 Жыл бұрын
Когда стоит использовать для классов internal а когда public?
@NightTrainCode
@NightTrainCode Жыл бұрын
Да забей, пиши public, это я молодой был, глупый)
@georgii_chubov
@georgii_chubov 2 жыл бұрын
ECS для передвижения игрока выглядит как оверинжиниринг. На примере врагов был бы очевиднее смысл ecs, а именно - заметный выигрыш по производительности. Ведь в остальном классический ООП дизайн лучше
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Никто не запрещает и монобехи юзать Даже такие системки лучше делать системками, чтобы одни выполнялись в одном потоке в Update и можно было контролировать порядок вызовов
@victorvoiz8839
@victorvoiz8839 3 жыл бұрын
Блин, сделай подобный видосик по Entitas. На просторах не нашел ни одного нормального
@1pampers13aby7
@1pampers13aby7 3 жыл бұрын
А будет все работать в 2D? Не могу реализовать прыжок в своей 2д игре. Телепортируется и все(
@NightTrainCode
@NightTrainCode 3 жыл бұрын
LeoECS будет работать везде) Значит где-то допустил ошибку, либо в 2D это немного по-другому реализуется
@ЭдуардКик
@ЭдуардКик 2 жыл бұрын
Я в 2D игре, bullet hell. Использовал твой MonoCache - передвижение пуль - передвижение врагов Попробовал реализовать их на LeoEcs, фпс остался одинаковый. При 350 обьектах на экране, фпс дропался до 15-20, на обоих системах.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Странно, что фпс так сильно дропался в 2D игре, мб батчинг не настроен и текстуры пуль не сжаты. Я, кстати, тоже проводил такой тест и фпс был одинаковый. Поэтому отказался от ECS в своём проекте.
@ЭдуардКик
@ЭдуардКик 2 жыл бұрын
@@NightTrainCode это был тест на Redmi 7 кирпиче, спецально храню его для таких целей, пусть знает как он плох п.с. там было 350 пуль, с box colider и rigidbody на каждой
@ЭдуардКик
@ЭдуардКик 2 жыл бұрын
@@NightTrainCode я проверил, хз в чем дело, вообщем на слабенькой мобилке (Redmi7) именно с mono cache - 3 фпс, при 350 выстрелах в секунду из пистолета. без mono cache (то есть пулю наследую от обычно монобеха) 40 фпс
@MrLuckyLISS
@MrLuckyLISS Жыл бұрын
@@NightTrainCode Вот эта инфа мне действительно нужна была. Думал, целесообразно ли упороться в ECS или юзать старые добрые Моно, особенно после перерыва в 4 года в Unity
@NightTrainCode
@NightTrainCode Жыл бұрын
@@MrLuckyLISS Производительность ± одинаковая, но на ECS игра будет меньше памяти потреблять. Для мобилок мб критично, но на Mono ни разу не было проблем
@1pampers13aby7
@1pampers13aby7 3 жыл бұрын
А вы пользовались leoecs-physics?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Да, там тот же смысл в отправке ивента о том, что игрок зашёл в триггер, как и в ролике
@1pampers13aby7
@1pampers13aby7 3 жыл бұрын
@@NightTrainCode, спс но я так понял что в этом копаться и копаться, жаль токо что инфы не так много в инете, особенно на русском (чтоб все возможные нюансы). Вот тоже сделал противника - сделал несколько его копий и при попадании снаряда, они по какой то своей очередности удаляються со сцены. Стреляешь в одного, а умирает тот - что рядом с ним) Но конечно ОГРОМНЫЙ + этого всего - производительность и отсутствие макарон, достаточно легко ориентироваться
@1pampers13aby7
@1pampers13aby7 3 жыл бұрын
@@NightTrainCode, интерестно поитересоваться: как у вас (исходя из вашего опыта) с Виндовсом и МакОС? На чем предпочтительней разрабатывать?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@1pampers13aby7 Тому, кто в ООП не чувствует себя, как рыба в воде, тяжело самому без гайдов разобраться в ECS будет, как и мне в своё время Всё с опытом приходит, здесь главное принцип работы паттерна уловить и дело в шляпе При попадании можешь сделать реквест (OneFrame компонент) и в него передавать отправителя с дамагом (Unit sender, float damage), чтобы понимать кто кому урон наносит)
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@1pampers13aby7 Я всю жизнь на Windows сижу, коллега на Маке работает, ему там удобнее (+ мобильность, если MacBook) Я предпочтение стационарному компьютеру на шиндовсе отдаю (хоть ни разу на Маке и не работал), так как запихал себе железо какое захотел и радуешься жизни Скорее всего, на МакОС, работать удобнее, но если разработка будет упираться в его железо, то беда
@walson4708
@walson4708 2 жыл бұрын
Всё, Лео екс пришёл кабздец
@nightlycat2525
@nightlycat2525 2 жыл бұрын
А что с ним?
@walson4708
@walson4708 2 жыл бұрын
@@nightlycat2525 Уже ничего. Лео просто недавно пригорел и снёс свою репу. Правда, спустя пару дней всё вернул)
@mihanikgames3304
@mihanikgames3304 3 жыл бұрын
быстро пролистал, но вывода о повышении производительности не увидел. Подскажите какой выигрыш по производительности получается и на какой минуте это показано?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Глянь мой ролик про кэширование апдейтов. Там смысл тот же самый в приросте производительности (25%)
@mihanikgames3304
@mihanikgames3304 3 жыл бұрын
@@NightTrainCode Но ведь это другой метод. Вы хотите сказать, что выигрыш будет такой же?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@mihanikgames3304 Да, на ECS выигрыш будет чуть-чуть больше, но не заметно Так как везде смысл в том, что будет один апдейт, вместо огромной кучи
@nouaksomtac6782
@nouaksomtac6782 2 жыл бұрын
ну я толка пробую Ecs но по моему легкасть распаралеливания наверное просто когда ти проходеш по масиву "обектов" то ти мозеш давать тот момент каздому обекту по патоку вот теперь будет исползаваса болше много поточности (но ето мои догадки)
@bananosplt7368
@bananosplt7368 3 жыл бұрын
не пойму, если мы обращаемся к струтурам по ссылкам, не становится она как класс ?
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Класс - это класс, а структура - это струкура Структура собой представляет значение, а класс - ссылку Например, Vector3 - это структура Можешь глянуть разницу в справке
@walson4708
@walson4708 3 жыл бұрын
Нет, ты просто не создатель копию объекта структуры, а работаешь напрямую с её первоначальным объектом.
@axeplay1490
@axeplay1490 8 ай бұрын
Ну и каша в коде конечно с 4 этажными функциями и изменением кучи скриптов чтобы добавить один объект
@NightTrainCode
@NightTrainCode 8 ай бұрын
Возняяя
@denisgoodman4492
@denisgoodman4492 Жыл бұрын
Все классно, но скорость записи нужно меньше - не комфортно смотреть. И не понятно зачем везде при инициализации объектов (например World) ставить =null первый раз вижу такое требование/рекомендации ничего в документации нет?
@NightTrainCode
@NightTrainCode Жыл бұрын
Конечно, надо полагать, это мои старые видосы)
@denisgoodman4492
@denisgoodman4492 Жыл бұрын
@@NightTrainCode Кстати Вы перешли на DOTS или по-прежнему в основном LeoECS & Murphy?
@NightTrainCode
@NightTrainCode Жыл бұрын
@@denisgoodman4492 Murphy?) Я сейчас Morpeh юзаю. Если Leo, то Proto, либо Lite
@cmldev
@cmldev 10 ай бұрын
Такой бы тутор по LeoEcs lite, было бы супер. Тут уже многое устарело
@4rtochka
@4rtochka Жыл бұрын
Замедлил до х 0.75 но всеравно слишком быстро
@asvirido
@asvirido 2 жыл бұрын
Кто-то пробовал на ECS создавать быстро мобильные проекты которые рассчитаны на 2-3 недели разработки полностью игры?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Можно одинаково быстро, что на монобехах, что на ECS игры сделать Всё дело привычки и скиллов
@bibyter6451
@bibyter6451 3 жыл бұрын
Оптимизация какого рода, чойта не понял (
@_VladMir_
@_VladMir_ 2 жыл бұрын
"Сломать что то сложно " так же " не так поставил по порядку и всё сломал" и ничего тебе даже не скажет об этой ошибке XD
@Digildon
@Digildon 2 жыл бұрын
обычно, без ecs часто можно поставить вызовы не по порядку и тебе ничего не скажет. (самое страшное что даже когда узнаешь, выставить вызовы в правильном будет геморройно, конечно зависит от архитектуры)
@Degril
@Degril 2 жыл бұрын
Я чего-то не понимаю, или ты наоборот, когда используешь ref: "ref a = ref filter.,Get1();" берешь структуру, запихиваешь ее в кучу, пораждаю аллокацию, вместо того, чтобы забрать копию структуры выделенную в куче не используя ref?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Если не использовать ref, то структура каждый раз будет копироваться и не будет передана по ссылке. Это значит, что изменения будут внесены в её КОПИЮ, а нам этого не надо
@Degril
@Degril 2 жыл бұрын
@@NightTrainCode На этом я сильно задумался. Если структуры лежат внутри класса(а это скорее всего так, т.к. их время жизни не внутри scope), то они уже находятся в куче, и с помощью ref ты не создаешь дополнительную копию в стеке, но тогда какой смысл от использования структур?
@NightTrainCode
@NightTrainCode 2 жыл бұрын
@@Degril Акт передачи объекта по ссылке не приводит к его перемещению в памяти из стека в кучу или наоборот
@NightTrainCode
@NightTrainCode 2 жыл бұрын
@@Degril К тому же, мы не создаём мусор, когда создаём структуру с помощью new, в отличие от класса
@grandsunhar
@grandsunhar 2 жыл бұрын
Супер
@noob681
@noob681 3 жыл бұрын
>using NTC.Global.Pool; Ты забыл добавить свой плагин к материалам из урока.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
Не) NightPool - это уже другая штучка 🌙
@NightTrainCode
@NightTrainCode 3 жыл бұрын
А хотя, похоже, что да. Спасибо, что сказал. В ближайшее время апдейт сделаю на гугл диске с найт пулом, а то он уже у меня был в проекте, где тестировал и не заметил ошибку 😬 upd: пофиксил)
@noob681
@noob681 3 жыл бұрын
@@NightTrainCode Бывает. Тебя нет в дискорд-сервере Leo? Пару дней назад принес твое видео назвав лучшим туториалом.
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@noob681 Не-а, можешь кинуть его сюда или в личку вк) Ой, пасиба, засмущал 😅😊
@NightTrainCode
@NightTrainCode 3 жыл бұрын
@@noob681 Ещё превьюшки щас отреворкал на всех видосах, теперь про LeoECS у меня самый привлекательный видос в поиске 😄
@testservicesssss
@testservicesssss 2 жыл бұрын
если ускорить в 10 раз то можно и за 2 минуты.
@mariacho8174
@mariacho8174 3 жыл бұрын
Очень неудобный формат видео, просто какое-то мелькание кода..
@pengw1negames
@pengw1negames Жыл бұрын
@NightTrainCode Пожалуйста выручай, спустя год нашел твой ролик, по очень интересующей теме. Но уже в самом начале затык. Voody.UniLeo никак не находится, хотя пакет поставил
@KENISEG
@KENISEG 2 жыл бұрын
у меня голова заболела(
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Relax
@crwde
@crwde 9 ай бұрын
Короче ненужно :|
@oldosgame
@oldosgame Жыл бұрын
да. надо было ускорить видео и сделать его таким образом ужасным для восприятия, чтобы добавить кликбейт "ECS за 20 минут". дизлайк
@NightTrainCode
@NightTrainCode Жыл бұрын
Я его не ускорял Поставь 1х и спасибо за активность)
@oldosgame
@oldosgame Жыл бұрын
@@NightTrainCodeвидео явно ускоренное. звуковая дорожка записывалась поверх него. это очень сильно заметно. можно было обойтись без кликбейта и за 40-60 минут объяснить толком, что к чему в этом ECS, а не проноситься "делаем это, это. все работает". аудитория у ролика совершенно иная, чем у дударя, поэтому, если уж взялся, нужно было раскрыть тему полностью. это претензия не конкретно к тебе, а к всем, кто так делает. а делают так практически все айтишники, мнящие себя крутыми преподавателями, думая, что все итак понятно
@NightTrainCode
@NightTrainCode Жыл бұрын
@@oldosgame Вам не лень тратить столько времени на критику моего ролика двухгодовалой давности? Видео не ускорено, но есть проблемы с подачей, прекрасно знаю. В новых видео всё намного и намного лучше :)
@xXSallamanderXx
@xXSallamanderXx 2 жыл бұрын
Тараторишь с листочка, зажовываешь слова, выводит из себя. Складывается ощущение, что видос записан не для обучения, а для галочки, чтобы в резюме было.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Пойду плакать в подушку, бро 😊
@dadlord689
@dadlord689 2 жыл бұрын
Дибильная музыка на фоне, сленг который вообще не к месту (монобехи) - это настораживает. Автор наверное не понимает что делает. Материал сложный, а сама попытка провести аналогию между OOP и ECS - абсурдна. Это как как провести аналогию между птицей и самолётом (оба ж летают, только нужно немного прикрутить).
@HINCO38
@HINCO38 Жыл бұрын
ты все еще считаешь лео ecs актуальным и удобным?
@NightTrainCode
@NightTrainCode Жыл бұрын
Classic удобный, но не актуальный. У LeoECS Lite ситуация лучше, но есть проблемы с производительностью, если мир разрастается. Я перешёл на Morpeh ECS
@crwde
@crwde 9 ай бұрын
Короче опять ненужно 😅
Оптимизация игры на Unity. Object Pooling
6:23
Night Train Code
Рет қаралды 8 М.
Подробный урок по Entity Component System в Unity
15:27
Insane One - Разработка игр
Рет қаралды 45 М.
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
Оптимизация игры на Unity. Физика
14:45
Night Train Code
Рет қаралды 11 М.
Фишки в C# и Unity, о которых ты не слышал!
19:02
Unity job system. Как применять потоки в юнити неявно
9:06
Animation Budget Allocator в Unreal Engine
12:46
Natatem00\Программирование
Рет қаралды 517
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,6 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН