How to Make PS1 Graphics
1:07:00
5 ай бұрын
A Quick Introduction to C Pointers
18:01
Understanding Bit-Shifting Operators
1:02:46
Triangle Rasterization
2:17:06
Жыл бұрын
Verlet Integration
1:20:59
Жыл бұрын
Voxel Space (Comanche Terrain Rendering)
2:43:36
How Retro Video Game Graphics Work
53:32
Tools to make a Game Engine in C++
48:03
Why do we use SDL with C & C++?
16:26
C++ Objects: Stack vs. Heap
15:02
3 жыл бұрын
How to Install Lubuntu Linux?
10:34
5 жыл бұрын
What is Bash Scripting?
9:52
5 жыл бұрын
What is the Linux Operating System?
9:57
Пікірлер
@davestrides
@davestrides Күн бұрын
amazing explanation, thank you so much
@eric-rogergarcia1028
@eric-rogergarcia1028 3 күн бұрын
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!
@RasamRohit
@RasamRohit 4 күн бұрын
@21:43 are you using the Math3D library by Stephan Soller?
@pikuma
@pikuma 4 күн бұрын
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.
@pikuma
@pikuma 4 күн бұрын
I assume the code might look similar given that all matrix entries are similar anyway.
@JohnWasinger
@JohnWasinger 6 күн бұрын
Try using Lex and Yacc for this.
@pikuma
@pikuma 6 күн бұрын
@@JohnWasinger Sure. Can do. But then you'll be depriving yourself from the fun part. 🙂
@dotteda
@dotteda 7 күн бұрын
so good! please make 3d engine course!
@lacoursiereetienne
@lacoursiereetienne 9 күн бұрын
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
@WojciechDomalewski
@WojciechDomalewski 9 күн бұрын
In C, a return value of zero indicates that the program has completed successfully. Therefore, a value of 0 should be returned.
@pikuma
@pikuma 9 күн бұрын
@@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_dp
@duman_dp 9 күн бұрын
Hello Dr. Gustavo, do you have any plans to create a course in the field of AI in game development?
@pikuma
@pikuma 9 күн бұрын
Hi there. Not yet. There is another professor in London that has a course on traditional AI for games. Check out @AlanZucconi.
@fabianrr
@fabianrr 9 күн бұрын
Excellent Pikuma, also your website is down
@pikuma
@pikuma 9 күн бұрын
@@fabianrr Hmm, I juat looked at the logs and I had students logged in for the past 4 hours. What error are you getting?
@fabianrr
@fabianrr 9 күн бұрын
@@pikuma The connection has timed out
@pikuma
@pikuma 9 күн бұрын
Can you try using mobile data, maybe? I tried both using wifi and 5G and it works.
@pikuma
@pikuma 8 күн бұрын
Any luck?
@fabianrr
@fabianrr 3 күн бұрын
@@pikuma Hola Gustavo, solo puedo acceder a la página mediante VPN. Soy de Chile Saludos.
@user-xr8qs4xj8e
@user-xr8qs4xj8e 9 күн бұрын
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!
@pikuma
@pikuma 9 күн бұрын
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
@nahuakang
@nahuakang 9 күн бұрын
Looking forward to every Christmas/New Year for your videos. Always excited, never disappointed ❤🎉
@pikuma
@pikuma 9 күн бұрын
Happy holidays, Nahua! Thank you for the support as always.
@notdeus3834
@notdeus3834 10 күн бұрын
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?
@pikuma
@pikuma 9 күн бұрын
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. :)
@mjonathancg1794
@mjonathancg1794 10 күн бұрын
Any plans to make a course about raytracing or shading?
@pikuma
@pikuma 9 күн бұрын
Raytracing one day, maybe. But until then, I think you'll be ok with the new version of RayTracingInOneWeekend. :D
@lunarmodule6419
@lunarmodule6419 10 күн бұрын
Happy 2025 everyone! 🎉 😊
@tomkirbygreen
@tomkirbygreen 9 күн бұрын
Almost.
@theobserver7217
@theobserver7217 10 күн бұрын
any plans to make a course about algorithms and data structure?
@pikuma
@pikuma 10 күн бұрын
@@theobserver7217 I have not thought about that. I assumed there were already countless courses like that out there.
@GaryChike
@GaryChike 10 күн бұрын
@@pikuma - there are countless
@tomkirbygreen
@tomkirbygreen 9 күн бұрын
@@theobserver7217 if we’re casting around for course ideas I think shader writing could do with some love.
@Kknewkles
@Kknewkles 10 күн бұрын
Christmas present! 👀
@pikuma
@pikuma 10 күн бұрын
Happy holidays! 🙂
@victor_anik
@victor_anik 13 күн бұрын
Very good! Any thoughts, is semi-implicit Euler and Verlet the same thing?
@alokbhushan9026
@alokbhushan9026 13 күн бұрын
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?
@Sniffer194
@Sniffer194 13 күн бұрын
bro coding on GameBoy Color
@BlitzvogelMobius
@BlitzvogelMobius 14 күн бұрын
I'm having a very difficult time finding info on the GTE and GPU architectures. Any info on ALUs, and the execution units contained?
@wanderingnomad9272
@wanderingnomad9272 15 күн бұрын
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.
@Albertmars32
@Albertmars32 17 күн бұрын
Can u explain why you are returning 0 for failures and 1 for success? In c++ i was taught the opposite
@Albertmars32
@Albertmars32 17 күн бұрын
Nvm i see why, tho i think using bool would have been preferable
@pikuma
@pikuma 16 күн бұрын
@@Albertmars32 Definitely. I agree. 🥲
@lehisluguer9300
@lehisluguer9300 18 күн бұрын
excellent explanation..
@jamesmasonic
@jamesmasonic 19 күн бұрын
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?
@jamesmasonic
@jamesmasonic 19 күн бұрын
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.
@hanelyp1
@hanelyp1 19 күн бұрын
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?
@amirmohammadazarmehr3119
@amirmohammadazarmehr3119 20 күн бұрын
Hello. I am encountering strange errors in Windows. Please help me run the file.
@pikuma
@pikuma 20 күн бұрын
@@amirmohammadazarmehr3119 Hi. Did you check the dos-like page on how to install the framework dependencies?
@AllanSavolainen
@AllanSavolainen 21 күн бұрын
Also, I don't think we ever cared about the small overlap, z-buffer usually handled that
@AllanSavolainen
@AllanSavolainen 21 күн бұрын
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.
@pikuma
@pikuma 21 күн бұрын
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.
@graemereed1951
@graemereed1951 23 күн бұрын
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?
@alexandremsferreira1998
@alexandremsferreira1998 25 күн бұрын
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-l2i
@AnonymousAnonymous-l2i 26 күн бұрын
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-h3q
@BitShifting-h3q 29 күн бұрын
bit shifting is the foundation of all
@Mai_Tai_Meyers
@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
@jimmyporter8941 Ай бұрын
Great videos. Just one thing though - "quad" is pronounced "quod", not "quahd".
@5up5up
@5up5up Ай бұрын
this is awesome
@5up5up
@5up5up Ай бұрын
Amazing! i'll create an anki card for that
@SatvikkGuptaa
@SatvikkGuptaa Ай бұрын
Intresting as fuck
@vitoralmeidasilva
@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
@dsblue1977 Ай бұрын
You never said anything about the technical differences of the OSes.
@wofkwengel
@wofkwengel Ай бұрын
I've always heard about Verlet integration and never fully understood it. This video made it not only understandable, but intuitive!
@vitorpmh
@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
@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
@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
@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
@masterxeon1001 Ай бұрын
thank you for this video.
@vimy-hh8uz
@vimy-hh8uz Ай бұрын
Wow❤
@loudthattrack8974
@loudthattrack8974 Ай бұрын
thanks for the video, now i want to code games 💫💫💫