If I were you, I wouldn’t look for a guide to making a specific game. Just start making your simple clone, then crack open the documentation or some example code when you can’t work out how to do something.
Let’s say you’re using slick, and your goal for the day is to get a spaceship moving left and right. So you look at the wiki and try out the Hello World application. You don’t need to understand everything that’s going on right away, but if you see some unfamiliar keywords or constructs you can always consult your book (or google).
For the slick-specific stuff in the Hello World example, you can look at the javadoc, specifically for the BasicGame class. There, you might find out that game logic ought to be handled in the update method, and visuals in the render method. For visuals, you replace the test string with some little ASCII spaceship placeholder. For logic, you look for some information on input, then decide to use the isKeyDown method to increment or decrement some field. You then change your drawString call so that the string’s horizontal position corresponds to that field’s value. Once that’s working, roll that functionality into a separate Ship class.
Tomorrow you decide to replace the test string with a picture, and you repeat the process, which is, to summarize:
- Break down your goal into a series of smaller problems
- Pick a problem to tackle
- Check the wiki for pertinent information
- Look at the related API documentation
- If all else fails, look at example code
- Write the thing
If you follow tutorials to make a complete game, you’ll only see the information the author needs you to see, I think. Learning to help yourself will go a long way, and it will expose you to tangential bits of knowledge that will come in handy later (“I need to draw a sprite as a silhouette for a damage flash – hey, wasn’t there a drawFlash method in Image?”). Your questions shouldn’t read as “how do I make space invaders,” but as “how do I make an object move over time,” or “how do I put an animated picture on the screen?” The above should apply to whatever you’re using, since any library worth its salt will have some documentation and tests for you to peruse.
Sorry if this is rambly and labyrinthine, it’s been a long day.