August 07, 15:28

Хочу поковыряться с Entity Component System для написания приложений и буду это стримить 📺

Я когда-то ссылки на ECS постил, а кое-кому и в живую рассказывал — ECS это способ моделирования предметной области, который используется в играх (например, Unity на него большой упор делает в своем DOTS, на который они перетаскивают постепенно весь Unity). Подход связан с Data Oriented Design, но в эти дебри сразу я точно сразу не полезу, (хотя с TypedArray, тредами и шареной памятью какой-то макет собрать можно (фиг знает, будет ли это вообще заметно с точки зрения скорости в итоге).

Возьму обычный Typescript, браузер, и попробую что-то порисовать похоже на игровой мир несложный. Тут упор не на производительность исходно, а на то, насколько удобно систему развивать, которая так написана, так что как поиграться пойдет.

Ну и чтобы веселее было, я это дело хочу постримить (никогда не делал, хочу попробовать). За уровень увлекательности занятия наблюдать, как я ковыряюсь в документации и сажаю баги в прямом эфире я не отвечаю, но может получиться смешно. Как-то специально готовиться я не буду (один фиг не знаю, как).

Где-нибудь в субботу после обеда, часа в три по Москве (ориентировочно).

Ссылка будет ближе к делу.

Entity component system

Entity–component–system (ECS) is an architectural pattern that is mostly used in game development. ECS follows the composition over inheritance principle that allows greater flexibility in defining entities where every object in a game's scene is an entity (e.g. enemies, bullets, vehicles, etc.). Every entity consists of one or more components which contains data or state. Therefore, the behavior of an entity can be changed at runtime by systems that add, remove or mutate components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies that are difficult to understand, maintain and extend. Common ECS approaches are highly compatible and often combined with data-oriented design techniques.