I've been experimenting with game frameworks in between client work recently (please contact me if you can give me more client work!). My criteria: 2D, nothing that requires a custom/crappy IDE (so Unity and Godot are out, as are anything that requires C# until there's a C# editor that's not non-native ass on macOS), can create games targeting macOS and Windows (HTML/JS don't count), a strongly-typed, preferably compiled, C-like language. So my choice? #LÖVE, AKA #love2d.
"But wait!" you say.
"LÖVE uses Lua! Lua isn't strongly typed! Lua is a scripting language! Lua isn't C-like! Lua has some bizarre sort of inheritance which makes doing OOP-like things feel like a hacky loophole a la JS before it got real classes!"
And yet… I don't know. I don't hate it like I should. It's like… there's something kind of charming about it. I can't explain it.
And I can write #Lua in my favorite editor (Nova) and even wrote a Nova extension to do interactive code validation: https://github.com/GarrettAlbright/Luacheck.novaextension
And the LuaJIT compiler that LÖVE uses is damn fast. Almost fast enough to make the non-compiled aspect of it irrelevant. It's all so… pleasant.
It's going to be a while until if/when I actually release a game, especially if, God willing, I get more work, but for now…
I'm finally starting to seriously experiment with #gamedev, which I think all non-gamedev devs secretly want to do.
Open source. Open community. We are dedicated to building and enriching the PHP community.