Entity Instancing, Control Size and Position, Engine Layers Explained
In this Tutorial I explain how the Engine is structured in different Layers while creating a Game Layer to draw 100 instanced Entities and change their Position.
Wishlist & Demo: https://store.steampowered.com/app/2245620/Cakez_TD
itch.io Demo: https://cakez77.itch.io/cakeztd
Twitch: https://www.twitch.tv/cakez77 10:00am CEST 1:00am PDT
Patreon: https://www.patreon.com/Cakez77
Discord: https://discord.gg/jVSX7YmEHj
TokTok: https://www.tiktok.com/@cakez_77 (Funny Stream clips)
Final Result:
https://github.com/Cakez77/PongFromScratch/tree/16_proper_2D_render_interface
Clone Branch:
git clone --branch 06_game_layer https://github.com/Cakez77/PongFromScratch.git
Pastebin, because YouTube shortens the Link
https://pastebin.com/CHXSV2Zs
Or Switch to Branch (might need git fetch):
git fetch (could be needed, this fetches remote data)
git checkout 06_game_layer
Repository:
https://github.com/Cakez77/PongFromScratch/tree/06_game_layer
RenderDoc:
https://renderdoc.org/
--- Timestamps---
0:00 Engine Layers
1:50 Game Layer
5:32 Shared Render Types
6:27 GlobalUBO & Transform Storage Buffer
11:40 Automatic Shader Compilation
17:08 New Descriptor Layout
19:33 Changed Descriptor Pool Sizes
20:45 Updating Descriptor Set
27:25 Copy Entity Transforms to GPU
28:30 Index Buffer + Explanation
32:15 vkCmdDrawIndexed
33:33 RenderDoc
34:44 Entity Transforms in Shader
36:05 Normalized Device Coordinates Conversion
37:08 More Entities
38:22 Git Stuff
I like structuring my Engine into Layers where the Platform Layer at the very bottom has access to virtually everything in the engine. Since we don't use classes to hide away anything and we also do what is called a "Unity" Build, we have to manage Access by ordering our Includes properly.
A "Unity" Build means, that we only have one compilation Unit that we give to the Compiler. This makes Build Times very fast, even with Tens of Thousands lines of Code.
The Game Layer will be above the Rendering Layer, since it should not worry about how it is being drawn. The Job of the Game is to manage Entities. The Job of the rendering Layer (Vulkan Renderer in our case) is to take those Entities and copy needed Data over to the GPU in order to draw them.
I hope you liked the video, if you did you can support me by subscribing and leaving a like.
Видео Entity Instancing, Control Size and Position, Engine Layers Explained автора JavaScript для веб-мастеров
Видео Entity Instancing, Control Size and Position, Engine Layers Explained автора JavaScript для веб-мастеров
Информация
4 декабря 2023 г. 17:15:38
00:38:46
Похожие видео