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? , AKA .

"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!"

Yes. Lua's so weird. It feels like it's a mixture of some of the worst parts of Python and some of the worst parts of old-skool JavaScript.

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 in my favorite editor (Nova) and even wrote a Nova extension to do interactive code validation: github.com/GarrettAlbright/Lua

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 , which I think all non-gamedev devs secretly want to do.

Sign in to participate in the conversation
PHP Community on Mastodon

Open source. Open community. We are dedicated to building and enriching the PHP community.