Why is graphics programming SO HARD to learn? My story

Поділитися
Вставка
  • Опубліковано 23 лис 2024

КОМЕНТАРІ • 123

  • @y0_0go
    @y0_0go 24 дні тому +35

    When he said it took him days to setup SFML and get that green circle code to work.... I cried . Sooo relatable

    • @adamrushford
      @adamrushford 24 дні тому

      www.youtube.com/@adamrushford

    • @JtagSheep
      @JtagSheep 23 дні тому

      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.

    • @savagesarethebest7251
      @savagesarethebest7251 22 дні тому

      Well, I learned that you 'mov ax, 0x8000+y*resolution+x' to put a pixel on the screen. Then you have to code your own line drawing algorithms, circle drawing, and bezieer splines. I coded assembler when i was 11 years old, self learned. I had no one around me that knew this stuff, I had to find it myself on the internet in 2001 at the same time I learned myself English.

    • @JtagSheep
      @JtagSheep 21 день тому

      @@savagesarethebest7251 Very nice I too am self taught! OS Dev was one of my fave things to learn.

  • @sussmusk
    @sussmusk 24 дні тому +66

    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

    • @Trixter-r1p
      @Trixter-r1p 24 дні тому +2

      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.

    • @MrLegitimate
      @MrLegitimate 24 дні тому +5

      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.

    • @Cinarbayramic
      @Cinarbayramic 24 дні тому +2

      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

    • @knitnatsnokprogramming
      @knitnatsnokprogramming 24 дні тому +1

      Pygame for the win 🏆
      I am currently doing a game engine using pygame

    • @gerardonavarro3400
      @gerardonavarro3400 24 дні тому +10

      ​@@knitnatsnokprogramminga game engine using pygame sound slow tbh 😭😭

  • @EStartive
    @EStartive 24 дні тому +34

    it doesn't even have a cursor!
    vim and emacs users:

    • @HatsuSixty
      @HatsuSixty 24 дні тому

      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

    • @Cinarbayramic
      @Cinarbayramic 24 дні тому

      ​@@HatsuSixtyvim is simple too only complicated thing is macros/ leaving the program

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому

      💀

    • @Nystoke
      @Nystoke 23 дні тому +1

      me after accidentally forgetting the closing “ after a git commit -m

    • @blackbeard3449
      @blackbeard3449 21 день тому

      Both of them have cursors, multiple even.

  • @MrValsung
    @MrValsung 24 дні тому +5

    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.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому

      yeah that book doesn't have any of that information 😂 I think it is older than opengl itself. UA-cam is your best option and I also have some cool resources on my discord server in the resources section

    • @MrValsung
      @MrValsung 24 дні тому

      @@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.

  • @AlbertRyanstein
    @AlbertRyanstein 23 дні тому +2

    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

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  23 дні тому +1

      @@AlbertRyanstein try jamy kings opengl tutorial and also skme other linrar algebra course online

    • @AlbertRyanstein
      @AlbertRyanstein 23 дні тому

      @lowlevelgamedev9330 I'm fine with coding it since glm does it all. I just got lost when trying to do the 3b1

  • @AKG58Z
    @AKG58Z 21 день тому

    Its the same situation with me im stuck at c++ going nowhere , whats the book called?

  • @iamaprogrammer988
    @iamaprogrammer988 24 дні тому

    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

  • @hrvatskistakor23
    @hrvatskistakor23 23 дні тому

    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.

  • @jakobmusic9187
    @jakobmusic9187 23 дні тому

    I still remember the cg courses in my bachelor computer science bachelor degree. they were one of the hardest modules.

  • @pankaj2058
    @pankaj2058 6 днів тому

    Are there any youtube or other tutorials which explain how to create a game from scratch using C++ and OpenGL ?

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  4 дні тому

      hm actually I don't know of many, javidx9 has some good game tutorials bit basically all you need to do is be able to draw sprites with opengl and than you are good to go

  • @constantitus
    @constantitus 24 дні тому +4

    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 💀

    • @constantitus
      @constantitus 24 дні тому +2

      (5:38, the shadow on the cliff)

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому +2

      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 😂

    • @blufudgecrispyrice8528
      @blufudgecrispyrice8528 22 дні тому

      @@lowlevelgamedev9330 i was impressed tho lol

  • @mirm0n
    @mirm0n 18 днів тому

    I have no interest in learning graphics programming but I was intrigued by the title of this video!

  • @mariusirgens5555
    @mariusirgens5555 24 дні тому

    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.

  • @Meteotrix
    @Meteotrix 24 дні тому +1

    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.

  • @pankaj2058
    @pankaj2058 24 дні тому +3

    Kindly mention the name of the books shown in the video.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому +1

      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

  • @Bhanukamax
    @Bhanukamax 24 дні тому +1

    Curious what that book your father gave thought. Care to share the name?
    Really great content btw, very helpful and inspiring.

  • @PySnek
    @PySnek 24 дні тому +5

    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!

    • @AntonioNoack
      @AntonioNoack 24 дні тому +1

      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.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому

      I made a video on this, I think it can help you a little

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому +4

      networking is not just sending packets, that's like the easyest topic from it, it's like only 1% of it

  • @Cactusman-e1d
    @Cactusman-e1d 24 дні тому

    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.

    • @JtagSheep
      @JtagSheep 23 дні тому

      "to do extreamly advanced stuff in graphics" like what ?

    • @Cactusman-e1d
      @Cactusman-e1d 23 дні тому

      @ 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

  • @nangld
    @nangld 22 дні тому

    When is your first Gaussian Splatting based rendering engine?

  • @tomquareme3787
    @tomquareme3787 22 дні тому

    I always found software rendering to be easier than rendering with OpenGL. It's harder to do simpler things, but easier when things get more complex.

  • @carlriemann925
    @carlriemann925 24 дні тому +3

    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.

    • @Yan23459
      @Yan23459 24 дні тому +4

      Opengl is simpler and has faster results so people recommend you to play with it first before going to vulkan or even direct x

    • @JtagSheep
      @JtagSheep 23 дні тому +2

      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!

    • @tiaanbasson9092
      @tiaanbasson9092 13 днів тому

      Compatibility reasons for older devices which does not have Vulkan. I recall a time when hardware acceleration wasn't common so school taught graphics on DOS based software rendering API's so students in poorer parts of the world can learn the fundamentals. Some schools where I live only has Intel graphics from 2010.

  • @Cinarbayramic
    @Cinarbayramic 24 дні тому +1

    im making a graphics engine (idk if i can call it that but it can render meshes) and i didnt hear that until now

  • @pwyounggamedev
    @pwyounggamedev 24 дні тому

    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

  • @VFusioN69
    @VFusioN69 22 дні тому

    i am on mac fook i have to use Metal FX whoose syntax looks good on swift but no documentation to follow !

  • @ziphy_6471
    @ziphy_6471 22 дні тому +1

    I first tried SFML, I failed at it, then moved to OpenGL, I am now suffering

    • @spyrex3988
      @spyrex3988 21 день тому

      why woulld u go to the lower layer abstraction when u are struggling with current layer?

    • @ziphy_6471
      @ziphy_6471 21 день тому

      @@spyrex3988 I yearn for the mines and math then meth

  • @jorgevalles6835
    @jorgevalles6835 22 дні тому

    Man. Do you really think that it still time to get into openGL? I really like OpenGL but I feel bad when I see a lot of stuff about people saying it is obsolete, deprecated, etc..

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  22 дні тому +1

      yess, opengl is still how you do 3D on android for example and web, also things die very hard, idk if windows will ever stop support for opengl, also it just recently got the mesh shaders new feature so it is still being updated so it isn't really deprecated yet, also it is easier to start with than vulkan,

  • @terr7892
    @terr7892 24 дні тому

    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

    • @abhishekKUMAR-ij7nw
      @abhishekKUMAR-ij7nw 24 дні тому +3

      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

    • @SianaGearz
      @SianaGearz 24 дні тому +1

      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.

    • @HaTTaRequiem
      @HaTTaRequiem 24 дні тому

      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.

    • @finesseandstyle
      @finesseandstyle 24 дні тому

      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

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому

      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

  • @Divyam1001
    @Divyam1001 24 дні тому

    Thank you for the motivation

  • @d4r1u5-pk7zr
    @d4r1u5-pk7zr 24 дні тому +3

    I have a cpp book about graphics that was made for windows 3.1 =/

    • @Trixter-r1p
      @Trixter-r1p 24 дні тому +1

      What's the book? I want to look at it

    • @d4r1u5-pk7zr
      @d4r1u5-pk7zr 24 дні тому

      @@Trixter-r1p sadly is not in english =//

  • @Manu-c5q
    @Manu-c5q 24 дні тому

    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.

  • @jeezusjr
    @jeezusjr 24 дні тому

    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.

  • @leonsofefa40
    @leonsofefa40 8 днів тому

    What was the advice he gave you? 3:23 I couldn’t quite get that

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  8 днів тому +1

      it isn't like one thing, it was more likewhat resources to look into, like handmade hero, but if you want the best advice I can give you is to make big and more difficult projects 💪💪

    • @leonsofefa40
      @leonsofefa40 8 днів тому

      @ thank you!

  • @aeliusdawn
    @aeliusdawn 17 днів тому

    Everyone know that the best way to learn c++ and graphics programming is to go straight into Vulkan on day 1

  • @mgoonga
    @mgoonga 19 днів тому

    Like for Jamie King! :)

  • @marwan7614
    @marwan7614 24 дні тому

    Doesn't Raylib also use opengl ?

  • @xanderlinhares
    @xanderlinhares 24 дні тому +1

    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.

  • @jamiecropley
    @jamiecropley 24 дні тому

    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.

  • @muchas_gracias
    @muchas_gracias 24 дні тому +1

    ooh my goodness! can you not so obviously read your text and especially when you zoom face it's really strange)))

  • @havx6
    @havx6 26 днів тому +2

    Hiii

  • @nylvon
    @nylvon 24 дні тому +4

    skill issue

  • @TeofilBejan-lg2rt
    @TeofilBejan-lg2rt 24 дні тому

    So you need to know math for game development?

    • @Meteotrix
      @Meteotrix 24 дні тому +1

      high school math helps a ton for 2D games, uni math for 3D games :)

    • @HaTTaRequiem
      @HaTTaRequiem 24 дні тому +1

      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.

    • @hodayfa000h
      @hodayfa000h 23 дні тому

      Yes, or you can just blindly apply the math

  • @whiteingale
    @whiteingale 24 дні тому

    666 views what the hell...

  • @AntoineVanGeyseghem
    @AntoineVanGeyseghem 24 дні тому

    Hahaha. ☝

  • @gsestream
    @gsestream 24 дні тому

    because opengl shuggers, too complicated by design, its bad ui when you are supposed to do ui with it. keep it simple.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  24 дні тому

      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

    • @gsestream
      @gsestream 24 дні тому

      @@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.

    • @gsestream
      @gsestream 24 дні тому

      @@lowlevelgamedev9330 you really did not get what my point was. opengl api shuggers. thanks.

    • @gsestream
      @gsestream 24 дні тому

      @@lowlevelgamedev9330 in other words, opengl programming api is not programmer user interface friendly. just like linux management is not user friendly. only expert friendly.

    • @JtagSheep
      @JtagSheep 23 дні тому

      @@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.

  • @painkiller7769
    @painkiller7769 24 дні тому +3

    I really can't understand this guy even if I really want to

  • @marccalis9444
    @marccalis9444 23 дні тому

    Anoying music

  • @aerocu482
    @aerocu482 24 дні тому

    Skill issue

  • @alihene2225
    @alihene2225 24 дні тому

    Real (my software renderer runs at 10 fps 🥲)

  • @CrazyGamerStudios
    @CrazyGamerStudios 16 днів тому

    Italiano Macarone ];-D too many compicated for me.