6 ms·
Last night I tried for maybe about 6 hours so many combinations of efforts to compile a C++, SDL3 and Lua program on Windows, with different IDEs, build systems
by 90s_dev 1y ago
Last night I tried for maybe about 6 hours so many combinations of efforts to compile a C++, SDL3 and Lua program on Windows, with different IDEs, build systems, compilers, package managers etc. Finally I'm just giving up and using VS with CMake and vcpkg. The main problem is that there's way too many words on all those documentation pages. It would have taken 3 or 4 days to read them all, and maybe only 2 hours worth of it would have been helpful or relevant at all.
- raincole 1y agoI wonder if there is a SDL3 wrapper that comes with a scripting language[0], hot reload and build scripts for every major platform. Love2D seems close to that, but afaik it doesn't support SDL3 features like the new GPU API. [0]: It's not like I'm allergic to C++, but I firmly believe when developing something that is mostly interactive, such as complex GUI or games, a language that is garbage collected and can be hot reloaded would be much more apt.
- pusewicz 1y agoTry https://dragonruby.org/ https://dragonruby.org/. It's great! Still on SDL2, but will migrate to SDL3 eventually. Code reload (because it uses MRuby) is just :chef-kiss:
- raincole 1y agoIt looks like Love2D, except you pay $50 to use Ruby instead of Lua (admittedly I think Ruby is a better language.) I haven't used DragonRuby though, so if my above snarky comment is off please point me out.
- pusewicz 1y agoVery often you can snatch free copies. Join the Discord. Just ask :)
- 90s_dev 1y agoAs someone who dreams of making a living selling software that I've poured years and years into, that comment makes me very sad.
- pusewicz 1y agoBut why?
- 90s_dev 1y agoWhy do I want to make money from my hard work? Or why am I sad when someone offers a way to bypass paying money for hard work to get something for free?
- fatihpense 1y agoI assumed the original developers might give free copies in the official discord
- pusewicz 1y agoThis.
- pusewicz 1y agoI meant that the author of DragonRuby is generous. And depending on your use case he might be willing to give you a free copy. Additionally, whenever there is a gamejam related to DragonRuby, he usually gives away free copies to anyone who wants to participate. For you to keep. Nobody said anything about bypassing paying money. Not sure what you were thinking.
- 90s_dev 1y agoTo be honest I was just not giving the benefit of the doubt to the comment I was replying to. I should practice that.
- python-b5 1y agoDragonRuby seems interesting, but being a paid product immediately rules it out for me. I've been working on my own similar, smaller framework, which is more work, but I believe it's valuable not to depend on a for-profit company for your work, if at all possible. Also, the attitude much of the wiki / promotional pages are written in for that framework runs me the wrong way for some reason. "Unity and GameMaker rot your brain"... are you kidding me? No they don't. You're still writing real code and solving real problems. They just have more systems in place you have to work within. I don't like the self-righteous attitude. It's fair to not want to go open source if that's your preference, but don't act like people who don't want to use closed-source software where possible are being unreasonable. I also don't see how what is effectively a Ruby wrapper for SDL3 is such an immensely complicated piece of engineering that it needs to cost as much as they're charging for it.
- pusewicz 1y agoIt’s not just a wrapper. There’s more to it than you might think. It’s easy to say „just” without spending time understanding what a tool does.
- 90s_dev 1y agoThat's what I'm working on, basically love2d but SDL3 and TS/JS (via QuickJS). And no box2d builtin, but easily importable via CDN.
- 90s_dev 1y ago... at least if I can get the simplest Visual Studio + CMake + vcpkg hello world working. Which I can't. This always happens every few years. It takes me about a week to get a C++ program compiling and running, and by the end of it, I've lost all motivation, forget how any of it works, and delete it all and move back to TypeScript/web stuff. At least that I know despite all its warts. [edit] figured it out Hello me from the future, googling this in a few years. It's actually really simple: just follow the same steps on that page you were on[1] except you HAVE TO run the `vcpkg new --application` and `vcpkg add port fmt` commands in the dev cmd prompt, you can't just add the file manually for some reason, even though that's all it seems like it's doing. [1] https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vs?pivots=shell-powershell https://learn.microsoft.com/en-us/vcpkg/get_started/get-star...
- 90s_dev 1y agoI can't do it. I can't work in Visual Studio. It's so unintuitive. I have to do this in VS Code.
- raincole 1y agoThat's my idea stack as well (I tried to build something like SDL2 + V8 at some point but ended up giving up...) If you have a repo/website set up please leave a link for me to follow :)
- 90s_dev 1y agoYeah sure https://github.com/sdegutis/minigamemaker https://github.com/sdegutis/minigamemaker placeholder.
- CJefferson 1y agoObviously you can do what you like, but I'd advise making sure box2d (or similar) is super easy. Bonus points if there is also a built in function for drawing box2d objects. I've often taught beginning game dev in a day, and with box2d in love2d you can very quickly make a wide selection of cool games, and while it's not perfect it makes it easy to get started making platforms, doing collisions, all sorts of things.
- krapp 1y agoYou can build a project linking SDL3 with Lua and have access to all of the features of SDL3, with the obvious caveat that you'll have to code the rest of the owl yourself, but it isn't difficult. I have a basic CMake script that I use for projects and it works fine. (also, obviously you can just run the Lua code locally and skip the build process altogether when developing.) I use LuaJIT though, and the FFI generator here[0]. [0]https://github.com/sonoro1234/LuaJIT-SDL3 https://github.com/sonoro1234/LuaJIT-SDL3
- dustbunny 1y agoI agree. I used chatgpt to write a makefile to compile sokol+Tracy. It's a pretty solid, generic makefile. But "build system complexity" pushed me away from sdl, magnum graphics and bgfx into the arms of sokol. And I'm a 10+ year gamedev. Out of all of c++'s sins, the lack of a solid integrated build system is the one that bites me the most.
- 90s_dev 1y agoMy theory is that good C++ devs haven't yet made a simple yet powerful build system because they're too busy making lots and lots of money writing enterprise C++.
- dazzawazza 1y agoWe all just accepted CMake. It's not perfect but it works. C++ with SDL and Lua in a mono repo should be trivial. SDL3 supports CMake and Lua is simple to compile and make a CMakeLists.txt for.
- verall 1y agoThis is correct. It has the key things that most C++ devs tend to care about: - Cross platform support well integrating into "native" tooling - Endless ability to add weird hacks to things to get around problems The syntax is ...passable. I've never gotten a java stacktrace during a build failure (ahem bazel ahem). It's straightforward enough to do the horrible things that C++ devs do all of the time like having 3 dependencies from system apt, 2 vendored, actually a 3rd is vendored but only used on windows, where the other 2 come from vcpkg, and 4 of these are statically linked but the last (openssl) is dynamic and accepts any version in order to support both ubuntu LTS and arch, but shipped as a dll on windows. I have prayed before the CMake gods and they have accepted me.
- shortrounddev2 1y agoVisual Studio + MSBuild is simple if you're okay with IDEs
- 1y ago
- rudedogg 1y agoIf you’re interested in Zig check out https://github.com/castholm/SDL https://github.com/castholm/SDL. Try the breakout example, I play around with it a lot. You’ll just need the Zig 0.14 compiler and it should be painless.
- 90s_dev 1y agoSomething about me has always wanted to learn and master C++. I've read through Stroustrup's book almost entirely, and still never written a single line of C++. I don't know why I have this goal in life, but I do. This project still doesn't do that, since I'm just wrapping SDL3 with QuickJS and will probably almost entirely just write C functions to do it with. But a man can dream.
- syspec 1y agoWhat's the relation of your comment to this blog post?
- 90s_dev 1y agoMainly it just reminded me of what happened last night and seemed like good timing because of the similarity, but also I appreciate blog posts that are short and get right to the point of how to do something. Half of the problems I got past were thanks to odd blog posts like this with code snippets that I found on google and got me unstuck immediately.
- syspec 1y agoFair enough
- whateveracct 1y agoyeah, software development on Windows is just terrible. I do gamedev on Linux for this reason. With Nix it isn't even that bad to cross-compile.
- pjmlp 1y ago- VS full install - vcpgkg manifest file - done The problem is people pretending Windows is UNIX. And UNIX community got lucky Apple decided to go with NeXTSTEP and not BeOS, otherwise those shiny fruit laptops would also be their own thing.
- 90s_dev 1y agoThen how would you install quickjs? conan? download and copy the files manually?
- pjmlp 1y agoWhy bother with conan, when vcpkg is already available and zero Python dependencies? As for quickjs, it wasn't part of the comment, rather SDL3 and Lua. > ...combinations of efforts to compile a C++, SDL3 and Lua program on Windows... As such, https://vcpkg.io/en/package/sdl3 https://vcpkg.io/en/package/sdl3 https://vcpkg.io/en/package/lua https://vcpkg.io/en/package/lua https://vcpkg.io/en/package/luajit https://vcpkg.io/en/package/luajit
- 90s_dev 1y agoBecause I was using Lua as a hello world test to get it all working. Ultimately I wanted to use typescript though.