I don’t know it, but if it supports transparent textures, you could try something like this: https://animium.com/2008/08/lowpoly-trees. The basic idea (not exactly what’s in the link) is that each branch is a texture on a plane facing your camera - clearly works only if camera angle doesn’t change. Depending on engine performance and distance from objects, you could simplify down to having 3-4 layers per tree. I’d call this something along the lines of “lowpoly parallax trees”. I’ve seen it working very neatly in a top-down third-person demo of Blender Game Engine a while ago.
A neat way of producing these could be getting a hipoly model of a tree and culling sliced renders of its branches.
Of course, if you don’t have things behind the tree, or the tree moving, you don’t need parallax at all and could bake the whole tree on a small surface.
A lot of decisions depend on the exact affordances of the game.
I’ve been using path 3 and it was fine for me. I even adapted the docker-pyinstaller to also compile Mac-native binaries.
The thing is that in your case the users would still need to run front-end and back-end. Unless you want to implement some browser-starting logic (which is a pain to do multiplatform), this will be up to them ans that’s one click too many to start.
As far as I can tell you have such a problem with path 1 as well.