[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: 1745240822807048.png (154 KB, 686x386)
154 KB
154 KB PNG
>filters you
People hate ECS because they're incapable of wrapping their head around it.
It's a great IQ filter that sets apart the Microsoft Technician(tm) from the programming masters.
>>
okay
>>
>>108199751
not okay.
>>
the entitny component split is mostly useless boilerplate
>>
>>108199719
>nobody can understand or properly implement this abstraction that was supposed to be easy to understand and implement
>therefore it's good
interesting
>>
>>108202581
>comps
>boilerplate
yeah im thinkin its nodev hours
>>
>>108199719
for me, it's giga structs and functions
>>
>Entity component system
Is an over complex way to solve a problem created by compiler developers who can't optimise OOP style inheritance.
>But muh edgy internet personality told me OOP was bad
Yeah, but then they use tagged union arrays to do the say thing OOP is doing. When you pass your entity to a function it will usually use a type enum to figure out what data the entity is supposed to be representing and then call the function that correlates with that type. Which can be achieved more easily simply by creating an abstract entity class and having everything inherit from it, but most pro game devs don't do it because they are trying to avoid virtual function pointers and wasting memory because their objects aren't space efficient, but both of these problems are products of bad compiler design rather than anything implicitly good about ECS.
>>
>>108203087
>Is an over complex way to solve a problem created by compiler developers
>he thinks ecs is just about optimising CPU cache
oh my fauci, dunning kruger at its finest.
>>
>>108203087
>optimise OOP style inheritance.
Nice try uncle bob
>>
>>108202726
Or you just want to feel smarter by glorifying something totally unnecessary.
People have been doing monolithic entities (that hold all the things even if not used by that particular entity) for decades. On medium sized projects it works fine.
As long as your base entity doesn't get too big, the performance won't degrade. Fuck even RTS games don't have that many units on map. Most games just don't need to optimize for memory locality that much.
>>
>>108199719
>needing to rename SoA layout
>only for entities when it should apply to every instruction parralelizable data in the engine(world geometry, collision data animation data etc...)
>rust
>not using cache friendlier SoAoS when the architecture is memory bandwidth bottlenecked(a.k.a. always whenever the dataset size exceeds the cache size, doubly so on non-X3D CPUs)
>not combining SIMD and multithreading
>trusting the compiler for autovectorized optimizations when not even llvm can autovectorize a[] -=b[](same length) correctly without quad unrolling sisd vsubss instead of using a single svubps with xmm or ymm reg on AVX CPU
If you're gonna whine about optimization then do it correctly lile threat interactive would you wannabe of a wannabe
>>
>>108203171
>>108203229
>doesn't know what ECS is
>thinks he has something profound to say about it
yeah i'm feeling vindicated.
>>
>>108203171
>As long as your base entity doesn't get too big, the performance won't degrade.
Performance isn't the only reason people like ECS.
ECS provides an infrastructure that enforces no or minimal coupling and thinking in atomized actions instead of high-level actions.
>>
>>108199719
what's hard about it? it's piss easy.
I'm not a gayme programmer so I don't need it and even most gayme programmers don't need it.
>>
>>108203668
That's what systems isolation do, not what components decoupled from base entity does.
Components decoupled from base entity class are mostly just for memory compression, and that mostly has very little impact. If you only save few tens MB by having sparse out-of-base components instead of having all components in base class then there isn't that much benefit to it.
I wouldn't go for ECS framework and moving things out of monolithic base until I would see a significant benefit for that particular project. Otherwise it's just useless pollution to set simple things up.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.