Allelouia!!! This video is amazing!!!! Bravo for all the preparation work to make the subject understandable!!! I discover your channel today. I will look at the rest very closely. 1000 times thank you!
@RasamRohit4 күн бұрын
@21:43 are you using the Math3D library by Stephan Soller?
@pikuma4 күн бұрын
No. I wasn't aware of this library before your comment. This is a snippet of the code we wrote in our 3D programming module.
@pikuma4 күн бұрын
I assume the code might look similar given that all matrix entries are similar anyway.
@JohnWasinger6 күн бұрын
Try using Lex and Yacc for this.
@pikuma6 күн бұрын
@@JohnWasinger Sure. Can do. But then you'll be depriving yourself from the fun part. 🙂
@dotteda7 күн бұрын
so good! please make 3d engine course!
@lacoursiereetienne9 күн бұрын
if you are on macos and installed sdl2 via homebrew, you can get the installed paths by running sdl2-config --libs and sdl2-config --cflags and the run gcc like this gcc -Wall -Wextra -I/opt/homebrew/include/SDL2 -D_THREAD_SAFE -L/opt/homebrew/lib -lSDL2 ./src/*.c -o game
@WojciechDomalewski9 күн бұрын
In C, a return value of zero indicates that the program has completed successfully. Therefore, a value of 0 should be returned.
@pikuma9 күн бұрын
@@WojciechDomalewski That is correct. This is not really a hard requirement but a social agreement for functions that return 0 if success, and an error code (different than 0) if they fail.
@duman_dp9 күн бұрын
Hello Dr. Gustavo, do you have any plans to create a course in the field of AI in game development?
@pikuma9 күн бұрын
Hi there. Not yet. There is another professor in London that has a course on traditional AI for games. Check out @AlanZucconi.
@fabianrr9 күн бұрын
Excellent Pikuma, also your website is down
@pikuma9 күн бұрын
@@fabianrr Hmm, I juat looked at the logs and I had students logged in for the past 4 hours. What error are you getting?
@fabianrr9 күн бұрын
@@pikuma The connection has timed out
@pikuma9 күн бұрын
Can you try using mobile data, maybe? I tried both using wifi and 5G and it works.
@pikuma8 күн бұрын
Any luck?
@fabianrr3 күн бұрын
@@pikuma Hola Gustavo, solo puedo acceder a la página mediante VPN. Soy de Chile Saludos.
@user-xr8qs4xj8e9 күн бұрын
I finished 4 of your 10 courses (still working on 2), and the one about Computer Graphics Programming really stands out to me. The others are also amazing, but the graphics one really opened my eyes on another level. Are you maybe planning to make another course in this field? Maybe about Raytracing or even a graphics API. Would be awsome!
@pikuma9 күн бұрын
It's true. I agree. The 3D graphics programming one hits different. I was thinking of something like OpenGL or Vulkan, but to be honest it's such a drama to get everything setup properly in different machines that I get a little bit demotivated. Also, there are so many resources out there covering it that I'm not sure I would add anything different than what's already there. Maybe a raytracing one. I'm not sure. :D
@nahuakang9 күн бұрын
Looking forward to every Christmas/New Year for your videos. Always excited, never disappointed ❤🎉
@pikuma9 күн бұрын
Happy holidays, Nahua! Thank you for the support as always.
@notdeus383410 күн бұрын
Well, this was a treat, thank you. Merry xmas. Too bad i didn't have my notebook while watching this🤔 say, will you ever do a course specifically for game AI i.e finding paths in SDL2/3?
@pikuma9 күн бұрын
That's a great idea. I have a friend who is also a professor here in the UK that just released some lectures on traditional game AI that are really cool. Check out @AlanZucconi's channel. :)
@mjonathancg179410 күн бұрын
Any plans to make a course about raytracing or shading?
@pikuma9 күн бұрын
Raytracing one day, maybe. But until then, I think you'll be ok with the new version of RayTracingInOneWeekend. :D
@lunarmodule641910 күн бұрын
Happy 2025 everyone! 🎉 😊
@tomkirbygreen9 күн бұрын
Almost.
@theobserver721710 күн бұрын
any plans to make a course about algorithms and data structure?
@pikuma10 күн бұрын
@@theobserver7217 I have not thought about that. I assumed there were already countless courses like that out there.
@GaryChike10 күн бұрын
@@pikuma - there are countless
@tomkirbygreen9 күн бұрын
@@theobserver7217 if we’re casting around for course ideas I think shader writing could do with some love.
@Kknewkles10 күн бұрын
Christmas present! 👀
@pikuma10 күн бұрын
Happy holidays! 🙂
@victor_anik13 күн бұрын
Very good! Any thoughts, is semi-implicit Euler and Verlet the same thing?
@alokbhushan902613 күн бұрын
When we move from points to sticks. The system is no longer conserving energy. It is loosing energy. What's the reason for that? Also what numerical methods are used for calculating mission trajectories and planetary orbits for space missions?
@Sniffer19413 күн бұрын
bro coding on GameBoy Color
@BlitzvogelMobius14 күн бұрын
I'm having a very difficult time finding info on the GTE and GPU architectures. Any info on ALUs, and the execution units contained?
@wanderingnomad927215 күн бұрын
In the case of updating a stick where one point is pinned and the other is not, shouldn't the adjustment in the position of the point that is not fixed be twice what it is as implemented in the current code? Otherwise it seems that you are adjusting the stick position only by half of the actual difference on length change.
@Albertmars3217 күн бұрын
Can u explain why you are returning 0 for failures and 1 for success? In c++ i was taught the opposite
@Albertmars3217 күн бұрын
Nvm i see why, tho i think using bool would have been preferable
@pikuma16 күн бұрын
@@Albertmars32 Definitely. I agree. 🥲
@lehisluguer930018 күн бұрын
excellent explanation..
@jamesmasonic19 күн бұрын
13:05 What could go bad if free is used for de-allocation but destructor is not used? I mean instead of delete if one uses only free what would happen?
@jamesmasonic19 күн бұрын
I wish you had a complete course teaching just C C++ with what's happening in low level like this. Like showing how function pointers lambdas and call backs are used ect. also showing how OS internals and drivers interact with the code ect. The internet lacks that systems level of C/C++ teaching.
@hanelyp119 күн бұрын
Even back when we could directly access hardware from user level software, without an operating system abstraction our software had to know the hardware. CGA, EGA, VGA, or something else for video? What kind of sound hardware?
@amirmohammadazarmehr311920 күн бұрын
Hello. I am encountering strange errors in Windows. Please help me run the file.
@pikuma20 күн бұрын
@@amirmohammadazarmehr3119 Hi. Did you check the dos-like page on how to install the framework dependencies?
@AllanSavolainen21 күн бұрын
Also, I don't think we ever cared about the small overlap, z-buffer usually handled that
@AllanSavolainen21 күн бұрын
Hmm, what Hmm, what I did in the good old DOS days was to first split the triangle into two so that in the middle there would be one vertical edge. In case the top or bottom was vertical, this step could be ignored. Then I would calculate the slope per row for the left side, eg 0.3px/row. Then do the same for the right side, lets say 0.4px/row. Then would calculate delta length per row which was how much the each rasterized line would grow per row, and would be the sum of both slopes. Then I would just iterate from the top, fill the cur_row_length of pixels, move the start_x_pos by left_slope and inc/dec the cur_row_length by delta_length. And loop until I get to the middle vertical line, or the end vertex of the triangle. To get gouraud shading on this, I would calculate similar deltas and slopes for the color gradients and inc/dec those per pixel and row as needed. Simple rasterization on MCGA 320x200x256c DOS screen. Well, there was extra step to map the current RGB to palette/dithering color.
@pikuma21 күн бұрын
Yes, splitting the triangle in two and finding the slopes to raster each scanline is the approach we use in our course as well. I just thought it was important to also explain this approach since it can take better advantage of paralleliaation.
@graemereed195123 күн бұрын
Great video. Do you know how to implement a vector class in C++ like that used in Tradestation's EasyLanguage which can accommodate multiple data types within the same vector?
@alexandremsferreira199825 күн бұрын
Canal incrível amigo! Eu vim pela indicação do Fábio Akita. Para quem está iniciando na programação, qual dos cursos do seu site você indica? Tem algum vídeo que fala qual ordem dos cursos fazer? O valor do cursos é em Dolar ou Real?
@AnonymousAnonymous-l2i26 күн бұрын
I grew up in PS1 era and was inspired by playing the games back then. I feel that ideas brought from that era could give new soul for the modern development. Going back to this lost art ignites something in me - thanks for this man. Learning hardware reversing sega or ps1 architectures - less complex tech, more solid fundamentals.
@BitShifting-h3q29 күн бұрын
bit shifting is the foundation of all
@Mai_Tai_MeyersАй бұрын
I'm hoping to create a ray-casting algorithm (similar to the original Doom and Wolfenstein) and using this as a starting point. Wish me luck!
@jimmyporter8941Ай бұрын
Great videos. Just one thing though - "quad" is pronounced "quod", not "quahd".
@5up5upАй бұрын
this is awesome
@5up5upАй бұрын
Amazing! i'll create an anki card for that
@SatvikkGuptaaАй бұрын
Intresting as fuck
@vitoralmeidasilvaАй бұрын
Hey Gustavo, I am interested in both types of projects: the DOS port + performance optimization (which has plenty of real world applications depending on the context) and the implementation of other types of pseudo-3d algorithms (they are always so much fun to watch and learn!). Great great video, I finally managed to watch it till the end! You rock!
@dsblue1977Ай бұрын
You never said anything about the technical differences of the OSes.
@wofkwengelАй бұрын
I've always heard about Verlet integration and never fully understood it. This video made it not only understandable, but intuitive!
@vitorpmhАй бұрын
Parabéns pelo video, no inicio tinha certeza que tu era BR ai fui ver seu twitter e voila kkkkk melhor video sobre rasterização no youtube !!! Se quiser fazer um vídeo sobre gaussian splatting ou nerfs um dia pode me contactar.
@StellarHarborАй бұрын
I wish there was more C content, you finish C programming playlist by watching and writing useless stuff and don't know anything about development after that and if you're that unlucky one who wants to make games and not high speed quantum calculators or whatever, you literally have no content...
@jose_luis_vighАй бұрын
Hello Gustavo, are you planning to make some videos or courses explaining how to graph complex shapes such as spheres, toruos, and other surfaces of revolution in 3D, I was watching the one about triangles, and it is the best I have seen and in a way that is understandable. very good, and I would like to know how those figures are generated and how 3D software works. Thank you very much in advance. Greetings.
@vimy-hh8uzАй бұрын
Amazing video , very suitable for this minimalist programmer and developer 😊 are you also going to share some idea about building an emulator too?
@masterxeon1001Ай бұрын
thank you for this video.
@vimy-hh8uzАй бұрын
Wow❤
@loudthattrack8974Ай бұрын
thanks for the video, now i want to code games 💫💫💫