This article(wiki page?) resonates with me, in that I also chose to abandon aspirations to have something like F#(or any ML-inspired language really) with a nice game engine like Godot or Stride, and eventually settled with Godot and GDScript with a websocket server in a functional programming language(Unison) for a small game I’m making.
GDScript isn’t bad at all, and for software developers with little spare time, Godot works wonders. The OOP-ness is manageable, because usually scripts are small and self contained. A downside I found was that web exports are big in size and aren’t really ‘one click’ for me.
I’ve been meaning to try out Bevy, but my Rust is bad and it seems to have quite a bit of breaking changes.
I tend to think better in an Erlang-y message-sending model, but it’s still neat having first-class support for them
I’m not sure if you are aware of Defold, but it does have this type of thing: https://defold.com/manuals/message-passing/ . I prefer it as well, but with Defold I’m doing a lot more plumbing (which is good depending on one’s taste).
BTW I seem to remember Miguel de Icaza did a thing with Swift bindings for Godot? (I can’t in good faith recommend for or against it because I have no idea what its status is.)
It”s in testflight now snd development is pretty active. I haven’t done more with it than start it and say ”it seems to work”, but it”s pretty ambitious and may turn into a nicer native editor than the original one.
Yes, Miguel wrote SwiftGodot, “Swift language bindings for the Godot 4.3 game engine using the new GDExtension system”. I haven’t used it myself, but it seems to still be maintained – it received 11 commits in the last month.
I wasn’t aware of Defold, thanks! It looks pretty interesting, so I guess I have something new to investigate.
A friend of mine has been playing with Bevy a fair amount recently, and describes it as “it solves all the hard problems really wonderfully, and for all the easy but boring-to-implement problems… well, you’ll have two or three different community crates that solve it with varying levels of competence, and might get upstreamed someday.”
Reading this reminds me a bit of using the game maker scripting language. That language has some odd magic to it, but probably the funniest bit is that since references are “just” numbers, if you do foo.something with foo being a number, then that is treated like “access the object with ID number foo and get the something attribute”.
This, some stuff with self and other… everything is really oriented around just making it dirt simple to write 20 lines of behavior in some event handler. Which is what you want to do in your game for the most part.
This article(wiki page?) resonates with me, in that I also chose to abandon aspirations to have something like F#(or any ML-inspired language really) with a nice game engine like Godot or Stride, and eventually settled with Godot and GDScript with a websocket server in a functional programming language(Unison) for a small game I’m making.
GDScript isn’t bad at all, and for software developers with little spare time, Godot works wonders. The OOP-ness is manageable, because usually scripts are small and self contained. A downside I found was that web exports are big in size and aren’t really ‘one click’ for me.
I’ve been meaning to try out Bevy, but my Rust is bad and it seems to have quite a bit of breaking changes.
I’m not sure if you are aware of Defold, but it does have this type of thing: https://defold.com/manuals/message-passing/ . I prefer it as well, but with Defold I’m doing a lot more plumbing (which is good depending on one’s taste).
BTW I seem to remember Miguel de Icaza did a thing with Swift bindings for Godot? (I can’t in good faith recommend for or against it because I have no idea what its status is.)
https://xogot.com/
It”s in testflight now snd development is pretty active. I haven’t done more with it than start it and say ”it seems to work”, but it”s pretty ambitious and may turn into a nicer native editor than the original one.
Yes, Miguel wrote SwiftGodot, “Swift language bindings for the Godot 4.3 game engine using the new GDExtension system”. I haven’t used it myself, but it seems to still be maintained – it received 11 commits in the last month.
I wasn’t aware of Defold, thanks! It looks pretty interesting, so I guess I have something new to investigate.
A friend of mine has been playing with Bevy a fair amount recently, and describes it as “it solves all the hard problems really wonderfully, and for all the easy but boring-to-implement problems… well, you’ll have two or three different community crates that solve it with varying levels of competence, and might get upstreamed someday.”
Reading this reminds me a bit of using the game maker scripting language. That language has some odd magic to it, but probably the funniest bit is that since references are “just” numbers, if you do
foo.somethingwith foo being a number, then that is treated like “access the object with ID number foo and get thesomethingattribute”.This, some stuff with
selfandother… everything is really oriented around just making it dirt simple to write 20 lines of behavior in some event handler. Which is what you want to do in your game for the most part.