Я не могу однозначно ответить на этот вопрос, т.к. разработка идет волнами и не только я этим занимаюсь (еще Максим и Алексей, которых все знают в группе) + время сейчас довольно нестабильное и непонятно что будет дальше.
@@DZayceffChannel Это я знаю... Мне хотелось разобраться под капотом так сказать (и не в юнити, а просто в подходе) - как это работает (понять какими конструкциями происходит обработка ecs - как там поиск по компонентам организован, как там приоритет выставляется если он есть вообще, порядок выполнения. В целом понять как выглядит data-oriented design изнутри)
Почему вы советуете не использовать наследование в играх? Оно очень способствует гибкой и масштабируемой разработке. Не нужно им злоупотреблять, особенно в высоконагруженной системе
На мой взгляд композиция лучше чем наследование. Но это мое личное мнение и взгляд. Обычно наследованием как раз часто злоупотребляют, в иерархию сложно уложить то, что происходит в игре из-за того, что обычно необходимо множественное наследование, чего нет во многих языках. На помощь приходит композиция из нескольких классов. И это можно реализовать через паттерн ECS.
@@gaitavr1992 Да посмотрел некоторые компоненты Unity, наследование там и правда имеется, но оно не глубокое и нет сложной иерархии, по крайней мере в тех компонентах, что я смотрел. Понятно, что наследование необходимо, в ролике я имел ввиду, что многие программисты приходя из других областей сразу пытаются все уместить в иерархию классов, что на мой взгляд серьезная ошибка. То что могло быть компонентами в ECS, они реализуют через классы и наследование.
В Unity есть полноценный ECS, ты же ведь как раз на примерах Unity про всё рассказываешь, почему же про это говоришь неправду? Там и инструменты все для отладки сделаны, для удобства контроля состояний этих "компонентов". Собирание их в чанки и всё такое.
Можно конечно обобщать, в чем-то этот паттерн похож. Однако приспособленец куда проще и понятнее, это просто описание типа, экземпляры хранят ссылку на тип.
Извините, но какое-то тотальное запутывание и неграмотность в базовых вещах. Игровой цикл - это не действия на каждый тик, хоть так тоже можно было бы сказать, но совершенно никто не использует данный термин для этого, во-первых, в силу его тотальной бесполезности как термина, во-вторых, поскольку есть более устоявшийся термин в гейм дизайне, это действия внутри игры, которые циклично совершает игрок и которые являются основным геймплейным ядром игры. Если описать игровой цикл абстрактно - это некий анализ, за которым идёт некое действие, которое проходит через призму игровых правил, и игрок получает результат своих действий, после чего начинает сначала
То что вы написали находится в другой плоскости, не в технической. Игровой цикл в технической плоскости, для программиста, это паттерн, который я описал и любые игровые движки начинаются с него. Да он сам по себе бесполезен, но очень важно знать, как это все работает. Тоже самое важно знать например про Event Loop в frontend разработке или в desktop&mobile разработке приложений.
Немного погуглил, я не геймдизайнер и русский язык вносит еще больше путаницы. Да действительно, есть gameplay loop, его переводят как игровой цикл и есть паттерн в программировании game loop, это совершенно разные вещи. Почему gameplay loop переводят на русский не как геймплейный цикл я не понимаю, вероятно потому что в русском языке нет слова геймплей - martalex.gitbooks.io/gameprogrammingpatterns/content/chapter-3/3.2-game-loop.html
Написание движков и систем это уже другая сфера. Игровая логика для обычного программиста (десктоп, веб и т.п.) это бизнес логика, которую они пишут 80% времени.
1:14 - Паттерн Фабрика
2:00 - Игровой Цикл
5:09 - ECS (Entity Component System)
10:35 - ECS в Unity
12:10 - Flyweight
Глянул на количество подписчиков и как-то не верится)
Видосики интересные, жалко что их пока мало кто видит
Да пока неплохо растет база подписчиков, учитывая то что я нигде не рекламирую и не спамлю ссылками на свой канал.
Отличный видос, можешь ответить на вопрос? Devel next будет развиваться дальше или нет? Волнует данный вопрос.
Я не могу однозначно ответить на этот вопрос, т.к. разработка идет волнами и не только я этим занимаюсь (еще Максим и Алексей, которых все знают в группе) + время сейчас довольно нестабильное и непонятно что будет дальше.
Очень крутое видео! Спасибо!
Можно больше видео по разработке игр! Спасибо, за годное видео
А что больше интересует, теория или практика?
@@DZayceffChannel Практика, если есть возможность расскажите о применение паттернов в разработке игр.
Спасибо очень хорошо объяснил.
Мечтаю о маленьком С# видео примере ECS на русском (для чайников)... Если кто то знает такое - молю дайте ссылку.
Для Unity пишут полноценную реализацию ECS, еще в preview находится, думаю скоро выйдет релизная версия.
@@DZayceffChannel Это я знаю... Мне хотелось разобраться под капотом так сказать (и не в юнити, а просто в подходе) - как это работает (понять какими конструкциями происходит обработка ecs - как там поиск по компонентам организован, как там приоритет выставляется если он есть вообще, порядок выполнения. В целом понять как выглядит data-oriented design изнутри)
54 Лайка , пора пилить 2ю часть =)
Ага это точно))
Не могу понять какой редактор используешь?
Это Rider от jetbrains.
Почему вы советуете не использовать наследование в играх? Оно очень способствует гибкой и масштабируемой разработке. Не нужно им злоупотреблять, особенно в высоконагруженной системе
На мой взгляд композиция лучше чем наследование. Но это мое личное мнение и взгляд. Обычно наследованием как раз часто злоупотребляют, в иерархию сложно уложить то, что происходит в игре из-за того, что обычно необходимо множественное наследование, чего нет во многих языках. На помощь приходит композиция из нескольких классов. И это можно реализовать через паттерн ECS.
@@DZayceffChannel это зависит от ситуации. Та же система компонентов в юнити имеет четкую иерархию наследования
@@gaitavr1992 Да посмотрел некоторые компоненты Unity, наследование там и правда имеется, но оно не глубокое и нет сложной иерархии, по крайней мере в тех компонентах, что я смотрел. Понятно, что наследование необходимо, в ролике я имел ввиду, что многие программисты приходя из других областей сразу пытаются все уместить в иерархию классов, что на мой взгляд серьезная ошибка. То что могло быть компонентами в ECS, они реализуют через классы и наследование.
В Unity есть полноценный ECS, ты же ведь как раз на примерах Unity про всё рассказываешь, почему же про это говоришь неправду? Там и инструменты все для отладки сделаны, для удобства контроля состояний этих "компонентов". Собирание их в чанки и всё такое.
Насколько я видел пакет ECS для unity еще в разработке и последняя версия 0.11 preview.
Flyweigth это считай как MVC. Есть модели, которые только данные хранят, есть одна тяжёлая вьюха на всех и контроллер один, который всем оперирует.
Можно конечно обобщать, в чем-то этот паттерн похож. Однако приспособленец куда проще и понятнее, это просто описание типа, экземпляры хранят ссылку на тип.
Извините, но какое-то тотальное запутывание и неграмотность в базовых вещах. Игровой цикл - это не действия на каждый тик, хоть так тоже можно было бы сказать, но совершенно никто не использует данный термин для этого, во-первых, в силу его тотальной бесполезности как термина, во-вторых, поскольку есть более устоявшийся термин в гейм дизайне, это действия внутри игры, которые циклично совершает игрок и которые являются основным геймплейным ядром игры. Если описать игровой цикл абстрактно - это некий анализ, за которым идёт некое действие, которое проходит через призму игровых правил, и игрок получает результат своих действий, после чего начинает сначала
То что вы написали находится в другой плоскости, не в технической. Игровой цикл в технической плоскости, для программиста, это паттерн, который я описал и любые игровые движки начинаются с него. Да он сам по себе бесполезен, но очень важно знать, как это все работает. Тоже самое важно знать например про Event Loop в frontend разработке или в desktop&mobile разработке приложений.
Немного погуглил, я не геймдизайнер и русский язык вносит еще больше путаницы. Да действительно, есть gameplay loop, его переводят как игровой цикл и есть паттерн в программировании game loop, это совершенно разные вещи. Почему gameplay loop переводят на русский не как геймплейный цикл я не понимаю, вероятно потому что в русском языке нет слова геймплей - martalex.gitbooks.io/gameprogrammingpatterns/content/chapter-3/3.2-game-loop.html
Наследование в геймдеве сплошь и рядом. Не рекомендуют его использовать именно для игровой логики.
Написание движков и систем это уже другая сфера. Игровая логика для обычного программиста (десктоп, веб и т.п.) это бизнес логика, которую они пишут 80% времени.