A possible progression of learning to program games in Java
The outline lists the concepts introduced in each sub-project.
Each sub-project contains a series of "steps", which are suggested things to try on the path to creating the final sub-project.
After each step, the project will compile, but it may not do what is expected yet. The intention is not that the sub-project be done the "right" way at first, but instead to be done in a somewhat naive way first, and then improved little by little with each step until it is good quality and complete.