GetIntoGameDev
GetIntoGameDev
  • 595
  • 891 029
Vulkan with C++, Stage 3: Validation Layers
#gamedev #gamedevelopment #programming
code: github.com/amengede/getIntoGameDev/tree/main/vulkan
playlist: th-cam.com/play/PLn3eTxaOtL2Nr89hYzKPib7tvce-ZO4yB.html
Discord: discord.gg/vU2PKasZdn
Patreon: patreon.com/user?u=58955910
มุมมอง: 251

วีดีโอ

Vulkan with C++, Stage 2: Instance Creation
มุมมอง 59119 ชั่วโมงที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/vulkan playlist: th-cam.com/play/PLn3eTxaOtL2Nr89hYzKPib7tvce-ZO4yB.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Metal with SwiftUI: Vertex and Index Buffers
มุมมอง 26721 ชั่วโมงที่ผ่านมา
#gamedev #gamedevelopment #programming playlist: th-cam.com/play/PLn3eTxaOtL2MEUsEZlhAyiSdoS08Xjwkq.html code: github.com/amengede/getIntoMetalDev Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Hair Physics
มุมมอง 1.9K21 ชั่วโมงที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/simulations/hair Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Two Dimensional Boob Physics
มุมมอง 685วันที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/simulations/boob Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Vulkan with C++, Stage 1: App Structure
มุมมอง 819วันที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/vulkan playlist: th-cam.com/play/PLn3eTxaOtL2Nr89hYzKPib7tvce-ZO4yB.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Pygame with Legacy OpenGL. Stage 1: Drawing a wireframe
มุมมอง 23414 วันที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/legacy pyopengl Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Software Rendering: Setting Pixels
มุมมอง 45821 วันที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/software rendering Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Metal with SwiftUI: The Graphics Pipeline
มุมมอง 42521 วันที่ผ่านมา
#gamedev #gamedevelopment #programming playlist: th-cam.com/play/PLn3eTxaOtL2MEUsEZlhAyiSdoS08Xjwkq.html code: github.com/amengede/getIntoMetalDev Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Software Rendering: Clearing the Screen
มุมมอง 1.4K21 วันที่ผ่านมา
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/software rendering Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Metal with SwiftUI: Making an App
มุมมอง 70621 วันที่ผ่านมา
#gamedev #gamedevelopment #programming wwdc presentation: developer.apple.com/videos/play/wwdc2019/231/ playlist: th-cam.com/play/PLn3eTxaOtL2MEUsEZlhAyiSdoS08Xjwkq.html code: github.com/amengede/getIntoMetalDev Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Bit Level Operations
มุมมอง 385หลายเดือนก่อน
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Memory Allocation Algorithms
มุมมอง 1Kหลายเดือนก่อน
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Nak's Quest Devlog: text me maybe
มุมมอง 397หลายเดือนก่อน
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Code Review: matplotlib raytracer
มุมมอง 974หลายเดือนก่อน
Code Review: matplotlib raytracer
Data Oriented Design: Double Buffered Component Sets
มุมมอง 564หลายเดือนก่อน
Data Oriented Design: Double Buffered Component Sets
loading textures from mtl files
มุมมอง 237หลายเดือนก่อน
loading textures from mtl files
Finite State Machines
มุมมอง 242หลายเดือนก่อน
Finite State Machines
Computer System Fundamentals 3: Binary Numbers
มุมมอง 94หลายเดือนก่อน
Computer System Fundamentals 3: Binary Numbers
WGPU for beginners 3: Shaders
มุมมอง 973หลายเดือนก่อน
WGPU for beginners 3: Shaders
C++ for Game Developers: The perils of unsigned math
มุมมอง 499หลายเดือนก่อน
C for Game Developers: The perils of unsigned math
Nak's Quest Devlog: Everything is a state machine!
มุมมอง 3762 หลายเดือนก่อน
Nak's Quest Devlog: Everything is a state machine!
High Performance Rendering
มุมมอง 8002 หลายเดือนก่อน
High Performance Rendering
Nak's Quest Devlog: Finite State Machines
มุมมอง 2472 หลายเดือนก่อน
Nak's Quest Devlog: Finite State Machines
WGPU for beginners 2: making a blank screen
มุมมอง 1.7K2 หลายเดือนก่อน
WGPU for beginners 2: making a blank screen
Nak's Quest Devlog: Music is working
มุมมอง 2242 หลายเดือนก่อน
Nak's Quest Devlog: Music is working
Nak's Quest Devlog: First steps into OpenAL
มุมมอง 1903 หลายเดือนก่อน
Nak's Quest Devlog: First steps into OpenAL
WGPU for beginners 1: window and event loop
มุมมอง 3.3K3 หลายเดือนก่อน
WGPU for beginners 1: window and event loop
Nak's Quest Devlog: Dynamic Camera | Multithreading
มุมมอง 2993 หลายเดือนก่อน
Nak's Quest Devlog: Dynamic Camera | Multithreading
Nak's Quest Devlog: The arena system is done!
มุมมอง 2003 หลายเดือนก่อน
Nak's Quest Devlog: The arena system is done!

ความคิดเห็น

  • @mexicano1891
    @mexicano1891 5 ชั่วโมงที่ผ่านมา

    🎉

  • @OscarCS
    @OscarCS วันที่ผ่านมา

    I found it really difficult to find good vulkan tutorials but yours are very easy to understand and well explained. Would be awesome if you could explain the code a little bit more for people not as experienced with C++

    • @GetIntoGameDev
      @GetIntoGameDev วันที่ผ่านมา

      Sure thing! Yeah, I get that this video was a little light on details. It’s hard to strike a balance between explaining the code while focusing on important concepts and not over-explaining 🤣.

  • @kikismine
    @kikismine 2 วันที่ผ่านมา

    This series is awesome! Please don't stop doing these tutorials like other youtubers.

  • @domportera
    @domportera 3 วันที่ผ่านมา

    thank you for this! any chance you'll be working with the new dynamic rendering / shader objects extensions? they're pretty new but supposedly provide a much nicer API for working with vulkan. they can even provide a render-pass-free workflow

    • @GetIntoGameDev
      @GetIntoGameDev วันที่ผ่านมา

      I’m thinking so, it’s much simpler!

  • @UhGoomba
    @UhGoomba 5 วันที่ผ่านมา

    I'm a little confused about the difference between vk::Instance and VkInstance. You said that VkInstance is the "handle," I assume this mean whatever data is necessary to identify the instance in the driver/gpu. Then what is vk::instance? Is that also a handle?

    • @GetIntoGameDev
      @GetIntoGameDev 5 วันที่ผ่านมา

      Basically a handle is a 64 bit unsigned integer that Vulkan uses to refer to an object. On the other hand, a hpp class includes the handle, but also various methods which are associated with the underlying object.

    • @UhGoomba
      @UhGoomba 5 วันที่ผ่านมา

      @@GetIntoGameDev oh, ok thank you

  • @UhGoomba
    @UhGoomba 5 วันที่ผ่านมา

    I also appreciate that you are focusing on structuring the program. I would love if you keep focusing on that + renderer structure if the series continues to some more advanced rendering

  • @UhGoomba
    @UhGoomba 5 วันที่ผ่านมา

    Thanks for this series, I wasn't planning on learning vulkan, but I think it might be fine if I follow along with you. Though, I would honestly prefer if you had one repository where you hosted the code, and made one commit per episode. It would make it easier to track the changes between them.

    • @UhGoomba
      @UhGoomba 5 วันที่ผ่านมา

      Maybe I should try a diff app or something

  • @triq0
    @triq0 5 วันที่ผ่านมา

    yo, i think they updated winit since this tutorial was posted, since they removed window::WindowBuilder, and moved window creation to be done by the ActiveEventLoop, which is available as a parameter of a required function for the implementation of the ApplicationHandler trait. i will admit i'm not very experienced with rust. i like this change because its more readable in my opinion, but i'm having a lot of difficulty figuring out where i need to create the wgpu surface for example (inside the ApplicationHandler resumed function? in a struct that the app which implements ApplicationHandler will have ownership of?) i would love to see a working example of a simple program that uses wgpu and winit with these changes. please, any tips of a point in the right direction would be appreciated 🙏

    • @triq0
      @triq0 4 วันที่ผ่านมา

      everything is possible as long as you keep trying. i just figured it out lol, and to answer my question in case anyone is wondering: do all the relevant wgpu initialization inside the resumed function after the window is created, and put the information that you'll need in the RedrawRequest event (ex: render_pipeline: Option<RenderPipeline>, device: Option<Device> , queue ... , etc.) in the App struct (that implements ApplicationHandler) alongside the window: Option<Window> to be filled out as you go. i was getting stumped on assigning self.surface to a surface that i created using instance.create_surface(self.window.expect("nothing here")).expect("failed to create surface"); using expect or unwrap was causing issues with lifetimes, meaning the app struct implementing this would have to live longer than itself in order to supply a window to its own surface. i think this is because unwrap "consumes" the self (which i'm not really sure the meaning of). since all we want is the Window for instance.create_surface (and i'm slightly sure we don't need the Window itself for anything), we can use self.window.take() which is going to replace self.window with None, and then give the resulting Window to the instance.create_surface method to be created 💥 i'm not sure if thats the right way to go about handling ownership, but it worked so hell yea. one more thing about handling asynchronous creation of wgpu structs (since i was very confused about this before): i'm using pollster::block_on( async { /* wgpu async method call */ })

  • @Coding_and_Gaming
    @Coding_and_Gaming 5 วันที่ผ่านมา

    Thanks great work.

  • @Lurmog
    @Lurmog 6 วันที่ผ่านมา

    Please keep doing this course, it's so good it's a hidden gem, i have been struggling a lot with Vulkan and i already understand better by just watching your 2 videos :D

    • @GetIntoGameDev
      @GetIntoGameDev 6 วันที่ผ่านมา

      Thankyou! My goal is to make it understandable ☺️

  • @archibaldthe3rd13
    @archibaldthe3rd13 6 วันที่ผ่านมา

    Hi there loving the series so far but I keep running into the following error message when I try and run the shaders: File "C:\Users\Gamer\AppData\Local\Programs\Python\Python39\lib\site-packages\OpenGL\plugins.py", line 18, in load return importByName( self.import_path ) File "C:\Users\Gamer\AppData\Local\Programs\Python\Python39\lib\site-packages\OpenGL\plugins.py", line 45, in importByName module = __import__( ".".join(moduleName), {}, {}, moduleName) File "C:\Users\Gamer\AppData\Local\Programs\Python\Python39\lib\site-packages\OpenGL\arrays umpymodule.py", line 28, in <module> from OpenGL_accelerate.numpy_formathandler import NumpyHandler File "src/numpy_formathandler.pyx", line 1, in init OpenGL_accelerate.numpy_formathandler ValueError: ('numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject', 1, <OpenGL.platform.baseplatform.glGenVertexArrays object at 0x000001A746009DC0>) I've copied and pasted the code from the github and the same message comes up so I have no clue what to do from here. I really hope this is an easy fix and that someone can help. Thank ypu

    • @archibaldthe3rd13
      @archibaldthe3rd13 6 วันที่ผ่านมา

      This was a stupidly easy fix. All you have to do is update numpy and it works no problem.

  • @corewwwi
    @corewwwi 7 วันที่ผ่านมา

    nice new intros!

  • @user-ov5nd1fb7s
    @user-ov5nd1fb7s 7 วันที่ผ่านมา

    You don't need to copy anything. Instead of indexing, use a method get_mut.

  • @phoenix7680
    @phoenix7680 7 วันที่ผ่านมา

    There is so little knowledge about metal out in the web so thanks for recording this series!

  • @AnonTen
    @AnonTen 8 วันที่ผ่านมา

    inverse kinematics... for hair...?

    • @GetIntoGameDev
      @GetIntoGameDev 7 วันที่ผ่านมา

      Yeah, I butchered that 🤣. I was investigating the idea that a segment of a hair strand can transfer its linear force back to its predecessor, ie. pushing on the end of a strand will have an effect on the rest of the strand.

  • @CaptTerrific
    @CaptTerrific 8 วันที่ผ่านมา

    I'm truly perplexed how this affected performance in any direction except negatively... please help :) What was described on paper, putting every single cube and transformation into a single class of multiple arrays, shouldn't be any different from having each in an array in a different class - the objects of that class should still be references to their components, with each pointer still being O(1) since there are no list traversals, and each object in the heap would be stored contiguously. And given the size of the arrays we'd expect from all transformations, unless we preallocate a HUGE amount of memory space, we're still going to be hindered (speed and cache misses) by the single virtual memory space being separated throughout the core. If, instead, you're truly creating a single OBJECT with all of the cubes and transformations in a single set of arrays, I'd expect the still constant time calculation of the indices for lookup to be at least twice as computationally intensive as pointing directly to them. Not to mention - if this is all a single array - what this would do to insertion and removal times! Even implementing with a search tree instead of an array should still be slower, if I'm understanding this correctly (which I am clearly not :D) Is this just a python thing, to trick the interpreter into doing what you want? I've never done graphics programming, and I know nothing about how Python works under the hood... someone please explain what I'm getting wrong here :)

    • @CaptTerrific
      @CaptTerrific 8 วันที่ผ่านมา

      So, per usual, I should have just watched the full video before commenting... but my questions are still somewhat relevant (maybe?). It seems your implementation makes perfect sense here, since you're using a small, set number of cubes with a set number of transformations mapped 1:1. I'm curious if this 1) scales with thousands of objects, and/or 2) remains efficient with frequent additions/removals?

    • @GetIntoGameDev
      @GetIntoGameDev 7 วันที่ผ่านมา

      I don’t remember exactly what implementation I went with here, from memory this should scale decently for more objects but needs some modification to actually be useful within a more complicated system. There will be certain thresholds at which one approach beats another. Currently I’m going with an ordered array and binary search lookup for my engines, but this is prefaced on the idea that I’ll be searching data a lot more than adding/deleting. Beyond a certain size a hashmap would probably perform better.

  • @Red_Paper6495
    @Red_Paper6495 8 วันที่ผ่านมา

    Damn! The beginning is like something out of a "House of Wax" movie. Creepy. :)

  • @KaidenBird
    @KaidenBird 8 วันที่ผ่านมา

    Do you plan on trying out vulkan.hpp's unique pointers? You won't have to do much cleanup with them :)

  • @tomwilliam7299
    @tomwilliam7299 8 วันที่ผ่านมา

    Also, you can consider WebGPU instead of Vulcan

    • @Lurmog
      @Lurmog 6 วันที่ผ่านมา

      Bro why do you said that, he already have a playlist about wgpu on his channel and also Vulkan is way more mature than WebGPU.

  • @CoolestPossibleName
    @CoolestPossibleName 8 วันที่ผ่านมา

    Glfw is cool and all but there are no tutorials related to SDL3

    • @GetIntoGameDev
      @GetIntoGameDev 8 วันที่ผ่านมา

      Vkguide!

    • @KaidenBird
      @KaidenBird 8 วันที่ผ่านมา

      SDL3 came out a week ago 🤣give it some more time, or just use SDL2 for now!

    • @CoolestPossibleName
      @CoolestPossibleName 8 วันที่ผ่านมา

      @@KaidenBird yeah you're right

  • @tomwilliam7299
    @tomwilliam7299 8 วันที่ผ่านมา

    Please Please Please stop this course because C++ is stupid language, should not use any more, Please re-do this course but by Rust language please 😘😘😘😘🥰🥰🥰🥰

    • @Simfuchsia
      @Simfuchsia 8 วันที่ผ่านมา

      Vulkan with Rust is quiet a mess. I would rather use WGpu.

    • @luigidabro
      @luigidabro 8 วันที่ผ่านมา

      nuh uh

    • @KaidenBird
      @KaidenBird 8 วันที่ผ่านมา

      the "course" just started bro calm down 😭

    • @Red_Paper6495
      @Red_Paper6495 8 วันที่ผ่านมา

      Rust have no future. The future is C++. No one will ever give up C++.

    • @tomwilliam7299
      @tomwilliam7299 8 วันที่ผ่านมา

      @@KaidenBird better to solve the mistake than we keep doing the same mistake ☺

  • @WhileTrueCode
    @WhileTrueCode 8 วันที่ผ่านมา

    i found your intro sequence with paper sketches and voiceover to be impressive

  • @flakeybran1447
    @flakeybran1447 9 วันที่ผ่านมา

    I was watching the Python and OpenGL tutorial series, how did I get here? 💀

  • @CoolestPossibleName
    @CoolestPossibleName 9 วันที่ผ่านมา

    Cloth physics should be similar to this right?

    • @GetIntoGameDev
      @GetIntoGameDev 9 วันที่ผ่านมา

      Yes, very similar if the cloth is unstretchable

  • @4AneR
    @4AneR 9 วันที่ผ่านมา

    Cool, I guess you can speed it up substantionally by storing everything in numpy annd processing without "for" loops

    • @GetIntoGameDev
      @GetIntoGameDev 9 วันที่ผ่านมา

      That’s right, this was just a quick mockup.

    • @vannya36
      @vannya36 8 วันที่ผ่านมา

      Or make it even faster by running it in C++ or at least Java :) But C++ is much harder

  • @UhGoomba
    @UhGoomba 9 วันที่ผ่านมา

    I was just thinking about boobs, perfect timing for this video

  • @CoolestPossibleName
    @CoolestPossibleName 9 วันที่ผ่านมา

    I'm gonna bookmark this video. Will need this later

  • @AjayVenkat-ll1jl
    @AjayVenkat-ll1jl 9 วันที่ผ่านมา

    I just learnt Metal off this channel, then I look for a WebGPU tutorial series and you're here again! Thanks :D

  • @aurele2989
    @aurele2989 10 วันที่ผ่านมา

    this will really boost my characters' personality! uh, please disable autofocus and autoexposure lol

    • @GetIntoGameDev
      @GetIntoGameDev 9 วันที่ผ่านมา

      Yeah, first time trying that camera, will probably stick to using my phone 🤣

  • @sploffo
    @sploffo 10 วันที่ผ่านมา

    not super interested in implementing this, but the physics behind it is certainly... interesting!

  • @Hobbes9
    @Hobbes9 10 วันที่ผ่านมา

    Very important work

  • @kakalisaha9428
    @kakalisaha9428 10 วันที่ผ่านมา

    Pls vulkan.h plsplsplsplsplsplsplsplsplsplsplsplsplspls you already have a series that uses vulkan.hpp so can't u use vulkan.h this time.

    • @KaidenBird
      @KaidenBird 9 วันที่ผ่านมา

      nooo!!! vulkan.hpp forever 😎😎😎

  • @gawdahm1964
    @gawdahm1964 10 วันที่ผ่านมา

    What a time to be alive

    • @GetIntoGameDev
      @GetIntoGameDev 10 วันที่ผ่านมา

      We need more research in this field! Many promising discoveries await!

  • @dubietbay3154
    @dubietbay3154 10 วันที่ผ่านมา

    Look like boob bone in blender.

  • @JacobLince-ze3fs
    @JacobLince-ze3fs 10 วันที่ผ่านมา

    I'm running into a problem with this lesson. My code so far appears to be exactly how it should be up to video 2 (this one) But, when I hit compile I just get a blank Python window with out the triangle showing up. I was wondering if anyone could give me some advice on what I'm doing here that might be a roadblock I can't see.

  • @pixelusion2311
    @pixelusion2311 11 วันที่ผ่านมา

    Well, this columns are so confusing in the code. I should have taken Javascript classes before starting to learn WebGPU. I thought my C/C++ knowledge would be fine for the whole course.

  • @ilForni
    @ilForni 12 วันที่ผ่านมา

    How hard to run a Xcode template😅

  • @luigidabro
    @luigidabro 12 วันที่ผ่านมา

    I would suggest using a printf-like function for the logger. In c++ it is pretty easy to do using templates. It reduces the print calls a lot. It's something like template<class ... Args>

  • @anwartech8193
    @anwartech8193 12 วันที่ผ่านมา

    That content is amazing we love to see you work on it. For record I don't think it's much but the app pointer never gets deleted. And cleared. Love your work.

    • @GetIntoGameDev
      @GetIntoGameDev 12 วันที่ผ่านมา

      Thankyou! Yes that’s correct, I’m letting the operating system clear that up at the end of the program. This is ok since only one app is ever created and it’s expected to live for the lifetime of the program. The purpose of deleting the engine isn’t so much for memory management as it is for having a clean point at which to delete vulkan objects. Hope that explains it!