I can vouch for Game Maker, it's actually a surprisingly capable engine, and it comes with its own programming language for those who want to fiddle with it. Great for the people who are too lazy to fully indulge in the learning of a whole programming language (read: me), since it produces actual results very quickly. Notable games made with Game Maker:
Iji and
Battleships Forever. One slightly unfortunate note though: The full version costs. There's a free Lite version, but it obviously has fewer features.
Other than that, i can only offer one piece of advice: Be patient. You already know it, coding takes a long time to both do and learn. Major props if you manage though, i ground to a halt last time i tried.
Also, tip: If you for some reason find yourself using the same numerical constant many times, and you might need to change it in the future, make it a variable and use that variable in all needed equations rather than the number itself. I know it sounds like a given, but dear god it has saved me much time (inadvertently), and it makes it so easy to tweak the variable to perfection. It also feels really cool when the code you made automatically adjusts to changes. Example: In the game i'm making, there's a spread shot upgrade. I can change the number of shots fired, and the coding will automatically calculate the angle of all fired shots to make a neat fan with exactly X degrees (X meaning a number of my choice) between each shot, meaning i only have to change a grand total of 1-2 numbers.
In other words, variables + functions = yummy. If your function works for all possible scenarios without changing it, then YOU HAVE DONE WELL.
But, i digress. Lua is also a possible language to use, and it's relatively easy too. From what i've seen, quite similar to Java. It's not as widely used for whole games, but with a proper framework (i.e.
Löve 2D) it should be possible.
These guys make games with it. I guess this also counts as an endorsement of Java.