Porting ioquake3 from SDL2 to SDL3

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

КОМЕНТАРІ • 40

  • @surrealchemist
    @surrealchemist 6 днів тому +60

    You should make a twitch channel and speed run porting games

    • @MattieBW
      @MattieBW 3 дні тому +3

      i actually love this idea lol, gotta have a speedrun clock too

  • @saxxonpike
    @saxxonpike 3 дні тому +16

    BLESS the improved documentation library-wide.

  • @onesketchyguy6050
    @onesketchyguy6050 5 днів тому +9

    That was a blast, thank you for the guide!

  • @alexhiatt3374
    @alexhiatt3374 2 години тому

    oh hey, didn't know you had a UA-cam channel! I've used PhysicsFS a lot and it's been very helpful.
    I really appreciate that it's easy to modify, I was able to add hash buckets to the search path conflict check in around an hour (had to mount ~15k files).
    Didn't even realize you were involved in game ports & SDL until I was reading about Quake derivatives on Wikipedia.

  • @10e999
    @10e999 День тому +1

    Fantastic video. I was not expecting such a good commentary.
    Not only helping us understanding the porting process but also the rational!

  • @dpanterdpanter
    @dpanterdpanter 6 днів тому +7

    Top work bro!

  • @raf.nogueira
    @raf.nogueira 3 дні тому +4

    Incredible, you did something in 1 hour that I would take months or weeks... =(

  • @ScottDuensing
    @ScottDuensing 2 дні тому

    Incredibly useful information. Looking forward to moving to SDL3!

  • @spongythecake
    @spongythecake 10 годин тому

    Subscribed. You are awesome

  • @RichardLofty
    @RichardLofty День тому +2

    53:10 "capture" is actually better, because "recording" means the data is being saved somewhere. But capture - is just capturing a stream of data, without necessarily saving it.

    • @arjix8738
      @arjix8738 19 годин тому

      by that logic, recording fits as well, since you are saving the data on the heap

  • @RubyRoks
    @RubyRoks День тому

    Stumbled across this in my recommended and as i'm watching, i remembered that i still have the 4 classic quake games installed from when i had PC Game Pass. Apparently Microsoft does exactly nothing to restrict those files in case your Game Pass sub ends and you're free to copy all the necessary files to use a source port like ioquake3 or whatever is applicable for the game in question to play it without Game Pass.

  • @lovzi9865
    @lovzi9865 2 дні тому

    I did some SDL2 in 2018-2019. I found the interfaces quiet nasty. Been waiting for this. Now I got a MSC in computer science and math, and 3 more years in the industry as a programmer/data scientist. Lets make some games!

  • @TheSeriousDog
    @TheSeriousDog 2 дні тому

    Amazing video

  • @vampirefrog4277
    @vampirefrog4277 2 дні тому +1

    congrats on stable abi

  • @MrOnlineCoder
    @MrOnlineCoder 2 дні тому

    I fucking love SDL, it's amazing

  • @Blinkwing
    @Blinkwing 3 дні тому +4

    Nice work on the porting, thanks for this very interesting video!
    I think you made one small mistake: At 1:00:10 you specify sdlCaptureDevice, but shouldn't it be sdlPlaybackDevice? In the end, you would want to reduce the gain on the output, not the input, right?
    Are there plans to mainline this port to ioq3?
    Also, overall, does SDL3 come with performance improvements over SDL2 or is ist just more about better consistency in terms of API and possible race conditions?

    • @RyanGordon
      @RyanGordon  2 дні тому

      You're totally right, that should be sdlPlaybackDevice. Good catch! SDL3 has a bunch of good stuff over SDL2--including better consistency, more performance, and less race conditions--and you can get a quick overview of Cool New Stuff at wiki.libsdl.org/SDL3/NewFeatures !

    • @Blinkwing
      @Blinkwing 2 дні тому

      @@RyanGordon Thanks for your quick response and pointing to this very helpful overview on SDL3! Happy coding!

    • @Blinkwing
      @Blinkwing День тому

      @@RyanGordon Addendum: I created a pull-request in your GitHub-fork-repository for the change.

  • @anwiseru9064
    @anwiseru9064 2 дні тому

    interesting video! i wonder if the migration patch script could also replace those integer != 0 checks with the correct boolean ones, but maybe that would be too slow/complicated if it has to check every SDL function name which work that way

  • @afritz1265
    @afritz1265 2 дні тому

    Congrats. I've used SDL2 in hobby projects for years but will think about 3 soon. Is it usable today by people on 5 y/o Debian computers? I'm on Windows but try to be considerate of people who don't have the latest libraries

    • @RyanGordon
      @RyanGordon  День тому +2

      It is! It has support for newer things (like PipeWire, Wayland, etc), but it looks for those things at runtime and chooses what to use based on what's available on the system (if not PipeWire, maybe PulseAudio, if not PulseAudio, maybe ALSA, etc). The only thing SDL3 links directly against is the C runtime (and even that is optional on some platforms!). This is true on all platforms. On Windows, we support back to Windows XP, and someone is maintaining some small patches outside of our repo to get Windows 95 up and running.

  • @NHOrus
    @NHOrus День тому

    Would you make a PR with the port to ioquake3 repo?

    • @RyanGordon
      @RyanGordon  День тому +1

      I may, but the patch in the video needs more work before it would be PR-ready (for example, I skipped all the non-Linux pieces of the Makefile). They also have to decide if they're willing to drop PowerPC Mac support (as they seem to have SDL2 headers specifically for that), and maybe other ancient platforms, or keep a _lot_ of ifdefs to continue to support SDL2 in parallel.

  • @bparker06
    @bparker06 3 дні тому +1

    What TUI editor is that at the end? It's a bit hard to google "edit". A link to source would be much appreciated!

    • @odomobo
      @odomobo 2 дні тому

      I was curious also, but I found it - it's the FTE text editor.

    • @xusdom
      @xusdom 2 дні тому

      Foldable Text Editor - FTE

    • @bparker06
      @bparker06 2 дні тому +2

      @@xusdom Thanks... but it crashes with anything bigger than 1080p. Unusable for me >

    • @RyanGordon
      @RyanGordon  День тому +3

      @@bparker06 It's my fork of FTE, which has a bunch of fixes and uses SDL! github.com/icculus/fte

  • @REA987
    @REA987 3 дні тому

    How about SDL1.2 games? Also, has id Tech 4 patches for ETQW and Quake 4 carried on to SDL3?

    • @RyanGordon
      @RyanGordon  День тому

      So we've built something called sdl12-compat ( github.com/libsdl-org/sdl12-compat ) which makes SDL-1.2-based games work with SDL2, and this contains support for the idTech4 functions that were added to their fork of SDL 1.2. We've _also_ built sdl2-compat to make SDL2 games work with SDL3, and it explicitly works to chain all this together...so you drop a few new libraries into your idTech4 game folder and they're running on SDL3 without even recompiling the games. For games that aren't getting updates, this is the right thing to do. I chose quake3 for this video because ioquake3 is still actively maintained, so it makes sense to modernize its source code to use SDL3.

  • @StarryNightSky587
    @StarryNightSky587 11 годин тому

    I don’t know why I watched this(yup all of it), didn’t work on any SDL app in my life 😂

  • @dnikhr6014
    @dnikhr6014 2 дні тому

    yes

  • @PopescuSorin
    @PopescuSorin 3 дні тому +4

    i know this OS! is Ubuntu linux

  • @Antagon666
    @Antagon666 2 дні тому

    SDL 3 API is super icky.
    Tries to be C++ but falls flat.