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 теряла таких спецов чуть ли не каждый месяц. Мне кажется, что ближайшие пару лет будут решающими для всей компании. И я здесь крайне пессимистичен в своих прогнозах.
💔16😱5🙉5🤡3🐳2👍1🔥1🤔1
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
👍19🔥7👎4🤔4
Меня зовут Игорь Гулькин, и я Senior Unity Developer. За 5 лет накопилось много опыта, и я хотел бы поделиться с вами новым подходом, с помощью которого можно описывать игровые объекты декларативно внутри и компонентно снаружи.
https://habr.com/ru/articles/735244/
https://habr.com/ru/articles/735244/
👎9🤣7🤯5🤡5👍2🥱2❤1😁1🤮1🌚1
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...
👍5
#вакансия
Команда 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
👍5🗿1
Forwarded from Game Dev Diving
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 проектом
🔥27👍9👏6😡1
Forwarded from Game Dev Diving
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. Будем смотреть что получится дальше.
👍7❤1😈1
Forwarded from ECS Comrade
ECS Comrade - 5 лет!
Сообщество было создано 20 декабря 2018
Сообщество было создано 20 декабря 2018
🎉20👍7🔥4🍾2❤1🗿1
Forwarded from Game Dev Diving
Записали я Александром(@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 - Графы логики…
🔥8