If the question is "Which engines are best for making best games?"
This is the answer: Unreal Engine, CryEngine,
If the question is "Which engines are best for a beginner?"
This is the answer: There is a lot
If you answer this question, I think you'll get an healthy answer, "Which programming language you are using, you like and you're best at?
Unreal is free, but I don't know CryEngine. It must be in the Crytek's official web page and yes it has sandbox.
I don't know nearly anything about java but I suggest you c++ as a programming language. I guess unity using c# as scripting lang. and guess again java too. If Unity using java too, I suggest unity too. It has got very good gui and compatible with lots of tools(3ds ..etc).
Good luck.