I think that besides good tutorials people need simple and minimalist apis specialy made for indie games that will let them learn from pratice. Apis with around 20-40 classes that don’t use complicated interfaces with excessive customization options and yet complete.
I have been working on a remake of Starflight for the last months in C++. Unfortunatly i could not convince anyone to use java. We are building a gui framework on top of OpenGL and an AI framework on top of the GUI framework. The game engine is being rebuilt to be completely data-driven with all the data in .csv databases and structured text files similar to Half-Life2 or Doom3 configuration files anyone can edit with a text editor.
We don’t use any xml api like apache (however we have considered tinyxml) or a database library or any third party api like ode or cegui because any of these apis are huge. We decided to drop anything except the most minimalist apis that can do the job well.
What we have concluded from this, after Starflight remake having more than three different engines in the past is that it’s completely impossible to do a comercial quality game engine without geting a team of pro. programmers working on it full-time during several months. It’s just impossible and there is no magic trick to overcome this limitation.
We are doing this just for fun. We have had douzens of people coming and going and making many contributions but it’s still an independent non-profit game that cannot be managed like a comercial game. Still is something very fun to do and for people interested in getting a contract as a games programmer this is the way to learn.
I hope people consider doing Java games in their free time not for doing a great games to compete with commercial games but for doing great indie games that are fun to work and can teach a lot about how games work.