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.
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:
- 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.
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.
Swift has to shed the perception that it only works on apple platforms. I've found the the C++ interop to be pretty good for my computer vision use cases.
Now that Swift + SourceKit LSP + VS Code is a viable environment, and CMake supports C/C++ and Swift interop out-of-the-box, I'm keen to start using Swift for more cross-platform things.
At this point, I demand a good IDE experience: as much intellisense as possible, great debugger, hot reloading.
Anyway, C# and MonoGame was what won at the end of the day, at least to just get the ball rolling. Rider is a great IDE, and MonoGame… at least has great getting started documentation to get me going again. Once I knock out a few cutesy games I’ll probably go build my own thing on top of SDL3, so that I’m not held back by MonoGame. Also the MonoGame content builder is just completely broken on Mac, so on the side I am building my own Rider plugin to bring actually good intellisense to the mgcb file, so that I don’t need the broken editor gui (all it does is manage the mgcb file anyway, arguably should have just been an IDE plugin the whole time)
I tried Dragonruby, really wanted to like it, but the development experience is just… not there. It live reloads, but seems to offer no IDE tooling whatsoever. They talk a lot about emacs, maybe you’re supposed to use it with emacs, which I just have zero interest in doing. You’re also not using MRI, or the full Ruby language, so a lot of tooling for “normal Ruby” may not work. C# is just C# with MonoGame, I can use all the tools, import all the nuget packages (if you really want to), etc.
I felt like going with a C based project would lock me out of having hot reloading, but that might not be true, please let me know if I am wrong!. I know of a C++ hot reloading thing specifically made for game dev, it’s in my notes somewhere, just not sure if it’s suitable for use (you sure do have to sift through lots of abandoned experimental stuff in this world)
It loads Aseprite files automatically, manages animations, collisions, networking, what have you.
My (limited) understanding is that Swift is mostly used to make iOS apps.
The language itself is not limited to Apple platforms, and there are compilers for many others, but until now all the surrounding tooling (IDEs, Swift Package Manager, build toolchain(s), C/C++ interop) has been less than ideal for all non-Apple platforms. Arguably less than ideal on Apple platforms too in some cases ;)
There is still a big difference between "I have Xcode" and "I have VSCode + a large manual toolchain", but the gap is closing. CMake can also generate Xcode projects which is a nice touch when bringing cross-platform code back to Apple platforms.
macOS, Linux, Windoze
It really isn't.
https://randygaul.github.io/cute_framework/#/topics/game_loo...
You can request a fixed timestep, and your own loop callback will be called at fixed intervals, which allows you to completely ignore delta time.
Come on, if you're going to spell "voilà" correctly, you might as well use it correctly too. "Et voilà!", not "And voilà!" :)