- 692
- 1 187 946
GetIntoGameDev
Australia
Приєднався 5 січ 2021
Hi, my name's Andrew and I'm learning to make games. Join me as I learn, fail, and fail to learn.
Discord: discord.gg/vU2PKasZdn
Patreon: patreon.com/user?u=58955910
Discord: discord.gg/vU2PKasZdn
Patreon: patreon.com/user?u=58955910
November update 2
#gamedev #gamedevelopment #programming
Discord: discord.gg/vU2PKasZdn
Patreon: patreon.com/user?u=58955910
Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Discord: discord.gg/vU2PKasZdn
Patreon: patreon.com/user?u=58955910
Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Переглядів: 158
Відео
An Overview of Data Oriented Design
Переглядів 22618 годин тому
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Playlist: ua-cam.com/play/PLn3eTxaOtL2MmzULj_hDcCeqWcdrMkDLd.html Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
C++ for Game Developers: Operator Overloading within Namespaces
Переглядів 20220 годин тому
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Tutorials on GPU-driven rendering are coming soon.
Переглядів 330День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/OpenGL-for-Beginners Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Vulkan with C++, Stage 15: Swapchain Recreation
Переглядів 228День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/vulkan playlist: ua-cam.com/play/PLn3eTxaOtL2Nr89hYzKPib7tvce-ZO4yB.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Metal with SwiftUI: Compositing Layers
Переглядів 160День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoMetalDev playlist: ua-cam.com/play/PLn3eTxaOtL2MThB3r1Pz5Z-EQaqBi3dHt.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Let's make Wolfenstein in Python! 6/24: Rendering
Переглядів 196День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/wolfenstein Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Vulkan with C++, Stage 14: Frames in Flight
Переглядів 387День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoGameDev/tree/main/vulkan playlist: ua-cam.com/play/PLn3eTxaOtL2Nr89hYzKPib7tvce-ZO4yB.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Metal with SwiftUI: some quick refactoring
Переглядів 262День тому
#gamedev #gamedevelopment #programming code: github.com/amengede/getIntoMetalDev playlist: ua-cam.com/play/PLn3eTxaOtL2MThB3r1Pz5Z-EQaqBi3dHt.html Discord: discord.gg/vU2PKasZdn Patreon: patreon.com/user?u=58955910
Data Oriented Design: profiling python code
Переглядів 171День тому
#gamedev #gamedevelopment #programming Code: github.com/amengede/getIntoGameDev/tree/main/Data Oriented Design/1 Profiling Python Code Discord: discord.gg/vU2PKasZdn Playlist: ua-cam.com/play/PLn3eTxaOtL2MmzULj_hDcCeqWcdrMkDLd.html Patreon: patreon.com/user?u=58955910 Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Planning my master's degree
Переглядів 400День тому
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Nak Devlog: Gamemaker is so good it almost makes me mad
Переглядів 32114 днів тому
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Robin Hood Hashmaps
Переглядів 27614 днів тому
#gamedev #gamedevelopment #programming Discord: discord.gg/vU2PKasZdn Wishlist Nak on Steam: store.steampowered.com/app/3326840/Nak/
Gamemaker for Beginners: Making a 3D Camera
Переглядів 21714 днів тому
Gamemaker for Beginners: Making a 3D Camera
Gamemaker for Beginners: A simple platformer
Переглядів 26521 день тому
Gamemaker for Beginners: A simple platformer
Let's make Wolfenstein in Python! 5/24: The Raycasting Algorithm
Переглядів 30628 днів тому
Let's make Wolfenstein in Python! 5/24: The Raycasting Algorithm
Let's make Wolfenstein in Python! 4/24: Adding the Player
Переглядів 415Місяць тому
Let's make Wolfenstein in Python! 4/24: Adding the Player
Let's make Wolfenstein in Python! 3/24: Loading the Map
Переглядів 222Місяць тому
Let's make Wolfenstein in Python! 3/24: Loading the Map
Let's make Wolfenstein in Python! 2/24: Vertical and Horizontal lines
Переглядів 539Місяць тому
Let's make Wolfenstein in Python! 2/24: Vertical and Horizontal lines
Let's make Wolfenstein in Python! 1/24: Clearing the screen
Переглядів 437Місяць тому
Let's make Wolfenstein in Python! 1/24: Clearing the screen
absolutely love your videos 🤍
This video alone deserves standing ovation for how well everything was explained. I can’t wait to watch the remaining chapters. Amazing playlist.
Thankyou!
Are you planning on using Rust, just saw that big sticker and I'm working if you prefer Rust
Maybe! I have more experience in C++ but obviously that’s not a reason to shun Rust 😅
@GetIntoGameDev ya man. I switched to Rust but I still long for C in my heart. Love your videos keep it up
0:19 I understand that multi-shader does not mean multi-pass.
« Free speech » does not mean that you can say all s**t that comes in your mind, especially if those ideas are against some people, so good decision 👍 Sound check is great!
seems like just a few months, something changed : window:: WindowBuilder, | ^^^^^^^^^^^^^^^^^^^^^^ no `WindowBuilder` in `window`
for those who had the same problem: [dependencies] winit = "0.29" it's supper annoy the API changed, who knows which is for what....chatgpt is really sucked on that, maybe that's the part we can make human programmers superior haha
Sounds fine (and smart, mature message).
Sound check ✅
Will you also do an overview of ECS? (or have you done it already?)
That's coming, I want to focus on raw data processing on sequential data (SIMD and task graphs) before I examine ECS. For starters the input->output method is easy for beginners to grasp, after that I'll expand it.
i mean C
dat b secret agent code for C !
Hello great content, i think you could just add the inline specifier for them as well and even if you include them in many places it will only have one instance.
Incredible work! Thank you for sharing such informative tutorials. Alot of your past work has helped demystify OpenGL for me. I'll cretianly get some good use out of being able to view the buffers with the approach you showed here. By the way, your microphone sounds great, how do you record your audio?
Thanks! I use a pretty simple setup, a Shure sm7B running into a cloudlifter and a Motu m2 interface. Audio practically mixes itself, I just add a simple limiter.
@GetIntoGameDev Appriciate it!
I wanted to build a OpenGL project, but I have MacOS, is it fine if I use metal ?
How doable would you call screen space culling for voxels(more precisely axis aligned voxels) I am currently creating a voxel (terrain) renderer and already have some good culling techniques, but I am wondering whether it would be worth it to find and cull occluded chunks. (Chunks fully covered by other chunks) As I understand it I would need to save the depth values of a rendered frame to a seperate buffer/rendertarget. And use that to cull chunks on the CPU in the next frame.
I imagine it'd be pretty doable, voxels are regular shapes so a depth pyramid technique would work well. The issue I'm facing is how to occlusion cull random models, much less fun.
@GetIntoGameDev I have never done it myself, but don't they normally use a simplified shape for that? So a collection of spheres, cubes, ... That are smaller than your model
Thanks again!
BRO! SOME improvement??? i went from 1200fps to 8900fps
Oh nice!!
Cool that you posted this right now as i just so happen to be making a raycaster game . I've just got textures working in mine and plan to add sprites and working doors:)
Excellent :)
🎉
🎉
whats the probability of 10c being within 1 meter of a guitar pic at all times
Can you zoom in on the code a little bit in future videos brotha? Would make it a little easier for us to follow
cool
Hello, thanks for the video
You’re welcome!
Andrew, I have started your PyOpenGL series…do you think I should start with C++? Would there be a difference? I am a machine learning engineer and my main programming language is Python. I know C++ and Rust but haven’t done a lots of projects with them.
My main motivation is to build simple models which I can then use for building neural networks.
TBH either would be fine, but with C++ you get SIMD and multithreading, and working with raw memory is easier.
@@GetIntoGameDev ok, I am thinking of starting with python, get a hold off all the concepts…and then move over to C++ or maybe rust and try implementing again to solidify my understanding. Any supplementary books that you would recommend alongside? I have that principles of computer graphics by Hugh someone…
Hmm, if it’s for neural networks I guess I’d recommend anything on high performance computing. Learning CUDA would probably help, it has a rich history of concepts.
@@GetIntoGameDev Yes, so pyCUDA, numba are there to speed up and then pytorch-lighting models support CUDA so at the end it's just research oriented. I know NVIDIA is already a lots of stuff with 2d to 3d genai stuff, but I was curious to see if using videos we can learn ambient occlusion / shadows, how raytracing behaves when there is a light source is near. I am just fascinated how DNN can do that...imagine how much of computation we can save. Mind blowing.
Metal !!!! Yeah!!!!! Thanks Andrew :)
You’re welcome, there will be more!
I just want to say this is the only tutorial that has worked for me. Thanks.
i love this series ....
as for me, I have been playing UnderRail and Bioshock 1.
I was having trouble getting the shader files to work. To be specific I got the error "numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject', 1, <OpenGL.platform.baseplatform.glGenVertexArrays object at 0x000001EB5FA6FF80>". Eventually downgrading to python 3.10.6 and downgrading to numpy 1.26.4 fixed the issue for me!
Is this code still on your github?
im not sure if i did this right but, my image count min = 3, max = 0, and i got this validation error validation layer: Validation Error: [ VUID-VkSwapchainCreateInfoKHR-presentMode-02839 ] | MessageID = 0xfb70ccdb | vkCreateSwapchainKHR(): pCreateInfo->minImageCount 0, which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR() (i.e. minImageCount = 3, maxImageCount = 0). The Vulkan spec states: If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-presentMode-02839) so i stole this code from Brandon Galea's vulkan tutorial: uint32_t imageCount = support.capabilities.minImageCount + 1; if (support.capabilities.maxImageCount > 0 && imageCount > support.capabilities.maxImageCount) { imageCount = support.capabilities.maxImageCount; } and replaced uint32_t imageCount = std::min( support.capabilities.maxImageCount, support.capabilities.minImageCount + 1); Now i no longer have the error. Was this correct because I struggle to understand code but it seemed like it made sense... plz let me know
i also changed what originally said "swapChainSupport" to just "support" cuz obviously he had different naming convention to this tutorial
I am looking forward to Mojo Language to optimize Python.
You no longer need to specify ppEnabledLayerNames and enabledExtensionCount since they both are deprecated when you create the VkDeviceCreateInfo
i wish you all the best but as an old fart, i can't help wondering these days - especially when we're talking computer science - whether young people need to incur debt in order to learn stuff like this; seeems to be an enormous amount of high quality resources out there (not least books); is it part of your career plan to have to study this in a formal setting? like i say, i wish you all the best
Totally agree, it’s not necessary as far as skill building goes. I’m aiming to have the qualification for the opportunities it may open, but otherwise not banking on it.
@@GetIntoGameDev yeah, that makes sense, kind of. Like I say, I'm an old fart who graduated in 1979, so no real idea what employers etc are looking for these days but you're a skilled presenter, a teacher, with passion for your subject (not by any means a given when we're talking teachers, and i say that as someone who's spent some time as a teacher) and you've built a channel with 10k+ subscribers; can't help feeling your time would be better spent building something, possibly in the game space (not necessarily a game, although it certainly could be, maybe educational material(s)); to me that's way more impressive than grinding out a masters degree; forgive me if i'm talking out of turn but you seem a real smart guy and you have passion; that's not a combination you want to waste; again, Good Luck to you
How is vulkan faster than metal if vulkan is just a metal wrapper? Thanks for any clarification, thanks for the videos
Vulkan isn’t a metal wrapper, only moltenvk is. The two APIs have completely different drivers (when implemented properly eg. Asahi Linux)
HECS debt goes brrr 💸
Love that debt
Just do Ruby
I’m founding a club of non-junior devs who have been saying it wrong for years. I’m first member of course.
why would you want to use a hashing function that has so many collisions that multiple keys arrive on the same bucket? is that normal for all hashmaps?
If no collisions occur then everything’s all good. It’s most important that hashmaps have a reasonable strategy for handling collisions. As for the hashing function, this isn’t the best but I chose it for quick computation 😅
I’m not an expert, but I imagine for games performance is a bigger concern. Good hashing functions might be too complex or eat up too much memory. I can also think of a use case where maybe you want your function to collide for similar types of entities.
I may have missed some parts of my explanation. The point of a hash function is to convert arbitrary objects into unique integers, but in an entity component system we already have the guarantee of unique integer ids. The modulus operation has to happen anyway to avoid going out of array bounds, power of two sizes just makes it simpler. As for prioritising bucket positions for certain entities, it’s possible in some cases but in an entity component system there is literally meant to be nothing special about the components. They’re just data which can be queried, everything is consumed and processed the same way.
Glad to see more Beginner friendly tutorials for GameMaker
Great video
Congratulations on all your success. I will always support you, my baby💓(The coffee in Thailand is very delicious,Come back soon☕️)
Thanks baby, see you soon! 🫶💓
I remember being very happy when I was about to graduate...
congratulations on all you've achieved so far and good luck with everything you work on in the future many thanks for sharing your knowledge
Thankyou!
Awesome bro.. All the best.. More coffee to you..✌️
Congrats on your graduation :) Keep on doing what makes you happy ;) The Game Maker stuff will certainly be of interest to a lot of people.
Thanks, will do! :)
Great video, bro. Quite motivating. All the best to you.
Hi, I use kivy
Nice! Do you like it?
I love it
That's really humbling for me to see even someone as experienced as you to switch to an existing game engine. For me personally it has always been a struggle to silence my ego and just use someone else's work, although some part of me clearly sees that it would be the right thing to do. So if i would put aside my ego, it would go as follows: although making your own engines is beneficial in terms of learning, it is detrimental in terms of actually delivering products (if the product itself isn't an engine)