I Made a Graphics Engine (with Vulkan)
To learn for free on Brilliant, go to https://brilliant.org/Zyger/ . You’ll also get 20% off an annual premium subscription. I promised you that when we reached 100k subscribers I was going to try Vulkan. Well here is the first video of many of me making a graphics engine with Vulkan. In this video I cover making the project and setting up Vulkan, linking all libraries, 2D and 3D rendering, making an ECS (Entity Component System), UI programming and more ! ➤My Links: Discord: https://discord.gg/tYDXGja55Y Instagram: https://www.instagram.com/gabzxd/ Twitch: https://www.twitch.tv/officialzyger Twitter: https://twitter.com/ZygerDesigns Patreon: https://www.patreon.com/Zyger ➤Music by Epidemic Sounds ➤Ignore: I created my own graphics engine engine. I tried implementing as many features as I could. I began by rendering 2D shapes onto the screen and realized how much work it is to calculate all the vertices and indices hand. I then moved onto 3D shapes which was even harder. I created materials and textures which I would apply onto the objects. Then I moved onto implementing an ECS system which is an entity component system. So now I can create empty entities and add different components to them similar to Unity. I then went onto using ImGui to create the UI of the engine. This is things like a hierarchy menu, properties menu, scene view etc. Finally I created and interactive camera system for the scene, #gamedev #zyger #gameengine #vulkan
Video Chapters
- 0:00 Kicking off the Epic Journey: Building a Brand New Engine
- 0:28 The First Glimmer: Our Engine's Window Emerges!
- 0:49 Mastering Vulkan: Rendering Our First Triangle
- 1:47 Architecting the Core: Implementing a Custom Entity Component System (ECS)
- 5:16 Bringing the Editor to Life: Crafting Our ImGui UI
- 6:10 Intuitive Control: Integrating ImGuizmo for Object Manipulation
- 6:51 SpriteRenderer Unleashed: Bringing 2D Shapes to Life
- 7:36 Elevating Graphics: Loading and Displaying 3D Models with MeshRenderer
- 8:13 Mastering Perspective: Implementing Intuitive Camera Controls
- 8:27 The Road Ahead: Engine Status & Future Development Plans
Original Output
0:00 Kicking off the Epic Journey: Building a Brand New Engine 0:28 The First Glimmer: Our Engine's Window Emerges! 0:49 Mastering Vulkan: Rendering Our First Triangle 1:47 Architecting the Core: Implementing a Custom Entity Component System (ECS) 5:16 Bringing the Editor to Life: Crafting Our ImGui UI 6:10 Intuitive Control: Integrating ImGuizmo for Object Manipulation 6:51 SpriteRenderer Unleashed: Bringing 2D Shapes to Life 7:36 Elevating Graphics: Loading and Displaying 3D Models with MeshRenderer 8:13 Mastering Perspective: Implementing Intuitive Camera Controls 8:27 The Road Ahead: Engine Status & Future Development Plans Timestamps by StampBot 🤖
Unprocessed Timestamp Content
0:00 Welcome! From 100k subs to building a shiny new engine 0:08 Get ready for the first engine development blog, let's go 0:17 First steps: creating the project and the long road to a window 0:28 Finally a window! It only took 56 minutes, but we got there 0:39 Rebuilding the project with CMake for better organization, smart moves 0:49 Following a Vulkan tutorial, step-by-step to rendering a triangle 1:01 Realizing one massive file is bad, time to reorganize into classes 1:12 Diving into the 'window.cpp' class for window handling magic 1:16 Exploring 'swapchain.cpp' for managing our lovely swap chain 1:21 Understanding 'pipeline.cpp' and how shaders become art 1:27 The 'engine.cpp' class: where all the engine's main magic happens 1:31 The "main func" where the engine starts its epic journey 1:40 Back to an empty window, because engine development is rarely linear 1:47 Time to implement Entity Component Systems, like Unity but custom 2:00 What is ECS? A quick overview for game engine enthusiasts 2:27 The Entity header: just a simple integer ID, nothing too fancy 2:44 The ECS Registry: responsible for managing entities and their lives 3:01 Component structures: where all the data lives, clean and efficient 3:16 Why structures over classes? More efficient data handling for speed 3:38 Using the ECS system in practice: creating and adding components easily 3:48 Learning to code while making your engine with our awesome sponsor 5:16 Okay, back to the engine! Building an ImGui-based editor UI 5:40 Our new shiny editor: hierarchy, properties, and scene view in action 6:02 The properties panel: tweaking components, like a digital sculptor 6:10 ImGuizmo integration: moving, scaling, and rotating objects with ease 6:35 The rendering components: introducing SpriteRenderer and MeshRenderer 6:51 SpriteRenderer in action: making 2D shapes pop with colors and textures 7:36 MeshRenderer at work: loading 3D models and giving them life 8:13 Camera controls: navigating the 3D world just like in Unity 8:27 Current engine status and exciting plans for future GitHub releases Timestamps by StampBot 🤖