Entities and Components | Game Engine series

Поділитися
Вставка
  • Опубліковано 20 лип 2020
  • Patreon ► / thecherno
    Instagram ► / thecherno
    Twitter ► / thecherno
    Discord ► thecherno.com/discord
    Series Playlist ► thecherno.com/engine

КОМЕНТАРІ • 69

  • @MikeDesaro
    @MikeDesaro 3 роки тому +45

    7:00 EnTT doesnt allow "get" to be used with zero-sized components. It's an internal optimization. The data exists in the sparse set but there is no actual storage array for zero-sized comps.

    • @dhkatz_
      @dhkatz_ Рік тому +1

      I'm assuming this is so you can tag things and check with .has without taking up any data.

  • @elirannissani914
    @elirannissani914 3 роки тому +25

    orange is good :)

  • @vector4games960
    @vector4games960 3 роки тому +1

    Awesome video as always. The background looks great in orange.

  • @doctorwin6425
    @doctorwin6425 2 роки тому

    Ян, really want to give you a huge thanks for what you are doing and what you've already done. Watching your tutorial videos I got the most important result for me is understanding what you are saying. I mean it's thanks to your vids, because exactly watching and wanting to understand your videos, I had to force myself to overlisten to every incomprehensible word, because I wanted to learn how to do what you do! Thank you a million!!!

  • @HexAlexander
    @HexAlexander 3 роки тому +2

    Orange is perfect 🤩, just started watching your videos and subscribed yesterday 👌🏼

  • @sky_beast5129
    @sky_beast5129 3 роки тому +6

    0:06 Yes Cherno, you are very cool indeed.

  • @hamdaman3593
    @hamdaman3593 3 роки тому +8

    *looks around*
    .......
    "Am I........am I cool"

  • @RamHomier
    @RamHomier 3 роки тому

    It would be great if the font was a little bigger in the editor. Nice series I love it.
    Edit: I see you got it bigger later!

  • @couch9416
    @couch9416 3 роки тому

    These Videos are so relaxing and interesting. I don't care about game development that much, i just want to know more about the technology and how diffrent parts of software development work, but these are still super interesting.

  • @toxicore1190
    @toxicore1190 3 роки тому +2

    0:19 orange is the Cherno color, I like it

  • @ivandesiatov8842
    @ivandesiatov8842 2 роки тому +2

    Regarding adding the "Component" suffix to each component struct, this could be avoided by putting the struct in a Hazel::Components namespace.

  • @VineetNairhero
    @VineetNairhero 3 роки тому +1

    Damn when did u install lights...? Looks awesome dude ♥️

  • @kristoftoth7840
    @kristoftoth7840 3 роки тому +1

    I think you can increase the width of the file explorer on the left and put the camera in the bottom left corner because that space usually isnt filled up unless you expand every folder.
    Also the 220 % text size is more than enough on mobile 720p.

  • @MrSuperTebby
    @MrSuperTebby 3 роки тому

    (14:20) Personally **I need** a big font to be able to read what's on the screen, but if it were to make it easy for you, another option is to zoom in when editing the video.

  • @ilycode
    @ilycode 2 роки тому

    Hey ! Big thanks for the explicative content ! Now I struggle understanting the extents of ECS , is it limited to game design or could it be a good architecture for broader engines that just deal with any kind of signals like MaxMSP or TouchDesigner for instance ? I'm not sur if I need to go the ECS route .... thx

  • @doritosvegas2096
    @doritosvegas2096 3 роки тому

    What is even cooler, than a red light, and a pineapple light in the background

  • @sam_is_people1170
    @sam_is_people1170 2 роки тому

    thanks

  • @manateekida1484
    @manateekida1484 3 роки тому +1

    I propose different colours for different series.
    top right is fine, 220% is fine.

  • @AgentM124
    @AgentM124 3 роки тому

    Background Color light: #69babe is a nice turquoise icy cold color light.
    Just put your face cam in the bottom right corner. It blocks the least things, if you really want you can put it just above the time.

  • @headgames4945
    @headgames4945 3 роки тому +4

    Crazy how much of his viewers are from the US, it’s been an hour and this video only has 1.9 K views.

    • @nicobugs
      @nicobugs 3 роки тому

      Are you trying to say Australian are not into software? 😂

    • @sablanex
      @sablanex 3 роки тому +1

      Or maybe people have betting things to do, are you really spending all your day waiting for a video to be uploaded so you can watch it the seconds it's up?

  • @codingsaroj18
    @codingsaroj18 3 роки тому

    For me the camera view is good at the top right corner, the zoom is fine for me till its above 100%.

  • @rinkumultani6515
    @rinkumultani6515 3 роки тому +1

    Hello can do do the same break down with xbox velocity architecture like you did with ps5? thanks

  • @PrinceGupta-jo8lo
    @PrinceGupta-jo8lo 3 роки тому +2

    18:33 that doesn't work because braced initializer list is not a type that can be deduced by function template.
    Pls correct me if I'm wrong, I'm still a noob :D

  • @ppg_mark_taylor
    @ppg_mark_taylor 3 роки тому

    Best intros ever... BTW, did you really say, "I want to create an entity - like inside you" and you DIDN'T make a joke about that? Only a real pro has such restraint.

  • @progmaster15
    @progmaster15 3 роки тому

    I think orange is cool
    Btw, the font size is big to me as well

  • @jasonfly6198
    @jasonfly6198 3 роки тому

    220% is really good for font zoom

  • @AgentM124
    @AgentM124 3 роки тому

    0:05 yes

  • @dkthehunter596
    @dkthehunter596 3 роки тому +1

    I have read things that say 'literally everything should be an entity', and other things that say 'only things that make sense as entities should be an entity'. If I had to make a statement, I would say that everything in the game world that can interact with other thing(s) in the game world should be an entity. What do you think?
    Do you think that this depends on the game? I reckon that this does not depend on the game. I hypothesize that there can be a definitive version of this definition, but I also hypothesize that there may be multiple definitions that are all valid. Curious what you prefer.

  • @mayushkumar1623
    @mayushkumar1623 3 роки тому +2

    Wait before Cherno starts changing his room's light colour using ImGui

    • @tzimmermann
      @tzimmermann 3 роки тому +2

      Totally doable! I could change mine from the linux shell in my previous apartment. Nice project if you're into electronics.

  • @yayaskurt1541
    @yayaskurt1541 3 роки тому

    So, with entt you can not use same component twice in the same entity, like a player made with multiple sprites, so there is no way to create a spritecomponent and use it twice? (Noob question maybe)

  • @GuilhermeTeres
    @GuilhermeTeres 3 роки тому +6

    Nice color scheme! Yan, can you please zoom in the code while recording? I've been asking for a long time because I simply can't read the text. I don't have a full HD monitor or phone so it gets pixelated and blurred, becoming hard to read. I really enjoy your videos so what I do is just listen to it as a podcast while I work. But I'd like to be able to see the code as well :) Thank you!

    • @nicobugs
      @nicobugs 3 роки тому +1

      Yeah I agree, I got the same idea/request... I'm on my phone, that's hard lol.

  • @whythosenames
    @whythosenames 3 роки тому +2

    You messed up the method order, you put the transform-texture-method below the first rotated-quad-method. Also, I think that even 220% is large, I think 100% was fine but 160% might be the compromise?

  • @SuperSaiyan-tr7fz
    @SuperSaiyan-tr7fz Рік тому

    Yea please. It is really hard to read the small text as it gets blurred after youtube's compression. Especially after scaling to smartphone size

  • @dkthehunter596
    @dkthehunter596 3 роки тому +2

    7:09 "We would never have a component that has nothing in it"
    I read about empty components in ECS that function identically to marker interfaces. Like a tag - no data, just a classification as AThing or BThing. Are these "tag" components reasonable - and more than that - are they good (good practice + good design)?

    • @cyqry
      @cyqry Рік тому +1

      I would have thought that a tag would be its own component with either an enum or a string of some form?

  • @FatassRat69
    @FatassRat69 3 роки тому

    Go full spectrum cycle, it'll make your pc faster

  • @gabrielfonsec
    @gabrielfonsec 3 роки тому

    By some reason I have to include "entt.hpp" before "Events.h" , other wise it does not compile

  • @DaminGamerMC
    @DaminGamerMC 3 роки тому

    doing the group thing gives me a "conversion from 'size_t' to 'const int', possible loss of data" warning. everything works but Id like to know if i can remove it

  • @wormjuice7772
    @wormjuice7772 3 роки тому +1

    Orange is Juicy.

  • @ilyesmahdi1965
    @ilyesmahdi1965 3 роки тому +1

    cyan maybe looks good

  • @motbus3
    @motbus3 3 роки тому +1

    cherno, my suggestions
    keep your face at top right. makes sense
    bring output window below your facing
    hide the file tree while not using it, or use the code navigation from your plugins
    font size 250 is big enough, could be even smaller imho
    orange nice.
    you may use a background color for each series
    once more nice work!

  • @catinwall4256
    @catinwall4256 3 роки тому

    I honestly don't mind what the zoom is, anything above 140 is good :)

  • @zhihuazhong9804
    @zhihuazhong9804 3 роки тому

    cool.

  • @fullmatelkaschi
    @fullmatelkaschi 3 роки тому

    Hi Cherno,
    There is currently a lot of debate about whether a CrossGen release (PS4 / Xbox One to PS5 / Xbox SX) will slow down the NextGen. Your opinion would interest me. Maybe you can make a short video about it.
    greetings from Germany
    Stuka

  • @Diamonddrake
    @Diamonddrake 2 роки тому

    It’s almost impossible to follow on mobile unless you’re zoomed in.

  •  3 роки тому

    Try orange and teal colours.

  • @irishbruse
    @irishbruse 3 роки тому

    200% would be good honestly 100 was fine

  • @nicobugs
    @nicobugs 3 роки тому +4

    Just move the camera view during the recording... I see nothing against that.
    (I don't think you can find ONE good place)

  • @mathewo9209
    @mathewo9209 3 роки тому

    TOP OR BOTTOM RIGHT! NEVER EVER PLACE IT IN THE MIDDLE!

  • @MatkoFaka
    @MatkoFaka 3 роки тому

    250% font size is ok for me

  • @stanczyk4
    @stanczyk4 3 роки тому

    Question on components that always confused me.. SpriteRenderer needs a color, it also needs a transform. Should SpriteRenderer hold color AND transform? Or is the user supposed to know spriterender needs a transform? I feel that gets complicated as more complex components exist

    • @darkengine5931
      @darkengine5931 3 роки тому +1

      I would err on the side of keeping them separate because a physics system might have no interest in color, only the transformation, even if the rendering system wants both. To bundle them together would expose more data than certain systems actually need to access, which, aside from being less efficient loading more irrelevant data into cache lines, is also more difficult to reason about and debug and multithread safely.
      Actually, if you want to err one way over the other, I would err on the side of smaller components that store less and focus on a more singular responsibility, over larger ones that bundle data tackling disparate concerns.

    • @raonyreis13
      @raonyreis13 7 місяців тому

      i mean, the renderer need the position rotation and scale to render the quad, so... (also, i know, 3 years)

  • @cicciobombo7496
    @cicciobombo7496 3 роки тому

    for now given the simplicity you should leave out all the defaults constructors and assignment operaters in your components, rule of 0 and whatever

  • @sablanex
    @sablanex 3 роки тому

    The zoom level is way to high at 250%, 140% was perfect even on mobile, and I don't have a huge phone.

  • @nickpinkowski
    @nickpinkowski 3 роки тому +5

    Honestly 250% is too big for me but I understand some people might have problem when it was 100% so maybe leave it around 200%? Trying to read the code at 250% isn't pleasant at all :/

  • @SuviTuuliAllan
    @SuviTuuliAllan 3 роки тому

    Purple

  • @TheAtlasRises
    @TheAtlasRises 3 роки тому

    Blue pls thanks

  • @feiyangli2820
    @feiyangli2820 3 роки тому

    within 4 minutes

  • @asianhavoc1872
    @asianhavoc1872 3 роки тому +1

    No dislikes....thank God!!😄
    Also....R7 2700x plus Rtx2060S is good for UE4 and Unity?

  • @user-xy7vx8rx9x
    @user-xy7vx8rx9x 3 місяці тому

    I really like your content but some stuff should really not happen to someone who aspires to teach others. Like calling a value type class member a "stack allocated" variable (which I had a junior say to me on an interview probably got it from you) or completely ignoring "The rule of three/five/zero"... I know you do most of this stuff live and for free which is a big thing, but essentials are essentials.

  • @Dukekip
    @Dukekip 3 роки тому

    third

  • @gowthamravella6211
    @gowthamravella6211 3 роки тому

    first. :)