Universally Unique Identifiers (UUID/GUID) // Game Engine series

preview_player
Показать описание


Chapters
---------------
0:00 Intro and The Plan
4:25 What are UUIDs and Why
10:30 UUID Implementation
21:46 UUID Hashing
28:25 Using UUIDs in Hazel

#Hazel
Рекомендации по теме
Комментарии
Автор

Hey Cherno, thank you for continuing this series for so long. I’ve learned a ton from it and it’s motivated me a lot to branch out and try things like vulkan and directx programming (tho it makes using typical game engines feel boring lol)

lamofabull
Автор

Thanks a lot for making this content. I am not actually making a game engine nor do I plan on doing so, but just watching these videos and understanding how the behind the scenes stuff works is amazing. Also, it makes me ever so more grateful for what engines like unity provide out of the box and also for free.

movingheadmau
Автор

Congrats on 400k subs man, all the best for the coming days !

gaureeshjr
Автор

The way you navigate around your code is mesmerizing so fast and with such purpose, incredible. Great video keep up the good work!

ModerateDev
Автор

I love the in-depth talks and future proofing, more of that please. It's all surprisingly relevant! Keep the great videos coming!

theRPGmaster
Автор

You do you bro, no need to apologise. I am not even a c++ dev, but loving your videos

popplestones
Автор

I just added UUID logic in my engine this week. I've been patching up the engine and I had been using Boost for UUIDs among other things, and I finally ripped it all out in favor of my own UUID class. Since all of my serialized data is the standard 128 bit UUID format, it made sense for me to keep the same 128 bit identifiers to avoid breaking the existing content. I like the idea of only using 64 bit UUIDs since it doesn't really need to be larger for that for most engines.
As far as validating for UUID collisions, I believe Unity does when importing an asset or possibly even only when first opening the project since I have seen the warnings appear for UUID collisions. Unity then issues a new UUID for the second asset in the collision. You could do that in Hazel, but it's likely overkill for an issue that hopefully rarely crops up.

DerrickCanfield
Автор

This is very very good material and the code is really easy to follow along

icaroamorim
Автор

I usually add current seconds (i.e unix time) to any id that is generated. That way it further reduces the risk for collisions without actually checking for one.

rasmadrak
Автор

This was perfect, and came out just in time! Thank you!

ambid
Автор

17:44 you should initialize all internal states to produce the best results
like so:
std::array<unsigned int, std::mt19937_64::state_size> seed_data{};
std::random_device rd{};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
std::mt19937_64 mt{ seq };

Evrx
Автор

I love Cherno's videos. I hope that one day he teaches some high math for us! I think that would be fun like a puzzle game.

tristansantiagovegan
Автор

You literally read my mind, thank you for this.

jimbo
Автор

UUIDs are nice when building assets. It's a way to make a distributed database. Artists 'import' * content, and the build tool picks it up automatically. * not a UE style import, just making a note of { path file type, UUID and friendly name }. The UUID is used in resolving collisions, without checking every DB instance.

majormalfunction
Автор

And just today I was looking into name mangling and unique random numbers in c++. Right on time

maxemore
Автор

I'm kinda glad you've given up on making this series more... strict, cause the value of your videos is exactly that you're talking about everything that could possibly happen rather then just making a "tutorial" others meant to copy with little to no explanation on why it works the way it does... I wish other tutorials would be more like this, cause I hate to copy, I want to understand, and make my own choices. :)

RPBCACUEAIIBH
Автор

Could you consider a short synopopsis video on optimizing physics in conjunction with networking for multiplay games?

Bagginsess
Автор

Hey Cherno! Great video :)
I know you have a predefined plan for both Hazel 2D and Hazel, but it would be amazing to have a video on render graphs in Vulkan.

rendoirs
Автор

Wow, C++ looks so complicated. The abstractions are crazy

yujj
Автор

Congratulations for 400K cherno! How is alivca btw?? 😃😃

joysaha
join shbcf.ru