The argument that keeps coming is "it's free". So, let's tackle this one, once and for all.
Would you take a virus, or an arrow to the knee, because "it's free". No.
The core reason : because it causes you more trouble than it gives you solutions.
The problem of the "almost" thing is that you'll start to code around that to later found that it doesn't work and you have no solution but to either re-do all your code from scratch or add a fat level of entropy in your code to move to your homemade solution that solves this problem.
And this kind of thing pretty much kill your momentum in the game development. You stop developing your game to develop a patch that will suit your need and, when you develop it you find an other problem in the engine that need a solution ... and month later, it's just too late, you are not in the correct mood anymore.
You make a multiplayer game, so you need connection, so you need security ... but the library doesn't have this functionality, nor the possibility to add it. So you develop your own solution, modify your code to suit that new library, and it works "meh" then you want to have in-game ui (like an in-game screen) and you find that the gui library allow only one instance at the same time (cause it uses global variables).
So you try to pick an other one, modify your code to suit this new library and already start to have difficulties to understand why this or this piece of code is like that.
Then you find that the charactercontrol has bugs (i already talked enough about it), then you start to do your own, then you modify your code.
Then you find that there is no character in the stock asset, no monster to be a placeholder for basic creep. Then you start to make some.
Then ... you download once again this very first piece of code you saw about this library, the physic demo with a fps running in an empty small "town". And you understand.
It's what I try to do. There is a technical demo of Avarra Gui around, an attempt to make an other gui library with a "swing" approach (ie : an implementation of the Graphics interface).
I even ported a "worms" game initially made in swing to it, and most of the port was replacing "import java.awt.Graphics" by import of my Graphics. There was some other things too (so it was not that straight). But i realized design flaws and i am now working on fixing them. I also worked on a doom port, in two part, one not related to jme at all which is a "i need a frontend" project and the other "i am a frontend project using jme". Then i also created a frontend for a custom engine and translated the "need frontend" into c++, for an engine in c++.
This last project was more or less stopped when I tried to implement a portal culling (sectors in doom are perfect portals, and it's somehow how the original doom engine worked, drawing iteratively from the camera until no pixel need a redraw) and found a no-no. Jme locks opengl commands, don't touch it, blahhh.
Where is the "creating" in this ? In the story ?
And i actually write a lot of story. Some big ( 100.000 words ) some smaller. But there is thing that you can tell with a picture and not with a book.
I have scenes in my head with very precise camera movement, angles, transitions, sound, lighting. I would make a movie if i had enough money (but "enough money" for big spatial station movie is a lot of money.
EDIT : if you post just to say "olol Avarra Gui" ... just don't post, you didn't get it.