| ▲ | raincole 8 hours ago |
| Btw, Love2D is based on SDL2. If you hate Lua but needs the same cross-platform capabilities, you can use an SDL2 binding in other languages or make your own. |
|
| ▲ | Levitating 5 hours ago | parent | next [-] |
| SDL3 should get more love in general. The SDL3 GPU API[1] provided a cross-platform GPU API even before WebGPU. In Rust it's a good alternative for winit/wgpu. For that reason I added it to areweguiyet.com[2] last week, where apparently it wasn't even listed before. I am currently using it to develop a space game[3] inspired by the original BBC Elite. Using emscripten to get on the web and QUIC/Webtransport for networking. [1]: https://wiki.libsdl.org/SDL3/CategoryGPU [2]: https://areweguiyet.com/#ecosystem [3]: https://git.levitati.ng/LevitatingBusinessMan/elite/src/bran... |
| |
| ▲ | runevault 2 hours ago | parent | next [-] | | SDL3 is something I've been keeping an eye on, but at least one thing that held me back from diving into it was SDL_Mixer (audio library) was not updated to a release version for SDL3 until I think a month ago? I need to get back to it but lately I've been messing with SDL2 + wasm stuff using emscripten. | |
| ▲ | hresvelgr 4 hours ago | parent | prev [-] | | SDL3 doesn't support bindless resources and the plans to do so in the future are very loose[1]. [1] https://github.com/libsdl-org/SDL/issues/11148#issuecomment-... |
|
|
| ▲ | onehair 6 hours ago | parent | prev | next [-] |
| Now why would you hate lua of all things? |
| |
| ▲ | raincole 6 hours ago | parent | next [-] | | For all the reasons, but the 1-based index alone makes me uncomfortable. | | |
| ▲ | WolfeReader 3 hours ago | parent [-] | | 1-based indexing is great. It's just _different_ - from C, where the array index is just sugar for pointer arithmetic, and from other languages which borrowed the practice without reasoning. |
| |
| ▲ | onsclom 5 hours ago | parent | prev [-] | | I don't necessarily hate Lua, but I prefer C and Raylib for game dev. Lua is garbage collected, dynamically typed, strays far from standard syntax patterns, and has less existing tooling than C. I see why people might hate Lua. Especially for game dev! | | |
|
|
| ▲ | CyberDildonics 5 hours ago | parent | prev | next [-] |
| There is a lot more that goes into Love2D than just SDL. It uses many other libraries for sound, image loading, etc as well as using luajit so that the lua runs very fast and has a super easy C FFI. |
| |
| ▲ | Levitating 5 hours ago | parent [-] | | But SDL already provides an API for all the things you listed.
So I am assuming the libraries in Love2D still call those underlying SDL APIs right? | | |
| ▲ | CyberDildonics 4 hours ago | parent [-] | | Love2D uses openAL for audio, FreeType 2 for fonts, DevIL for image loading and Box2D for physics. It can also use image fonts. It uses luasocket for networking and has a compression API built in. On top of that there are love2d specific libraries people have written to deal with 2D games like GUIs and tile libraries. Then there is the ease of debugging, where you can use lua to have runtime access to the table of variables and can print them on screen if you need to, not to mention dynamically loading new update and draw and input functions. This is all to say that just downloading SDL is not going to get anywhere close to what love2d has included. |
|
|
|
| ▲ | newobj 8 hours ago | parent | prev [-] |
| SDL3 |
| |
| ▲ | jasonjmcghee 7 hours ago | parent | next [-] | | Definitely SDL2. Author is currently building version 12 which will be using SDL3. But it's been in development for quite some time with no clear end date afaik. | | |
| ▲ | newobj 3 hours ago | parent | next [-] | | I stand corrected! | |
| ▲ | krapp 7 hours ago | parent | prev [-] | | It is easy to get Lua (with LuaJIT) working with SDL3, though. That obviously isn't a replacement for the framework but it is perfectly doable if someone just wants to write a game in Lua with minimal overhead. Edit: I mention LuaJIT specifically because it lets you create metaclasses around C objects, which is much easier than messing with the Lua stack from C, and it's easy to make a 2d vector class from an SDL Point or a spritesheet or what have you. There are a few rough edges like dealing with pointers and gc but to me it's the best of both worlds (the speed of C, and some implicit type checking, and the flexibility of Lua.) Obviously you could do it the hard way and the other way around with normal modern Lua but it's such a pain in the ass. |
| |
| ▲ | raincole 7 hours ago | parent | prev [-] | | As far as I know only the latest (unstable) version uses SDL3. |
|