There is also Vulkan which is 1000 times more difficult to learn. However, it allows you to do things that are difficult to do using OpenGL and also provides more opportunities for optimization.
I'm also 14 and I also found OpenGL difficult as well. I then decided to learn how to make a 2D game first then eventually go to 3D games. I'm using SFML and quite straight forward.
dont worry its pretty simple when you look at it i am currently making a graphics engine in sdl2 and the most mathy thing i did included pretty simple functions like sine or sth like that
Making a circle aint easy but it should take "days" to setup SFML, if possible you should also stray away from SFML and learn how to do most of it yourself, its really not hard considering the biggest part of cross platform windowing and input is sorted for you using GLFW.
It took me about 6 failed engine projects during last 18 months to become a beginner with vulkan graphics programming, still getting stuck on things but it's much easier over time. I remember the day that the basics of matrix manipulations clicked with me and after that it was easy to recognize when i did something wrong, it kind of becomes natural.
emacs does have a cursor tho. actually, emacs' default user interface is very user friendly, it's just that most people (myself included) remove these components from the interface. vim is the hard one
I absolutely love computer graphics, I got a bit burnt out though. I think partially because I tried to learn everything way too fast (3D in Vulkan from almost no rendering knowledge fast). I got to a point of rendering about 10,000 basic cubes with textures before getting burnt out. I kept some of that knowledge, but I didn't retain as much of that knowledge as I would have liked. After I'm finished with collage applications, I will probably take the time to more thoroughly learn computer graphics and the math behind it. Definitely don't rush through learning, especially with computer science, you may not learn as much as you think you are XD
I was very lucky that my university offered a wide range of both 2D and 3D computer graphics programming courses, along with relevant math courses. I did a master in visualization, where basically every course was graphics related. When I got my PhD position in a new university, looking at their course list, there was not a single graphics related course to choose! Computer graphics are incredibly important, but to offer a full range of courses on the topic, there is a need for a visualization group that can teach the subject in an academically relevant manner. Most universities do not have such a group, but some do. If you want to study computer graphics, find a university that has a visualization group.
great video. curious on the graphics book your pops gave you. in general, I would like resources that teach you how to render shapes without just being given libraries that do that for you.
yeah that book doesn't have any of that information 😂 I think it is older than opengl itself. TH-cam is your best option and I also have some cool resources on my discord server in the resources section
@@lowlevelgamedev9330 fair enough. I would like to know the book anyways if you still have the title. I am pretty familiar with the basics of graphics rendering, I just would like to actually set up a dev environment in DOS, and was hoping that the book you read would be good supplementary material on accomplishing said end.
Hearing Vlad say "I think I managed to get some really good graphics out of it" while the shadows are glitching in the video is peak. Reminds me of that clip of the Dead by Daylight main developer saying "I think we did a pretty good job so far" while the game was barely playable 💀
those aren't shadows tho, (the sun direction is perpendicular to that wall) it is minecrsft style light that just has a value from 0 to 15 and it decreases by one with the time of day. Tho shadows are glichy rn but I didn't show that in the video 😂
Yep as a CS student in my final year..... i have spent months just learning math, and now finishing up calc1 but even to do extreamly advanced stuff in graphics. I still would need to learn cacl2 and 3.... ontop of other stuff. In short if you really want to go for it be prepared to learn to like math.
@ I’m more referring to like physics simulations for instance if you wanted to do custom water simulations ray marching for like clouds etc. realtime rendering techniques or for instance implementing something like nanotechnology like unreal engine does etc. just overall various things. Stuff I haven’t personally dove into but just have researched. And a lot of the higher stuff just gets more into multi variable calc stuff
yeah i'd recommend a straight-up masters in computer graphics if you can, it takes about as long and you get a deeper understanding & networking opportunities.
Why always opengl? I have been studying vulkan for the past 6 years now. It's amazing. I got my job as game programmer in a AAA gaming company now. Everywhere I go I see opengl tutorials. But the truth is vulkan is being used extensively everywhere.
Because OpenGL is super easy to setup and get running, Vulkan takes a whole day just to get a triangle on screen. Vulkan is the succesor to OpenGL though and is pretty damn neat!
I teach this subject at CSUMB in Monterey CA and go very deep into the math with 3 weeks alone dedicated to it. We also write a raytracer from scratch and write hardware accelerated lit and shadowed scenes with the rasterization pipeline.
yo I think that book is only available in Romania, so idk what is the title in english, but I haven't really found books a place to learn coding, especially beginner topics, just use tutorials and do things youself. Also that book is very very old
I struggled with the 3blue1brown linear algebra. my maths ability I feel is good, but about 5 videos in it just went crazy and I felt information was missing. do you have any other sources. I think it wasn't the level just something I missed
Ironic timing on this video. I realized that SDL2's built-in renderer wouldn't be enough for the project I'm working on so I've been struggling with learning OpenGL for a few weeks. It stinks because I just wanted 2D rendering and I've had the background in linear algebra needed for this stuff. Haha
the linear algebra and trigonometry kills me, i am learning c to make a software rasterizer, my computer does not support godot engine 3, only directx9 stuff.
How important is understanding linear algebra for game dev? I'm currently taking it, even though i don't know how good and relevant is the course in romanian cs
if you are making a game using low level stuff then its very important, but if you are using a game engine like unity and others then you can get away without learning linear algebra
You can snake your way around without it but please study it thoroughly, you will find it helpful. I don't know specifically about Romania but it's a remarkably standard course across the rest of Europe so it should be fine i guess. Also numerics tends to be one of the toughest most impenetrable courses but pay attention too, one day it will save your job.
depends how low level you go, simple algebra concepts should help you when working with references along an axis of a player to get every object in a certain distance for example. if you wanna re-invent the wheel then it's primordial because you will be working the pipelines. Think of a matrix as an awesome way to arrange numbers to make many operations. Helpfull for tons of calculation and parameters, which is exactly what you have.
There are various uses cases for it that I've come across as a dev, there's probably more * Complex Damage formulas * Positioning UI elements in regard to an object's world location (like off screen indicators) * Predicting projectile locations, for a turret for example * Checking if you're looking at a specific direction, for example making one directional collider (dot product) Do you NEED to know linear algebra? If you already have a game engine, no, you don't strictly need it as long as you can find the right tutorials for what you want. But if you do know you can easily make changes to suit your needs, you'll probably not even need tutorials at this point The best way to learn linear algebra is by creating game features that uses linear algebra and you intuitively learn by practice
you need to learn some things, unfortunatelly they don't teach you how things work in school so you will need to learn them in your own on youtube like using the videos from 3 blue one brown on youtube on linear algebra. The basci things that you need are not hard
I don't think its hard I think you just need to break stuff down at an ultra level to understand it better, which I admit does take a level of effort which could be considered hard.
discrete maths, linear algebra, calculus. yeah, basically. you can take it by yourself by reading a couple of books and complete the excercises in them, many universities just throw you a bunch of books and ocassionally explain something to you really, so you can start learning it today and alone, as long as you have DISCIPLINE!, else get into an university and pressured by your teacher to actually learn, might wanna go through that last path if you lack concentration when studying by yourself.
not really, it's not opengl shader's fault, they arr not even complicated lol. UI is hard to do in general, like have you ever tried css 💀. Opengl is just not built for ui and you need to write your own thing for that and that is just hard. Like imagine implementing your own css
@@lowlevelgamedev9330 I really mean the general opengl API is very confusing. and opencl shader programs are very much easier. no graphics api mess to be dealt with. opengl API = opengl UI. ie OpenGL programmer user interface.
@@lowlevelgamedev9330 in other words, opengl programming api is not programmer user interface friendly. just like linux management is not user friendly. only expert friendly.
@@lowlevelgamedev9330 Css is not at all hard, if you find css hard I can see why it took a day to setup SFML. You also dont need to know the first fucken thing about any major mathematics to write OpenGL apps, we are lucky in that other very kind people have taken time to write libs like GLM, if you want to write your own math lib then sure but 99.9% of the time it is far to time consuming to do so.
Bruh I am 14 year old I was trying to learn opengl but then left due to its math now i am simulating physics in pygame
There is also Vulkan which is 1000 times more difficult to learn. However, it allows you to do things that are difficult to do using OpenGL and also provides more opportunities for optimization.
I'm also 14 and I also found OpenGL difficult as well. I then decided to learn how to make a 2D game first then eventually go to 3D games. I'm using SFML and quite straight forward.
dont worry its pretty simple when you look at it i am currently making a graphics engine in sdl2 and the most mathy thing i did included pretty simple functions like sine or sth like that
Pygame for the win 🏆
I am currently doing a game engine using pygame
@@knitnatsnokprogramminga game engine using pygame sound slow tbh 😭😭
When he said it took him days to setup SFML and get that green circle code to work.... I cried . Sooo relatable
www.youtube.com/@adamrushford
Making a circle aint easy but it should take "days" to setup SFML, if possible you should also stray away from SFML and learn how to do most of it yourself, its really not hard considering the biggest part of cross platform windowing and input is sorted for you using GLFW.
It took me about 6 failed engine projects during last 18 months to become a beginner with vulkan graphics programming, still getting stuck on things but it's much easier over time. I remember the day that the basics of matrix manipulations clicked with me and after that it was easy to recognize when i did something wrong, it kind of becomes natural.
it doesn't even have a cursor!
vim and emacs users:
emacs does have a cursor tho. actually, emacs' default user interface is very user friendly, it's just that most people (myself included) remove these components from the interface. vim is the hard one
@@HatsuSixtyvim is simple too only complicated thing is macros/ leaving the program
💀
me after accidentally forgetting the closing “ after a git commit -m
I absolutely love computer graphics, I got a bit burnt out though. I think partially because I tried to learn everything way too fast (3D in Vulkan from almost no rendering knowledge fast). I got to a point of rendering about 10,000 basic cubes with textures before getting burnt out. I kept some of that knowledge, but I didn't retain as much of that knowledge as I would have liked. After I'm finished with collage applications, I will probably take the time to more thoroughly learn computer graphics and the math behind it. Definitely don't rush through learning, especially with computer science, you may not learn as much as you think you are XD
I was very lucky that my university offered a wide range of both 2D and 3D computer graphics programming courses, along with relevant math courses. I did a master in visualization, where basically every course was graphics related. When I got my PhD position in a new university, looking at their course list, there was not a single graphics related course to choose!
Computer graphics are incredibly important, but to offer a full range of courses on the topic, there is a need for a visualization group that can teach the subject in an academically relevant manner. Most universities do not have such a group, but some do. If you want to study computer graphics, find a university that has a visualization group.
great video. curious on the graphics book your pops gave you. in general, I would like resources that teach you how to render shapes without just being given libraries that do that for you.
yeah that book doesn't have any of that information 😂 I think it is older than opengl itself. TH-cam is your best option and I also have some cool resources on my discord server in the resources section
@@lowlevelgamedev9330 fair enough. I would like to know the book anyways if you still have the title. I am pretty familiar with the basics of graphics rendering, I just would like to actually set up a dev environment in DOS, and was hoping that the book you read would be good supplementary material on accomplishing said end.
Hearing Vlad say "I think I managed to get some really good graphics out of it" while the shadows are glitching in the video is peak. Reminds me of that clip of the Dead by Daylight main developer saying "I think we did a pretty good job so far" while the game was barely playable 💀
(5:38, the shadow on the cliff)
those aren't shadows tho, (the sun direction is perpendicular to that wall) it is minecrsft style light that just has a value from 0 to 15 and it decreases by one with the time of day. Tho shadows are glichy rn but I didn't show that in the video 😂
The only thing I still struggle with is networking. Even with easier programming languages like Python or Lua. I just cant wrap my head around it!
Networking = you define a format for your packets, and then parse them on each side accordingly.
To avoid parsing errors, you could send JSON objects.
I made a video on this, I think it can help you a little
networking is not just sending packets, that's like the easyest topic from it, it's like only 1% of it
Yep as a CS student in my final year..... i have spent months just learning math, and now finishing up calc1 but even to do extreamly advanced stuff in graphics. I still would need to learn cacl2 and 3.... ontop of other stuff. In short if you really want to go for it be prepared to learn to like math.
"to do extreamly advanced stuff in graphics" like what ?
@ I’m more referring to like physics simulations for instance if you wanted to do custom water simulations ray marching for like clouds etc. realtime rendering techniques or for instance implementing something like nanotechnology like unreal engine does etc. just overall various things. Stuff I haven’t personally dove into but just have researched. And a lot of the higher stuff just gets more into multi variable calc stuff
yeah i'd recommend a straight-up masters in computer graphics if you can, it takes about as long and you get a deeper understanding & networking opportunities.
Thank you for the motivation
Why always opengl? I have been studying vulkan for the past 6 years now. It's amazing. I got my job as game programmer in a AAA gaming company now. Everywhere I go I see opengl tutorials. But the truth is vulkan is being used extensively everywhere.
Opengl is simpler and has faster results so people recommend you to play with it first before going to vulkan or even direct x
Because OpenGL is super easy to setup and get running, Vulkan takes a whole day just to get a triangle on screen. Vulkan is the succesor to OpenGL though and is pretty damn neat!
Curious what that book your father gave thought. Care to share the name?
Really great content btw, very helpful and inspiring.
I teach this subject at CSUMB in Monterey CA and go very deep into the math with 3 weeks alone dedicated to it. We also write a raytracer from scratch and write hardware accelerated lit and shadowed scenes with the rasterization pipeline.
Kindly mention the name of the books shown in the video.
yo I think that book is only available in Romania, so idk what is the title in english, but I haven't really found books a place to learn coding, especially beginner topics, just use tutorials and do things youself. Also that book is very very old
Thank you for making this video. I am also trying to learn graphics programming and it seems impossible. I want to make a cad modeler.
that is a cool project idea 💪 good luck bro
I struggled with the 3blue1brown linear algebra. my maths ability I feel is good, but about 5 videos in it just went crazy and I felt information was missing. do you have any other sources. I think it wasn't the level just something I missed
@@AlbertRyanstein try jamy kings opengl tutorial and also skme other linrar algebra course online
@lowlevelgamedev9330 I'm fine with coding it since glm does it all. I just got lost when trying to do the 3b1
I have a cpp book about graphics that was made for windows 3.1 =/
What's the book? I want to look at it
@@Trixter-r1p sadly is not in english =//
Ironic timing on this video. I realized that SDL2's built-in renderer wouldn't be enough for the project I'm working on so I've been struggling with learning OpenGL for a few weeks. It stinks because I just wanted 2D rendering and I've had the background in linear algebra needed for this stuff. Haha
im making a graphics engine (idk if i can call it that but it can render meshes) and i didnt hear that until now
the linear algebra and trigonometry kills me, i am learning c to make a software rasterizer, my computer does not support godot engine 3, only directx9 stuff.
How important is understanding linear algebra for game dev? I'm currently taking it, even though i don't know how good and relevant is the course in romanian cs
if you are making a game using low level stuff then its very important, but if you are using a game engine like unity and others then you can get away without learning linear algebra
You can snake your way around without it but please study it thoroughly, you will find it helpful. I don't know specifically about Romania but it's a remarkably standard course across the rest of Europe so it should be fine i guess.
Also numerics tends to be one of the toughest most impenetrable courses but pay attention too, one day it will save your job.
depends how low level you go, simple algebra concepts should help you when working with references along an axis of a player to get every object in a certain distance for example.
if you wanna re-invent the wheel then it's primordial because you will be working the pipelines. Think of a matrix as an awesome way to arrange numbers to make many operations. Helpfull for tons of calculation and parameters, which is exactly what you have.
There are various uses cases for it that I've come across as a dev, there's probably more
* Complex Damage formulas
* Positioning UI elements in regard to an object's world location (like off screen indicators)
* Predicting projectile locations, for a turret for example
* Checking if you're looking at a specific direction, for example making one directional collider (dot product)
Do you NEED to know linear algebra? If you already have a game engine, no, you don't strictly need it as long as you can find the right tutorials for what you want. But if you do know you can easily make changes to suit your needs, you'll probably not even need tutorials at this point
The best way to learn linear algebra is by creating game features that uses linear algebra and you intuitively learn by practice
you need to learn some things, unfortunatelly they don't teach you how things work in school so you will need to learn them in your own on youtube like using the videos from 3 blue one brown on youtube on linear algebra. The basci things that you need are not hard
Doesn't Raylib also use opengl ?
Yes it does.
I don't think its hard I think you just need to break stuff down at an ultra level to understand it better, which I admit does take a level of effort which could be considered hard.
ooh my goodness! can you not so obviously read your text and especially when you zoom face it's really strange)))
skill issue
You are lame
Hiii
yoo new member 💪
666 views what the hell...
Real (my software renderer runs at 10 fps 🥲)
So you need to know math for game development?
high school math helps a ton for 2D games, uni math for 3D games :)
discrete maths, linear algebra, calculus. yeah, basically.
you can take it by yourself by reading a couple of books and complete the excercises in them, many universities just throw you a bunch of books and ocassionally explain something to you really, so you can start learning it today and alone, as long as you have DISCIPLINE!, else get into an university and pressured by your teacher to actually learn, might wanna go through that last path if you lack concentration when studying by yourself.
Hahaha. ☝
I really can't understand this guy even if I really want to
because opengl shuggers, too complicated by design, its bad ui when you are supposed to do ui with it. keep it simple.
not really, it's not opengl shader's fault, they arr not even complicated lol. UI is hard to do in general, like have you ever tried css 💀. Opengl is just not built for ui and you need to write your own thing for that and that is just hard. Like imagine implementing your own css
@@lowlevelgamedev9330 I really mean the general opengl API is very confusing. and opencl shader programs are very much easier. no graphics api mess to be dealt with. opengl API = opengl UI. ie OpenGL programmer user interface.
@@lowlevelgamedev9330 you really did not get what my point was. opengl api shuggers. thanks.
@@lowlevelgamedev9330 in other words, opengl programming api is not programmer user interface friendly. just like linux management is not user friendly. only expert friendly.
@@lowlevelgamedev9330 Css is not at all hard, if you find css hard I can see why it took a day to setup SFML. You also dont need to know the first fucken thing about any major mathematics to write OpenGL apps, we are lucky in that other very kind people have taken time to write libs like GLM, if you want to write your own math lib then sure but 99.9% of the time it is far to time consuming to do so.
Anoying music
Skill issue