Intro to EnTT (ECS) | Game Engine series

Patreon ► / thecherno
Instagram ► / thecherno
EnTT ► github.com/skypjack/entt
Twitter ► / thecherno
Discord ► thecherno.com/discord
Series Playlist ► thecherno.com/engine

Пікірлер: 91

  • @herrdingenz6295
    @herrdingenz62953 жыл бұрын

    28:08 ENTT - really powerful 28:09 ENTT - really fast 28:12 ENTT - really good

  • @greatbullet7372

    @greatbullet7372

    3 жыл бұрын

    MEME

  • @acatisfinetoo3018

    @acatisfinetoo3018

    Жыл бұрын

    That's what she said.

  • @mjthebest7294

    @mjthebest7294

    9 ай бұрын

    28:06 ENTT - really simple 28:08 ENTT - really powerful 28:09 ENTT - really fast 28:12 ENTT - really good

  • @magictrickdev
    @magictrickdev3 жыл бұрын

    "When I write code, I do it in American." - Yan, 2020

  • @Martinnn
    @Martinnn3 жыл бұрын

    Would love to see a standalone series on making an ECS!

  • @iwir3d

    @iwir3d

    3 жыл бұрын

    I too, would love to see a pure ECS from scratch.

  • @progmaster15

    @progmaster15

    3 жыл бұрын

    Me too, would be great

  • @user-hx4nz7bf4m

    @user-hx4nz7bf4m

    3 жыл бұрын

    yeyeyeye, but probably not a very deep dive cause people have done a entt thing and going too deep would probably be less eficient then using smth like entt

  • @DanielKierkegaardAndersen

    @DanielKierkegaardAndersen

    3 жыл бұрын

    @@user-hx4nz7bf4m That being said, entt is actually really well documented by the author.. And he even has some blog poster about different decisions he made while making entt.. So wouldn't be too difficult for Cherno to recreate entt and show us how he did it.. also pretty sure the author would appreciate the coverage :)

  • @acatisfinetoo3018

    @acatisfinetoo3018

    Жыл бұрын

    Well i took a look at the ECS source...it's probably more lines of code than the game engine it's self. So good look with that.

  • @AgentM124
    @AgentM1243 жыл бұрын

    Title: EnTT Means: Entity My brain: EnTEETEE

  • @supersquare

    @supersquare

    3 жыл бұрын

    big TT goth ecs

  • @beaucooper5602
    @beaucooper56023 жыл бұрын

    I really like how you split this topic into theory on a whiteboard in the first video and then actually looking at and implementing it in practice in the 2nd video. Made it much easier to understand! Thanks! Keep up the great videos, I'm loving this series! :)

  • @241lolololol
    @241lolololol3 жыл бұрын

    Hey Cherno just wanted to really thank you for all the effort you put in your videos to help us become better developers. I've been working on a 3D physics engine for the past 2 months and this whole concept of ECS was foreign to me until I stumbled across your video and it opened up so many possibilities. Thanks man

  • @VineetNairhero
    @VineetNairhero3 жыл бұрын

    Ahh finally after a looooong time....♥️

  • @goshisanniichi
    @goshisanniichi3 жыл бұрын

    I think a series about writing an ECS would be cool, but I'd also be okay with you just taking an episode or two to dive into EnTT and discuss how it works and possibly why it does things the way it does them.

  • @cxgslegend01
    @cxgslegend013 жыл бұрын

    Nice! The engine is getting to a really nice place. Nice work Cherno!

  • @sebastiankirk2899
    @sebastiankirk28993 жыл бұрын

    Finally after waiting for almost a week for a new video. I was starting to get worried. Thank you sooo much.

  • @carrout530
    @carrout530 Жыл бұрын

    1. if someone made C2676 error, replace 0 with entt::null 2. now .has for entt::registry no more support, replace with all_of or any_of

  • @user-vr3nk5ty5j

    @user-vr3nk5ty5j

    11 ай бұрын

    thx a lot!

  • @legendguitargamer
    @legendguitargamer2 жыл бұрын

    Man, your videos are extremely useful. Thanks a ton

  • @doctorwin64
    @doctorwin642 жыл бұрын

    Yeah, good job! I'm really interested in, huge thank you!

  • @herrdingenz6295
    @herrdingenz62953 жыл бұрын

    27:00 .. let's just hit F5 and see what happens :D

  • @nitinbindal5308
    @nitinbindal53083 жыл бұрын

    Hey bro you are doing great work keep it up👍👍

  • @manai2683
    @manai2683 Жыл бұрын

    I cannot live without this when working with c++

  • @workflowinmind
    @workflowinmind3 жыл бұрын

    Very good one chernito

  • @mdfalexis
    @mdfalexis3 жыл бұрын

    All I want is a keyboard pov camera.. god damn this man is flighing through the keys! As always, nice video keep the great work

  • @MikeDawson1

    @MikeDawson1

    3 жыл бұрын

    I'd like that as well, to pick up a few shortcuts he uses

  • @dhkatz_
    @dhkatz_3 жыл бұрын

    I'm actually so glad you've decided to opt for a third-party library like EnTT. I think it really shows that' you're serious because you're not trying to tackle literally everything on your own. You would never get a performant engine if you tried to do it all yourself. Love the videos though, keep it up!

  • @AmeshaSpentaArmaiti
    @AmeshaSpentaArmaiti3 жыл бұрын

    The video I didn't know I was waiting for. huh.

  • @_lapys
    @_lapys3 жыл бұрын

    Yayy, another video! XD

  • @Shack263
    @Shack2637 ай бұрын

    I think pronouncing Entt as "en-two-T" is a good idea. It's common to replace repeated letters in acronyms with numbers, it sounds closer to the intent of whoever named Entt, and it's also not confused with entity!

  • @rendoirs
    @rendoirs3 жыл бұрын

    On your next ECS video can you talk about entity hierarchy in Entt?

  • @prototy
    @prototy3 жыл бұрын

    Hey Cherno! Can you make a video talking a little more about the legal side of things? Like saving the license and how that is the right way to go about it and why. I am very ignorant to that whole side of coding, especially with noise algorithms lol

  • @sam_is_people1170
    @sam_is_people11702 жыл бұрын

    thanks!

  • @catinwall4256
    @catinwall42563 жыл бұрын

    yesss ! ! !!!

  • @GhostEmblem
    @GhostEmblem3 жыл бұрын

    Personally I think "N.T.T." is much more intuitive missed opportunity.

  • @keris3920

    @keris3920

    3 жыл бұрын

    Plus, it's only one typo away from TNT, which I view as a positive thing.

  • @TheGurman8r
    @TheGurman8r3 жыл бұрын

    you don't need to provide any constructors (default or not) if the class or struct can be aggregate initialized, you're just adding more code at that point.

  • @hamdaman3593
    @hamdaman35933 жыл бұрын

    Hey dude, I would like if you upload more c++ but videos, they help me alot and are really interesting

  • @PrinceGupta-jo8lo
    @PrinceGupta-jo8lo3 жыл бұрын

    A week is a long time.

  • @user-hx4nz7bf4m
    @user-hx4nz7bf4m3 жыл бұрын

    Okay so now i gotta know where this man learned c++ so well. Cause 5 years of uni doesnt seem like the time i have rn - i need to make a game and this man just did a few things that i would do a lot worse.

  • @lunarthicclipse8219

    @lunarthicclipse8219

    5 ай бұрын

    Its been 3 years, how far along have u been in c++ :)

  • @MikeDawson1
    @MikeDawson13 жыл бұрын

    I use Cereal, and couldn't figure out how to hook up EnTT to Cereal for serialization either. I asked Skypjack but the answer he gave was a bit over my head

  • @edgine1
    @edgine13 жыл бұрын

    Even visual studio struggles to load the code scrollbar thing on the right of the scree

  • @w4rd3nclyffe74
    @w4rd3nclyffe743 жыл бұрын

    will you provide an api (through jni/jna maybe?) for java developers to be able to use hazel?

  • @whythosenames

    @whythosenames

    3 жыл бұрын

    W4rd3nclyffe yeah JNI I also thought about that this would be awesome :)

  • @mistervento3885
    @mistervento38853 жыл бұрын

    As I good understand the ECS, we should not put into components any pointers. Because if we put a pointer into component then we need to access the data from ram, but that is slower than accessing it from cache. Am I right?

  • @sakuraema914
    @sakuraema9143 жыл бұрын

    19:30 I remember Cherno also did this previously in timestep class and I wonder if its same as a function object. Because a function object would be like a normal operator overloading where you write the return type and then operator() and then another () for parameters but that seems strange to me. Could anyone please explain?

  • @JorgeAmengol

    @JorgeAmengol

    2 жыл бұрын

    That is an user-defined conversion function. Quite exoteric!

  • @DimuDesigns
    @DimuDesigns3 жыл бұрын

    2:48 EnTT Intro

  • @user-bl8zs7ic6d
    @user-bl8zs7ic6d3 жыл бұрын

    终于等到了

  • @TiagoRodrigues-zp7ux
    @TiagoRodrigues-zp7ux3 жыл бұрын

    Hi Cherno. Just a quick suggestion. Use higher zoom in your browser and file system. It's a bit hard to read at 1080p. Cheers, mate.

  • @videojeroki
    @videojeroki3 жыл бұрын

    Is it something applicable for geospatial data ? 3d point cloud, vectors (linestring, polygons,...), multi-band images/rasters, terrain models, ....

  • @tzimmermann

    @tzimmermann

    3 жыл бұрын

    Hello from France! An ECS is just a way to separate data from code, you're not constrained to use it in the context of game dev. As an example, ArcGIS runtime SDK uses EnTT internally for its rendering engine. That being said, and although I'm not by any means an expert in your field, I'd say that an efficient representation of spatial data will make use of spatial partitioning in one form or another which is a completely orthogonal topic, not covered by the EnTT lib. Maybe have a look at quadtree / octree / k-D-tree implementations, I'd guess that's what you're after?

  • @Pixel_J
    @Pixel_J3 жыл бұрын

    You should do a reaction to the unreal engine next gen games unreal fest online 2020 video. It goes further in depth with the tech behind the unreal engine 5 tech demo.

  • @nexovec
    @nexovec3 жыл бұрын

    If we're talking about something that's used so much in the program as an entity system, doesn't our custom wrapper make this a lot slower though?

  • @pxolqopt3597

    @pxolqopt3597

    Жыл бұрын

    Depending on how thin of a wrapper it is, there might even be zero overhead, but let's say there was, chances are the rest of the logic going on during the execution of a game (physics, rendering & lighting, etc) will completely overshadow any overhead the wrapper could have to the point of it being zero

  • @perfectionbox
    @perfectionbox3 жыл бұрын

    should something like Entt be in boost, or be nominated for inclusion into boost?

  • @chrismclp583
    @chrismclp5833 жыл бұрын

    is that operator at 19:30 called a 'user defined conversion function'?

  • @oonmm

    @oonmm

    Жыл бұрын

    I call them casting operators.

  • @nextlifeonearth
    @nextlifeonearth3 жыл бұрын

    Could you make a video about different kinds of ECS? Like with event driven and such.

  • @Moonix7
    @Moonix710 ай бұрын

    If your running into the error where "has" doesn't exist it has been renamed to "all_of"

  • @kumu2024

    @kumu2024

    3 ай бұрын

    I read in the deprecated comment that you should use "contains" .. I think they changed even that. It is just so bad.

  • @guso1330
    @guso13303 жыл бұрын

    Writing your own (good) ECS would require also writing a memory management system. Allocators are fun to learn about though

  • @sergeykolesnik1171
    @sergeykolesnik11713 жыл бұрын

    why don't you use cmake?

  • @faridbencherif4055
    @faridbencherif40553 жыл бұрын

    Hi Cherno, can you please upload more videos on C++ series, it has been a while :)

  • @TheCherno

    @TheCherno

    3 жыл бұрын

    New C++ video this Friday!

  • @faridbencherif4055

    @faridbencherif4055

    3 жыл бұрын

    @@TheCherno Thanks!

  • @BugBiteSquared
    @BugBiteSquared3 жыл бұрын

    Ah, finally. :D

  • @FurtoMega
    @FurtoMega3 жыл бұрын

    how the hell do I include this single header file in my project without getting 200 errors????

  • @whythosenames
    @whythosenames3 жыл бұрын

    Have you planned to do public non-patreon livestreams on this channel at some point? You could be more productive since you had more time and would have a chat where we could get involved

  • @TheCherno

    @TheCherno

    3 жыл бұрын

    Yes! Planning to do some soon...

  • @catinwall4256

    @catinwall4256

    3 жыл бұрын

    @@TheCherno Yayy :D

  • @TriNity-GER
    @TriNity-GER3 жыл бұрын

    Cherno, please, please do a custom ECS!

  • @zhenobiikuzo4957
    @zhenobiikuzo49573 жыл бұрын

    Are you planning to make scripting language or use scripting language like lua? or use c++ hot reloading? I'm more intrigued how are you gonna add the component through what script language.

  • @Alche_mist

    @Alche_mist

    3 жыл бұрын

    What he told in prior videos, he's planning for C# scripting unless I'm mistaken.

  • @zhenobiikuzo4957

    @zhenobiikuzo4957

    3 жыл бұрын

    Ya i just see his latest video and he uses c# for scripting in physics. I am really looking forward how he implemented that and if he can add more.

  • @herrdingenz6295
    @herrdingenz62953 жыл бұрын

    18:15 I am german so no worries about me going to sue you about using proper english ;)

  • @filipslezak5152
    @filipslezak51523 жыл бұрын

    hello there

  • @harrysvensson2610

    @harrysvensson2610

    3 жыл бұрын

    ob1 ken-o-bi!

  • @anujv2909
    @anujv29093 жыл бұрын

    Am I first?

  • @Red-di7zb
    @Red-di7zb3 жыл бұрын

    Первый? Вроде третий

  • @beProsto
    @beProsto3 жыл бұрын

    Haha titie

  • @skeleton_craftGaming
    @skeleton_craftGamingАй бұрын

    Maths is actually more correct . Also this is what functors are for...

  • @herrdingenz6295
    @herrdingenz62953 жыл бұрын

    come on Yan .. isn't that kinda contradicting your words about the "event system" (you said: i first want to have this done before we move on) and now you are like: who cares about an ECS - i just want to do graphics?! you know you will need an ECS to handle scene data and render it ;)

  • @herrdingenz6295

    @herrdingenz6295

    3 жыл бұрын

    @M. de k. oh wow .. you know Cherno better than he knows himself ... you must be some kind of mind reader :P

  • @VineetNairhero

    @VineetNairhero

    3 жыл бұрын

    @@herrdingenz6295 😂😂😂

  • @kumu2024
    @kumu20243 ай бұрын

    This is no longer the same api inside entt. for example .has is no longer available. It is so bad that API like that removes, without even mention it in the latest versions. So, since the game engine is not updated at the FREE version, this video is useless. You cannot use the information in the video (some part of it).

  • @Alperic27
    @Alperic273 жыл бұрын

    A prime illustration of the ‘not invented here’ syndrome .... ‘i read docs for 10 minutes, could not understand it... wrote my own” ... sorry dude, that makes u a bad programmer in my book.. and a dangerous one at that, because you can write a lot of ‘damn that doc, lets write my own’ code.... ;-)