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.
- 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.
The worst part about Bazel for C++ is that it’s not yet as widespread as CMake or plain old Makefiles so it can be harder to get third party libraries into your project, but that’s changing quite fast with the bazel registry, and you have things like rules_cc that help you run other build systems inside bazel.
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.
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.
Code reload (because it uses MRuby) is just :chef-kiss:
I haven't used DragonRuby though, so if my above snarky comment is off please point me out.
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.
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-star...
I can't work in Visual Studio. It's so unintuitive.
I have to do this in VS Code.
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.
- 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.
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
I do gamedev on Linux for this reason. With Nix it isn't even that bad to cross-compile.
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.