Video není dostupné.
Omlouváme se.

Why do we use SDL with C & C++?

Sdílet
Vložit
  • čas přidán 17. 08. 2024
  • In this video you will learn why we choose to include and use the SDL library in our C & C++ projects.
    Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by games, video playback software, emulators, and many other applications including several AAA titles.
    SDL officially supports Windows, Mac OS X, Linux, iOS, and Android (other supported platforms may be found in the source code).
    SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python. It is the most popular platform for multi-plarform game development.
    One of the great aspects of using SDL in gamedev projects is that SDL 2.0 is distributed under the zlib license, which allows you to use SDL freely in any software.
    We will learn why we need to use SDL to guarantee that our projects are portable and run smoothly regardless of the operating system or machine that the students are running.
    For comprehensive courses on computer science, programming, and mathematics, visit:
    www.Pikuma.com.
    Don't forget to subscribe to receive updates and news about new courses and tutorials:
    / @pikuma
    Enjoy!

Komentáře • 73

  • @chastitywhiterose
    @chastitywhiterose Před 2 lety +84

    I have used Raylib, SDL, Allegro, and SFML in the past. They are all good. However one of the benefits of SDL seems to be the incredible speed at which it compiles and runs. It’s a smaller library and because it contains less, it can be easier to learn and debug. I like SDL for the same reason I like C. The simplicity.

    • @CykPykMyk
      @CykPykMyk Před 2 lety +8

      You saw Raylib and SDL won? What? How? Raylib is the simpliest thing out there, plus it offers the most effortlesly.

    • @chastitywhiterose
      @chastitywhiterose Před 2 lety +1

      @@CykPykMyk I like the minimalism of SDL but I wrote my game in Raylib because it was a lot easier.

    • @xr.spedtech
      @xr.spedtech Před rokem

      Well said ...

    • @nickgennady
      @nickgennady Před rokem +8

      @@CykPykMyk I chose SDL2 over Raylib. Main reason is that its “industry” standard for game dev. Unreal uses it as a base and even game maker. Other engines have also used it as a base. It has more platform support than Raylib such as Nintendo switch. All you need is a Nintendo dev account and you will get access to SDL2 version of Nintendo switch.

    • @w花b
      @w花b Před rokem +1

      @@nickgennady that's pretty cool

  • @PebblesChan
    @PebblesChan Před 3 lety +90

    In a nutshell, SDL is essentially a GUI version of stdio.

    • @pikuma
      @pikuma  Před 3 lety +54

      Well, there you go! That saves16 minutes of everyone's lives. 😅

    • @user-wv5nl1wh6l
      @user-wv5nl1wh6l Před 2 lety +2

      so maybe when we are making bigger projects we may need more powerful library/SDK like wxWidget, Qt, etc
      but we always learn stdio before iostream for better understanding of code.

    • @chastitywhiterose
      @chastitywhiterose Před rokem +3

      Yeah basically. It used to be that the only form of output I could rely on was printf statements to see if my code was working. Now I have thousands of pixels in a window to tell me!

  • @GaryChike
    @GaryChike Před 2 lety +18

    I've subscribed to almost all your courses Gustavo. You're an excellent instructor! Keep up the good work! :)

  • @syntaxed2
    @syntaxed2 Před rokem +13

    In short: SDL allows communication with OS through a unified interface that works across platforms - No need to write your app 3 times for windows, linux and mac.

    • @astrah982
      @astrah982 Před rokem

      Well you could use WINE or even if it's a game Proton for Linux and Mac.

  • @uanbu6539
    @uanbu6539 Před rokem +5

    This is an excellent video and an abundance of information from my perspective as a beginner C++ programmer. Thank you Gustavo!

  • @saibalaji4713
    @saibalaji4713 Před 3 lety +12

    SDL helped me to make homebrew games for Orginal Xbox and Nintendo switch 😄

    • @pikuma
      @pikuma  Před 3 lety +4

      There you go!!! ❤

    • @jarreed0
      @jarreed0 Před 2 lety +1

      Hey! Any way you could point me in the right direction to learn to do so myself. Thanks!

  • @astrah982
    @astrah982 Před rokem +7

    SDL2, what is it good for?
    True Answer: Everything.

  • @Goldy131992
    @Goldy131992 Před rokem +1

    pikuma, thank you so much for this explanation! Much appreciated!

  • @Plrang
    @Plrang Před 3 lety +7

    I love to have the access to a hardware, that's the most fun for me. I started when that was the only option. Nowadays I have fun with some emulators or retro computers. Although prototyping in JS or C

  • @llamasarus1
    @llamasarus1 Před 3 lety +10

    I've only been marginally productive in C# and the MonoGame framework. And considering how I dont know C++, I dont know why I'm tempted to use SDL. I guess I have no game design ideas, I just want to learn game programming!

  • @lucabrito6155
    @lucabrito6155 Před 2 lety +4

    Esse sotaque eu reconheço de longe. Salve, Gustavo!

    • @pikuma
      @pikuma  Před 2 lety

      Tamo junto! 🇧🇷

  • @noros-troll9607
    @noros-troll9607 Před 2 lety +4

    Thank you! This is something that’s been confusing to me. I’m more interested in audio than making games, and I was puzzled about why I had to use a graphics/game programming library to code audio. Maybe it will be easier now. Have a good day!

    • @astrah982
      @astrah982 Před rokem +2

      NAudio is a really good library for audio as well.

    • @noros-troll9607
      @noros-troll9607 Před rokem

      @@astrah982 Cool! Definitely looks interesting.

  • @GoFuncYourself
    @GoFuncYourself Před 3 lety

    Nice clean simple explanation, thanks for that

  • @samuelazeredoo
    @samuelazeredoo Před rokem +4

    Que maravilha achar esse canal! Sou estudante de Ciência da Computação e quero trabalhar como programador para jogos um dia! Great video!

  • @mp-kq3vc
    @mp-kq3vc Před rokem +2

    Do you have a course that would apply to my desire to create (in C and SDL) a wireframe dungeon crawler similar to Akalabeth? I've never understood to do such a thing when everyone has different screen resolutions. In other attempts, I've done it by line drawing to fixed positions (like on an Apple II). Thanks for reading. Cheers!

  • @user-ql7pw7ld1n
    @user-ql7pw7ld1n Před 7 měsíci +1

    I subscribed and liked..realy thank you so much.. for clearing m concept

  • @nenelokao
    @nenelokao Před 2 lety +7

    You have a Brazilian accent... vc é br ? Sdl ainda vale a pena?

    • @pikuma
      @pikuma  Před 2 lety +4

      Opa! Com certeza, BR com orgulho. Sim sim, a maioria dos apps compilados nativos modernos (games também) usam SDL pra comunicação com hardware.
      Quer cross-plataforma com rapidez, SDL é a melhor escolha na minha opimião. 😉

    • @nenelokao
      @nenelokao Před 2 lety +1

      @@pikuma obrigado amigo...

  • @1968konrad
    @1968konrad Před 3 měsíci

    btw, in the 80ies or 90ies pixels or lines were drawn with commands in basic or pascal and not by poking.

    • @pikuma
      @pikuma  Před 3 měsíci

      These were simply high-level functions that were often implemented in direct assembly. The assembly still has to go and access the display XY values somehow.

  • @NonTwinBrothers
    @NonTwinBrothers Před 3 lety +3

    Nice channel

  • @Lohkat
    @Lohkat Před 2 lety +6

    Cool, mas como eu sei que vc é br? 😁

  • @martinfinch5011
    @martinfinch5011 Před 11 měsíci +1

    What's the difference between sdl and libraries like opengl? Is it that opengl only handles graphics and sdl can handle sound graphics input etc?

    • @pikuma
      @pikuma  Před 11 měsíci +2

      OpenGL is a graphics API that can communicate and abstract the GPU. So, if you want to draw polygons, 3D objects, use shaders, all this using the GPU, then you'll need OpenGL (or Direct3D, or Vulkan, etc.).
      SDL is smart enough to know if you have a GPU on your machine & OpenGL already installed, and SDL usually can use them behind the scenes for some sruff (like displaying a Window and some 2D graphics).
      I hope this helps. 😬

    • @martinfinch5011
      @martinfinch5011 Před 11 měsíci +1

      @@pikuma thanks :) by the way, do you have your engine course on udemy?

    • @pikuma
      @pikuma  Před 11 měsíci +2

      @@martinfinch5011 No, unfortunately we don't use Udemy for our coyrses anymore.

  • @abrorabyyu6221
    @abrorabyyu6221 Před rokem +2

    because SDL is god tier low level access

  • @chastitywhiterose
    @chastitywhiterose Před rokem

    It is possible to get SDL working with msys2 on Windows to have a basic Linux compiling environment within Windows. That’s how I bypassed Visual Studio and could still compile SDL programs.

    • @mzg147
      @mzg147 Před rokem

      Isn't wsl2 better than msys2?

    • @chastitywhiterose
      @chastitywhiterose Před rokem +1

      @@mzg147 I haven’t used WSL2 but I read it was for making native Linux programs on Windows. But I’m more interested in making programs that run for regular Windows users who don’t even know what Linux is.

  • @filipesimoes5398
    @filipesimoes5398 Před 2 lety +5

    Radar de brasileiro pii pii pii

  • @_iguana_
    @_iguana_ Před 3 lety +6

    Nice video, brasileiro?

    • @pikuma
      @pikuma  Před 3 lety +9

      🇧🇷🇧🇷🇧🇷

  • @onaecO
    @onaecO Před rokem

    I love you!

  • @thorminator
    @thorminator Před 3 lety +2

    Great stuff. Think you need a new microphone though

    • @pikuma
      @pikuma  Před 3 lety +3

      Thank you for the feedback Thor. I just replaced my mic last week. Would you be so kind and please check if the audio quality is better in this new video:
      czcams.com/video/-EsWKT7Doww/video.html

    • @thorminator
      @thorminator Před 3 lety +1

      @@pikuma Definitely a lot better now! :)

    • @pikuma
      @pikuma  Před 3 lety +2

      @@thorminator Beautiful. Thanks! I'll try to learn more about video recording and hopefully improve things.

    • @thorminator
      @thorminator Před 3 lety +1

      @@pikuma I think you're doing great! You fixed the main issue I had which was the audio clipping, so I'm very happy :D

  • @antoniodosreisfeitosaneto7553

    Your ideas seem to be a bit biased against Windows or Microsoft. As a former Unix dev, I do not see where the Windows Terminal is not as "powerful" as the Unix terminal. Could it be the lack of a package manager? Well, even you said that each Linux distro has a preferred one, probably because tar or cpio were never enough historically. In Windows you can use vcpkg and do the very same thing as you do with brew on MacOS. And be sure you can use the same line tools like make or CMake and keep your courses multi-platform and "modern", even on Windows.

    • @pikuma
      @pikuma  Před 2 lety

      Oh, don't get me wrong. I actually think Powershell is probably more powerful than bash or even zsh. For example, just the fact that I can import .net libraries and create a .net form via shell is amazing in my opinion. That's powerful!
      My mention of Windows and its command-line was basically that Windows is not a command-line focused OS. Most of what we do is via UI and I feel that is misleading to beginner programmers. It's nice to force students to touch the filesystem, and Linux is a good example of that.

    • @antoniodosreisfeitosaneto7553
      @antoniodosreisfeitosaneto7553 Před 2 lety

      @@pikuma :) Well, it is as misleading to beginner programmers at it is for someone that uses a Mac for a life without ever knowing about the existence of a thing like a terminal. The thing about Unix and derivatives is that, when it started life, programmers and non-programmers had the same interface. And it was a terminal. And it could be a tty one, with no fancy screen at all. It is the same for Windows, X-Windows and MacOS: people get "misleaded" by the UI. And can end up thinking that it is all that is. IDE included.

    • @unknownuser457gll4
      @unknownuser457gll4 Před 2 lety

      Everyone seems to forget thatLinux is pretty lit (especially having only a handful of tasks running), but Windows is used by the majority.

  • @lookoomas
    @lookoomas Před 2 lety +1

    Muti platform ?

    • @pikuma
      @pikuma  Před 2 lety +1

      Exactly. Note to self: always review the slides before publishing. :)

    • @lookoomas
      @lookoomas Před 2 lety +2

      @@pikuma it's ok, i am a troll i admit it

    • @pikuma
      @pikuma  Před 2 lety +1

      @@lookoomas My people! ❤

  • @OneMeanDragon
    @OneMeanDragon Před 10 měsíci

    Students have a valid question, why use SDL when you have Direct2D.

    • @pikuma
      @pikuma  Před 10 měsíci +1

      Most of my students do not use Windows.

  • @clintonreisig
    @clintonreisig Před 5 měsíci +1

    The sound problem of this video is too annoying

  • @leonardodias3393
    @leonardodias3393 Před 11 měsíci

    Soa meio estranho ver um video em ingles de um brasileiro