Не так давно наткнулся на такой подход программирования в играх как ECS (Entity Component System). Далее начал читать статьи и смотреть различные ролики по этой теме. Из названия понятно что это разделение на сущности, компоненты и системы. Но почему он становится более предпочтительным в разработке игр нежели всем…
Тема
23 126
38
nazarpunk, не, там фича в другом.
Скорее
Решение А
agentSKucheyGovna[i]
Решение Б
agents[i]
worldState[i]
kuchaGovnaSpellov[i]
...
Угадай в каком решении быстрее сделать обходы и умножения векторов много раз в секунду
30
Например, игрок является сущностью, а его скорость, позиция и жизни компонентами, движение игрока будет системой, которая итерируется по компонентам скорости и позиции. Данный подход делает наш код практичным и переиспользуемым.
Ужасное ООП
class Unit {
	vec3 position;
	vec3 speed;

	void move(){
		//...
	}
}
Прекрасный ECS
struct Position {
	vec3 position;
}

struct Speed {
	vec3 position;
}

class Unit {
}

struct UnitHolder {
	Unit unit;
	Position position;
	Speed speed;
}


void moveUnit(UnitHolder unit){
		//...
}
30
Данный подход делает наш код практичным и переиспользуемым.
А методы для работы с этими сущностями в код не входят?
30
Но почему он становится более предпочтительным в разработке игр нежели всем известный ООП с его подходами?
И почему же?
16
Минус png с черным текстом на темной теме сайта
Загруженные файлы

Capybara Hot Tub - симулятор пушистого стримера

Станьте интернет-звездой в Capybara Hot Tub, играя за милого и пушистого стримера! Расслабляйтесь в горячей ванне, ухаживайте за шерсткой и обустраивайте студию вокруг капибары, чтобы обрести славу!
Новость
6 114