Что можно посоветовать для нубаса, чтобы разобраться в ECS?
1. Всё что нужно знать про ECS: https://habr.com/ru/post/665276/
2. LeoECS - Легковесный C# Entity Component System фреймворк: https://github.com/Leopotam/ecs
3. Entity component system, основы: https://leopotam.com/2/
4. Создание шутера с LeoECS. Часть 1: https://habr.com/ru/post/573028/
5. Шаблон проектирования Entity-Component-System — реализация и пример игры: https://habr.com/ru/post/343778/
6. Entity Component System FAQ: https://github.com/SanderMertens/ecs-faq
7. ECS back and forth: https://skypjack.github.io/2019-02-14-ecs-baf-part-1/
8. Refactoring Game Entities with Components: https://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
9. Game Object Structure: Inheritance vs. Aggregation: http://gamearchitect.net/Articles/GameObjects1.html
10. Что такое Entity System Framework и зачем он нужен в геймдеве?: https://habr.com/ru/post/197920/
11. Создание dungeon crawler'а с LeoECS Lite. Часть 1: https://habr.com/ru/post/661085/
12. Что такое ECS и с чем его компилят, Андрей Боронников: https://github.com/Red-Cat-Fat/DemoLeoEcs (в readme ссылка на видео и статью на хабре)
1. Всё что нужно знать про ECS: https://habr.com/ru/post/665276/
2. LeoECS - Легковесный C# Entity Component System фреймворк: https://github.com/Leopotam/ecs
3. Entity component system, основы: https://leopotam.com/2/
4. Создание шутера с LeoECS. Часть 1: https://habr.com/ru/post/573028/
5. Шаблон проектирования Entity-Component-System — реализация и пример игры: https://habr.com/ru/post/343778/
6. Entity Component System FAQ: https://github.com/SanderMertens/ecs-faq
7. ECS back and forth: https://skypjack.github.io/2019-02-14-ecs-baf-part-1/
8. Refactoring Game Entities with Components: https://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
9. Game Object Structure: Inheritance vs. Aggregation: http://gamearchitect.net/Articles/GameObjects1.html
10. Что такое Entity System Framework и зачем он нужен в геймдеве?: https://habr.com/ru/post/197920/
11. Создание dungeon crawler'а с LeoECS Lite. Часть 1: https://habr.com/ru/post/661085/
12. Что такое ECS и с чем его компилят, Андрей Боронников: https://github.com/Red-Cat-Fat/DemoLeoEcs (в readme ссылка на видео и статью на хабре)
https://forum.unity.com/threads/experimental-entities-1-0-is-available.1341065/?ref=dtf.ru
чуть-чуть слоупоки)
чуть-чуть слоупоки)
Unity Forum
Official - Experimental Entities 1.0 is available
Hi everyone! We’ve just published a new experimental version of Entities and other ECS-based packages, including a suite of new features and...
Внимание! Внимание!
Дуров завёз фичу с темами для чатов. В ECS Chat почти 1000 подписчиков. А значит мы можем сделать маленький телеграм-форум и разобрать его на топики. Будем производить апгрейд и делить на разделы или всё в рамках одной ленты чата?
Дуров завёз фичу с темами для чатов. В ECS Chat почти 1000 подписчиков. А значит мы можем сделать маленький телеграм-форум и разобрать его на топики. Будем производить апгрейд и делить на разделы или всё в рамках одной ленты чата?
Anonymous Poll
67%
Да, классная идея. Все обсуждения будут отсортированы на топики, даже появится флудилка.
33%
Да ну. Одна лента лучше, всё в одном месте.
Ну что же. Давайте попробуем! 🔥
Чат превратился в форум со следующими топиками:
- ECS Comrade (Oбщее)
- Unity DOTS
- LeoECS
- Entitas
- Morpeh
- Другие ECS Фреймворки
- Флуд
Чтобы найти предыдущие сообщения:
1. Откройте чат и зайдите в его настройки (три вертикальные точки)
2. Выберите функцию "View As Messages"
3. Для поиск по общему чату
Буквально месяц посмотрим, оценим данную фичу. Всем спасибо за активное участие в развитии нашего сообщества 💪🏻
Чат превратился в форум со следующими топиками:
- ECS Comrade (Oбщее)
- Unity DOTS
- LeoECS
- Entitas
- Morpeh
- Другие ECS Фреймворки
- Флуд
Чтобы найти предыдущие сообщения:
1. Откройте чат и зайдите в его настройки (три вертикальные точки)
2. Выберите функцию "View As Messages"
3. Для поиск по общему чату
Буквально месяц посмотрим, оценим данную фичу. Всем спасибо за активное участие в развитии нашего сообщества 💪🏻
Всем салют!
Подведём итоги нашей реформы с чатом, где поделили всё на соответствующие топики:
🔸 Всего сообщений в чате: 62 877
🔸 Флуд: 4 518 сообщений
🔸 Morpeh: 2 729 сообщений
🔸 ECS Comrade (Общее): 2 183 сообщения
🔸 Leo ECS: 1 538 сообщений
🔸 Unity DOTS: 917 сообщений
🔸 Entitas: 120 сообщений
🔸 Другие фреймворки ECS: 65 сообщений
🔸 Unreal ECS: 7 сообщений
Можно смело сказать, что все адаптировались к новому формату и ни у кого с коммуникацией проблем не возникает. Даже получилось всё отсортировано и понятно.
Но всё-таки давайте проголосуем)
Подведём итоги нашей реформы с чатом, где поделили всё на соответствующие топики:
🔸 Всего сообщений в чате: 62 877
🔸 Флуд: 4 518 сообщений
🔸 Morpeh: 2 729 сообщений
🔸 ECS Comrade (Общее): 2 183 сообщения
🔸 Leo ECS: 1 538 сообщений
🔸 Unity DOTS: 917 сообщений
🔸 Entitas: 120 сообщений
🔸 Другие фреймворки ECS: 65 сообщений
🔸 Unreal ECS: 7 сообщений
Можно смело сказать, что все адаптировались к новому формату и ни у кого с коммуникацией проблем не возникает. Даже получилось всё отсортировано и понятно.
Но всё-таки давайте проголосуем)
Привыкли к новому формату в ECS чате?
Anonymous Poll
72%
Да, привыкнув стало удобно общаться на определённые темы
28%
Нет, верните сплошное полотно!
Forwarded from Геймдев, который мы заслужили
Unity снова увольняет разработчиков, в этот раз целых 600 человек. Джон Риччитьелло, великий СЕО Unity, объясняет увольнения «подготовкой к большему росту». Что этот болван собрался там растить без специалистов — непонятно. Возможно, что вырастет лишь уровень буллщита, бизнесмены это любят.
Но вообще я хочу отметить другой важный момент: из Unity увольняется (или его увольняют) Майк Эктон — это один из главных специалистов по ECS в индустрии. Именно он популяризировал в геймдеве data-oriented programming. Можно сказать, что с ним уходит целая эпоха.
DOTS в Unity — это его детище. У DOTS куча проблем, он не сильно удобен, не сильно полезен рядовым разработчикам, и скорее нужен для оптимизации внутренних систем движка. Но, так или иначе, из Unity уходит очень сильный и важный специалист.
В течение последних лет Unity теряла таких спецов чуть ли не каждый месяц. Мне кажется, что ближайшие пару лет будут решающими для всей компании. И я здесь крайне пессимистичен в своих прогнозах.
Но вообще я хочу отметить другой важный момент: из Unity увольняется (или его увольняют) Майк Эктон — это один из главных специалистов по ECS в индустрии. Именно он популяризировал в геймдеве data-oriented programming. Можно сказать, что с ним уходит целая эпоха.
DOTS в Unity — это его детище. У DOTS куча проблем, он не сильно удобен, не сильно полезен рядовым разработчикам, и скорее нужен для оптимизации внутренних систем движка. Но, так или иначе, из Unity уходит очень сильный и важный специалист.
В течение последних лет Unity теряла таких спецов чуть ли не каждый месяц. Мне кажется, что ближайшие пару лет будут решающими для всей компании. И я здесь крайне пессимистичен в своих прогнозах.
Forwarded from Gamedev suffering (Andrei Apanasik)
Разработчик Factorio поделился некоторыми подробностями работы внутренних систем, в частности, рассказал про ECS.
Большая часть игры не использует никакого подобия entity component system. ECS отлично подходит, когда нужно применить некоторое преобразование к набору данных независимо от каких-либо других переменных. К примеру, добавить вектор движения к текущей позиции. Но если у вас 5-10 переменных связаны со сменой позиции, то толку от ECS не будет.
Примером этого являются логистические и строительные роботы. У них есть много разных условий:
- Хватит ли энергии у робота, чтобы совершить полное движение?
- Вышла ли цель за пределы зоны логистической сети, и робот должен отменить задание, которое ему было приказано?
- Есть ли вообще у него работа, которую он должен выполнять, или он просто ждёт команды?
Общая проблема такова: все эти проверки используют данные, характерные для логистических роботов. Если бы робот использовал «компонент положения/движения», этот компонент не имел бы понятия ни об одном из этих условий. Можно попытаться включить эти условия в сам компонент, но он вряд ли будет очень читабельным и, вероятно, будет не очень по производительности.
Боевая система использует два вида снарядов: хитсканы и проджектайлы.
Для отрисовки логика прогоняет видимую область экрана в несколько потоков, находя, что нужно отобразить, и собирая информацию, которая позже отправляется на GPU.
Основные моменты, благодаря которым в Factorio всё хорошо с производительностью:
- Система быстрого сна/пробуждения, когда сущностям не нужно выполнять работу. Когда объект «засыпает», то он полностью исключается из цикла обновлений, пока что-то внешнее снова его не включит. Время сна/пробуждения O(1). Большинство вещей большую часть времени в ожидании изменения состояния. Например: если в сборочной машине заканчиваются ингредиенты, она просто выключается. Как только что-то добавляет ресурсы, действие помещения предметов в инвентарь уведомляет машину о том, что они были добавлены, что «пробуждает» машину.
- В худшем случае никакая часть логики обновления не может превышать O(N); если обновление 5 000 машин занимает 1 миллисекунду, то 10 000 должно занять максимум 2 миллисекунды. В идеале менее 2 миллисекунд, но это редко возможно.
- Уменьшение работы с кусками оперативки, которые необходимо тыкать каждый тик. Процессоры очень быстрые в наши дни, и основными ограничителями в большинстве игр-симуляторов являются загрузка памяти в CPU и выгрузка обратно в ОЗУ.
https://www.reddit.com/r/factorio/comments/13bsf3s/technical_questions/
#factorio
Большая часть игры не использует никакого подобия entity component system. ECS отлично подходит, когда нужно применить некоторое преобразование к набору данных независимо от каких-либо других переменных. К примеру, добавить вектор движения к текущей позиции. Но если у вас 5-10 переменных связаны со сменой позиции, то толку от ECS не будет.
Примером этого являются логистические и строительные роботы. У них есть много разных условий:
- Хватит ли энергии у робота, чтобы совершить полное движение?
- Вышла ли цель за пределы зоны логистической сети, и робот должен отменить задание, которое ему было приказано?
- Есть ли вообще у него работа, которую он должен выполнять, или он просто ждёт команды?
Общая проблема такова: все эти проверки используют данные, характерные для логистических роботов. Если бы робот использовал «компонент положения/движения», этот компонент не имел бы понятия ни об одном из этих условий. Можно попытаться включить эти условия в сам компонент, но он вряд ли будет очень читабельным и, вероятно, будет не очень по производительности.
Боевая система использует два вида снарядов: хитсканы и проджектайлы.
Для отрисовки логика прогоняет видимую область экрана в несколько потоков, находя, что нужно отобразить, и собирая информацию, которая позже отправляется на GPU.
Основные моменты, благодаря которым в Factorio всё хорошо с производительностью:
- Система быстрого сна/пробуждения, когда сущностям не нужно выполнять работу. Когда объект «засыпает», то он полностью исключается из цикла обновлений, пока что-то внешнее снова его не включит. Время сна/пробуждения O(1). Большинство вещей большую часть времени в ожидании изменения состояния. Например: если в сборочной машине заканчиваются ингредиенты, она просто выключается. Как только что-то добавляет ресурсы, действие помещения предметов в инвентарь уведомляет машину о том, что они были добавлены, что «пробуждает» машину.
- В худшем случае никакая часть логики обновления не может превышать O(N); если обновление 5 000 машин занимает 1 миллисекунду, то 10 000 должно занять максимум 2 миллисекунды. В идеале менее 2 миллисекунд, но это редко возможно.
- Уменьшение работы с кусками оперативки, которые необходимо тыкать каждый тик. Процессоры очень быстрые в наши дни, и основными ограничителями в большинстве игр-симуляторов являются загрузка памяти в CPU и выгрузка обратно в ОЗУ.
https://www.reddit.com/r/factorio/comments/13bsf3s/technical_questions/
#factorio
Reddit
From the factorio community on Reddit
Explore this post and more from the factorio community
Меня зовут Игорь Гулькин, и я Senior Unity Developer. За 5 лет накопилось много опыта, и я хотел бы поделиться с вами новым подходом, с помощью которого можно описывать игровые объекты декларативно внутри и компонентно снаружи.
https://habr.com/ru/articles/735244/
https://habr.com/ru/articles/735244/
ECS Comrade
https://www.youtube.com/watch?v=0UX3rmz1LBk&ab_channel=Gamefromscratch
Ссылка на гит проекта: https://github.com/Unity-Technologies/MegacityMultiplayer
GitHub
GitHub - Unity-Technologies/Megacity-2019: Megacity is a sample showcasing streaming a large scale environment. It also contains…
Megacity is a sample showcasing streaming a large scale environment. It also contains an action-packed, multiplayer shooter mode. It leverages the power of Netcode for Entities for an immersive, mu...
#вакансия
Команда SIXHANDS в поисках Unity Developer для проекта на ME.ECS
Что ждёт:
- Работа над многопользовательской игрой в жанре Арена Шутер (WebGL);
- Плотная работа с бэкенд-разработчиком проекта;
- Прототипирование будущих фич;
- Итеративная работа над имплементацией фич.
Требования:
- Опыт работы с архитектурой ME.ECS;
- Опыт разработки игр с многопользовательским режимом реального времени;
- Портфолио из проектов цифровых игр.
Будет плюсом:
- Опыт разработки на одном из ECS движков: Morpeh, LeoECS, Entities
Более подробное описание вакансии здесь
Откликнуться и написать в личку: @Vasilisa_nes
Команда SIXHANDS в поисках Unity Developer для проекта на ME.ECS
Что ждёт:
- Работа над многопользовательской игрой в жанре Арена Шутер (WebGL);
- Плотная работа с бэкенд-разработчиком проекта;
- Прототипирование будущих фич;
- Итеративная работа над имплементацией фич.
Требования:
- Опыт работы с архитектурой ME.ECS;
- Опыт разработки игр с многопользовательским режимом реального времени;
- Портфолио из проектов цифровых игр.
Будет плюсом:
- Опыт разработки на одном из ECS движков: Morpeh, LeoECS, Entities
Более подробное описание вакансии здесь
Откликнуться и написать в личку: @Vasilisa_nes
Forwarded from Game Dev Thread
This media is not supported in your browser
VIEW IN TELEGRAM
Morpeh.Godot
Первая версия демо портирования Morpeh ECS на Godot. Кубики полетели, а значит доказательства получены.
Надо отдать должно авторам с моей стороны не пришлось плясать с бубном, завелось все очень просто.
Что дальше?
- Дальше нужен полноценный демо проект, чтобы проникнуться проблемами инструментария
- Сделать удобный сахар по аналогии с Unity версией
- Дождаться когда Godot 4 добавит поддержку мобильных платформ.
- Репозиторий с Demo проектом
Первая версия демо портирования Morpeh ECS на Godot. Кубики полетели, а значит доказательства получены.
Надо отдать должно авторам с моей стороны не пришлось плясать с бубном, завелось все очень просто.
Что дальше?
- Дальше нужен полноценный демо проект, чтобы проникнуться проблемами инструментария
- Сделать удобный сахар по аналогии с Unity версией
- Дождаться когда Godot 4 добавит поддержку мобильных платформ.
- Репозиторий с Demo проектом
Forwarded from Game Dev Thread
DOTS development status and next milestones
Unity выкатила официальный пост по состоянию DOTS на ноябрь 2023 года. Они еще раз напомнили, что с версии Unity 2022 LTS DOTS можно использовать в релизе,ну пожалуйста используйте. Собрали список примеров и материалов с которых можно начать погружение, нырнуть с головой, да.
Я приведу их вам прямо тут:
- Entities API Overview
- ECS Samples
- Learn Content
- ECS Network Racing
- Megacity Multiplayer
- Experimental Character Controller Package
- Stickylock Studios - Histera
- Sunblink Entertainment - HEROish
- Walaber Entertainment - JellyCar Worlds
- Kasedo Games - IXION
- Stunlock Studios - V Rising
- Ramen VR - Zenith: The Last City
- Electric Square - Detonation Racing
Ну и показали Roadmap для DOTS. Вот несколько пунктов:
- Добавят инструмент для создания больших миров
- Очень активно работают над системой анимации на DOTS, обещают глубокую интеграцию в инструмент по Open World. Да, вам не показалось, сейчас в релизной версии DOTS пакета анимаций еще нет.
- Eще больше улучшения параллельной работы систем - больше скорости богу скорости.
- Официальная поддержка DOTS для Unity 2023 "скоро будет". Оказывается ее еще нет =_=
Про большие модульные миры - круто. Но я все еще не понимаю почему нельзя было в основу заложить возможность интеграции одного модуля в другой. Представьте - весь ваш огромный Open World на DOTS пакете, который вы скачали из ассет стора. А дальше по нему бегают ваши монобехи.
Стало ли такое решение МАКСИМАЛЬНО быстрым - нет. Было бы такое решение удобным - да. Зачем? Как минимум потому что у компании огромное комьюнити которое уже умеет "иначе". А во вторых это не противоречит идеи скорости. Как по мне при таких огромных системных изменениях как переход на DOD, в основу стоило заложить возможность интеграции с не DOD мирами, пусть и как прослойку.
И в начале развития DOTS так и было, первым появился Hybrid Renderer, который привносил ECS в стандартный мир монобехов. Дальше что-то случилось в разработке и решено было брать только "Чистокровных" потомков ECS. Будем смотреть что получится дальше.
Unity выкатила официальный пост по состоянию DOTS на ноябрь 2023 года. Они еще раз напомнили, что с версии Unity 2022 LTS DOTS можно использовать в релизе,
Я приведу их вам прямо тут:
- Entities API Overview
- ECS Samples
- Learn Content
- ECS Network Racing
- Megacity Multiplayer
- Experimental Character Controller Package
- Stickylock Studios - Histera
- Sunblink Entertainment - HEROish
- Walaber Entertainment - JellyCar Worlds
- Kasedo Games - IXION
- Stunlock Studios - V Rising
- Ramen VR - Zenith: The Last City
- Electric Square - Detonation Racing
Ну и показали Roadmap для DOTS. Вот несколько пунктов:
- Добавят инструмент для создания больших миров
- Очень активно работают над системой анимации на DOTS, обещают глубокую интеграцию в инструмент по Open World. Да, вам не показалось, сейчас в релизной версии DOTS пакета анимаций еще нет.
- Eще больше улучшения параллельной работы систем - больше скорости богу скорости.
- Официальная поддержка DOTS для Unity 2023 "скоро будет". Оказывается ее еще нет =_=
Про большие модульные миры - круто. Но я все еще не понимаю почему нельзя было в основу заложить возможность интеграции одного модуля в другой. Представьте - весь ваш огромный Open World на DOTS пакете, который вы скачали из ассет стора. А дальше по нему бегают ваши монобехи.
Стало ли такое решение МАКСИМАЛЬНО быстрым - нет. Было бы такое решение удобным - да. Зачем? Как минимум потому что у компании огромное комьюнити которое уже умеет "иначе". А во вторых это не противоречит идеи скорости. Как по мне при таких огромных системных изменениях как переход на DOD, в основу стоило заложить возможность интеграции с не DOD мирами, пусть и как прослойку.
И в начале развития DOTS так и было, первым появился Hybrid Renderer, который привносил ECS в стандартный мир монобехов. Дальше что-то случилось в разработке и решено было брать только "Чистокровных" потомков ECS. Будем смотреть что получится дальше.
Forwarded from ECS Comrade
ECS Comrade - 5 лет!
Сообщество было создано 20 декабря 2018
Сообщество было создано 20 декабря 2018
Forwarded from Game Dev Thread
Записали я Александром(@chromealex) - автором ME.BECS разбор демо игры на фреймворке.
Поговорили про внутреннее устройство и какие фичи уже есть. Алекс рассказал для чего пришлось писать собственный аллокатор для Unity и как работает логика визуального проектирования порядка систем в ECS, где притаилась кодогенерация и причем тут многопоточка.
Получилось очень интересно, как минимум мне самому. Надеюсь, что и вы найдете для себя что-то.
P.S Канал Александра: https://t.me/unsafecsharp
Поговорили про внутреннее устройство и какие фичи уже есть. Алекс рассказал для чего пришлось писать собственный аллокатор для Unity и как работает логика визуального проектирования порядка систем в ECS, где притаилась кодогенерация и причем тут многопоточка.
Получилось очень интересно, как минимум мне самому. Надеюсь, что и вы найдете для себя что-то.
P.S Канал Александра: https://t.me/unsafecsharp
YouTube
Демо игра на ME.BECS, или как мы с автором про код говорили
Собрались с Александром - автором ME.BECS обсудить как работает его демо проект и погрузиться во внутреннее его устройство.
Мой ТГ канал о разработке игр:
https://t.me/unigamethread
Тайминги:
00:00 - Demo игра на BECS что это?
00:56 - Графы логики…
Мой ТГ канал о разработке игр:
https://t.me/unigamethread
Тайминги:
00:00 - Demo игра на BECS что это?
00:56 - Графы логики…