Фермером устройтесь, дояркой или пастухом. Свежий воздух, мозолистые руки, комары в ассартименте. Детям опять же сможете показать что бульба не на полке магазина растет.
Своя квартира это актив который приносит так называемый доход в натуральной форме. Размер этого дохода можно оценить прикинув стоимость аренды такой же квартиры в такой же локации. Ведь если бы у вас небыло своей квартиры то вам пришлось бы ее снимать.
Мне эта статья напомнила сцену из балдур гейтс 3, где главный герой спрашивает пройдоху барда перед операцией на глазу делал ли он такие операции раньше и тот отвечает, что в мире не найти более опытного хирурга потому что он тысячу раз думал об этой операции.
Возможно стоило добавить инфу о том, что у юнити свой сборщик мусора, который имеет отличия от обычного шарпового. Так же il2cpp емнип накладывает некоторые ограничения на рефлексию.
Сидят две курицы в курятнике, одна другую спрашивает: "вот я яица несу по рубль двадцать, а ты?" Вторая ей не без гордости отвечает "А я по рубль тридцать". " И как стоит оно того ради десяти хозяйских копеек жопу рвать?".
А вообще если серьезно, то проблема низкой производительности труда она имхо проистекает и у программистов и в других отраслях от понимания что после увольнения уже завтра будет найдена работа за такие ж деньги, а может ещё и лучше. Желание впрягатся по полной у людей возникает только когда они понимают что другую такую же работу они не найдут поэтому надо держатся за эту обеими руками. Это такая стратегия оптимизации КПД усилий к профиту, иное поведенип иррационально при "рыночной" зарплате и дифиците кадров.
Плоховато описана проблематика, которую пытается решить этот подход. Бойлерплейтный однотипный код при обьявлении компонентов? Ну допустим, а чем предложенный подход лучше тех же сниппетов? Пока выглядит так что вы пытаетесь заменить один бойлерплейт другим велосипедным.
Да я вкурсе про командный буфер, в демке выше все структурные изменния так же через него происходили сотнями каждый кадр. Писать в него можно многопоточно, изменния действительно применяются в гланом потоке но это происходит очень быстро.
Ну ок если в Ваших руках он плохо скейлится остаётся только посочувствовать.
Я не знаю почему он у вас оказался медленным тут надо в код смотреть и искать где именно Вы ошиблись. Когда я писал проект в котором активно взаимодействовали (перестреливались) тысячи объектов одновременно там была просто тьма тмущая ecs-событий и создавалось/уничтожалось много сущностей каждый кадр и всё это отлично работало без тормозов даже на телефоне десятилетней давности.
В статье несколько сумбурно описана проблематика из-за чего не очень понятно во имя чего автор всё это затеял. Создание энтитей и навешивание на них компонентов десятками и сотнями каждый кадр это нормальная тема в ECS и фреймворки для таких задач хорошо оптимизированы. Плюс непонятно зачем пихать в джобы вещи которые происходит очень редко и вообще никак не аффектят перфоманс, а затем жаловаться на бойлерплейт.
Вообще для разруливания логики между объектами разных "типов" в ECS существуют фильтры. Если нам нужно например написать кастомную логику интеракшена с допустим дверью то мы заводим под это систему и пишем в ней фильтр который отбирает сущности с компонентами Door и Interacted и пишем туда свою кастомную логику, посути это и есть аналог виртуального метода. Судя по статье автор об этом знает, на этом и следовало остановится дабы остатся в рамках ecs-way.
Что касается ивентов они в ECS так же реализуются через ентити с компонентом события, который отлавливается системой в обычном порядке и обрабатываются.
В общем мотивационная часть осталась для меня загадкой, что за проблему автор пытался решить...
По поводу того, что в зенжекте много функционала я согласен, но не согласен с тем, что это плохо. Большая часть перечисленного не обязательна к использованию, но если оно понадобилось то уже под рукой готовое и протестированное на сотнях проектов.
Ну и я вцелом не согласен что лучше писать свой велосипед на любой чих потому что он комуто-там (прежде всего автору) понятен. Прелесть использования широко распространенных библиотек и фреймворков как раз в том что новый разработчик если знаком с тем же зенжектом может сразу плюс минус идти в бой, даже на относительно крупном проекте. Но нет никаких шансов нанять инженера который раньше уже катался на всех ваших велосипедах, которые вы напишете для реализации давно решенных задач.
Фермером устройтесь, дояркой или пастухом. Свежий воздух, мозолистые руки, комары в ассартименте. Детям опять же сможете показать что бульба не на полке магазина растет.
Корсаров забыли, вангеров и космических рейнджеров с колобками и петьками. Там везде богато
Ваш пинг в чате очень важен для нас. Примерное время ожидания ответа оператора 4 дня 3 часа 23 минуты
Своя квартира это актив который приносит так называемый доход в натуральной форме. Размер этого дохода можно оценить прикинув стоимость аренды такой же квартиры в такой же локации. Ведь если бы у вас небыло своей квартиры то вам пришлось бы ее снимать.
За много лет на хабре я ни разу не ставил минус ни одной статье хотя бы из уважения к труду авторов. Но данный высер это заслужил.
Мне эта статья напомнила сцену из балдур гейтс 3, где главный герой спрашивает пройдоху барда перед операцией на глазу делал ли он такие операции раньше и тот отвечает, что в мире не найти более опытного хирурга потому что он тысячу раз думал об этой операции.
Так было не всегда и так будет не всегда. Период высоких ставок когдато закончится, а бизнес со своей доходностью останется.
Возможно стоило добавить инфу о том, что у юнити свой сборщик мусора, который имеет отличия от обычного шарпового. Так же il2cpp емнип накладывает некоторые ограничения на рефлексию.
Чат.жпг создай такую картинку!
Затраты прямо пропорциональны времени проведенному разработчиками в браузерах на этих субботниках.
Спасибо, что поделились опытом. Полезная пища для размышлений.
А корень проблемы извечный в том, что коргеймплей и управление надо начинать тестировать на пользователях как можно раньше, а не через год разработки.
Странно что упомянули Вигерса но не упомянули BABOK
Сидят две курицы в курятнике, одна другую спрашивает: "вот я яица несу по рубль двадцать, а ты?" Вторая ей не без гордости отвечает "А я по рубль тридцать". " И как стоит оно того ради десяти хозяйских копеек жопу рвать?".
А вообще если серьезно, то проблема низкой производительности труда она имхо проистекает и у программистов и в других отраслях от понимания что после увольнения уже завтра будет найдена работа за такие ж деньги, а может ещё и лучше. Желание впрягатся по полной у людей возникает только когда они понимают что другую такую же работу они не найдут поэтому надо держатся за эту обеими руками. Это такая стратегия оптимизации КПД усилий к профиту, иное поведенип иррационально при "рыночной" зарплате и дифиците кадров.
Плоховато описана проблематика, которую пытается решить этот подход. Бойлерплейтный однотипный код при обьявлении компонентов? Ну допустим, а чем предложенный подход лучше тех же сниппетов? Пока выглядит так что вы пытаетесь заменить один бойлерплейт другим велосипедным.
Да я вкурсе про командный буфер, в демке выше все структурные изменния так же через него происходили сотнями каждый кадр. Писать в него можно многопоточно, изменния действительно применяются в гланом потоке но это происходит очень быстро.
Ну ок если в Ваших руках он плохо скейлится остаётся только посочувствовать.
Я не знаю почему он у вас оказался медленным тут надо в код смотреть и искать где именно Вы ошиблись. Когда я писал проект в котором активно взаимодействовали (перестреливались) тысячи объектов одновременно там была просто тьма тмущая ecs-событий и создавалось/уничтожалось много сущностей каждый кадр и всё это отлично работало без тормозов даже на телефоне десятилетней давности.
Вот можете полюбопытствовать: https://www.youtube.com/shorts/NERogo5dyoQ
Этот проект так же писался на DOTS-е причём древнющей версии, новые версии подозреваю еще производителней.
В статье несколько сумбурно описана проблематика из-за чего не очень понятно во имя чего автор всё это затеял. Создание энтитей и навешивание на них компонентов десятками и сотнями каждый кадр это нормальная тема в ECS и фреймворки для таких задач хорошо оптимизированы. Плюс непонятно зачем пихать в джобы вещи которые происходит очень редко и вообще никак не аффектят перфоманс, а затем жаловаться на бойлерплейт.
Вообще для разруливания логики между объектами разных "типов" в ECS существуют фильтры. Если нам нужно например написать кастомную логику интеракшена с допустим дверью то мы заводим под это систему и пишем в ней фильтр который отбирает сущности с компонентами Door и Interacted и пишем туда свою кастомную логику, посути это и есть аналог виртуального метода. Судя по статье автор об этом знает, на этом и следовало остановится дабы остатся в рамках ecs-way.
Что касается ивентов они в ECS так же реализуются через ентити с компонентом события, который отлавливается системой в обычном порядке и обрабатываются.
В общем мотивационная часть осталась для меня загадкой, что за проблему автор пытался решить...
По статье выглядит так что автор пытается изобрести вот эту штуку https://www.youtube.com/watch?v=raQ3iHhE_Kk
Не сказал бы что такой подход дюже популярен, но простые игры на нём делать дейсвительно можно.
По поводу того, что в зенжекте много функционала я согласен, но не согласен с тем, что это плохо. Большая часть перечисленного не обязательна к использованию, но если оно понадобилось то уже под рукой готовое и протестированное на сотнях проектов.
Ну и я вцелом не согласен что лучше писать свой велосипед на любой чих потому что он комуто-там (прежде всего автору) понятен. Прелесть использования широко распространенных библиотек и фреймворков как раз в том что новый разработчик если знаком с тем же зенжектом может сразу плюс минус идти в бой, даже на относительно крупном проекте. Но нет никаких шансов нанять инженера который раньше уже катался на всех ваших велосипедах, которые вы напишете для реализации давно решенных задач.