The Beginner's Guide to Android Game Development by James Cho is a complete Android game development course for beginners who have little or no programming experience.
Whenever I read a statement like that, I'm concerned that a book is too shallow or increases the pace suddenly so that beginners won't be able to follow unless they spend lots of time to fill in the blanks or concepts that are not explained.
This book is different but more about that later. The book covers Java and Android game development and while the basics of Java are covered by it, it is not a full Java nor Android tutorial but concentrates on the essentials for Java and Android game programming.
While that is the focus, the concepts that you learn can be used to create Java and Android apps as well.
Eclipse is used throughout the book for development which is the only issue that I have with the book as Android Studio would be more appropriate since Google focuses on that as the core development environment for Android.
That does not mean that you will run into issues or anything, only that you may have to make the switch to Android Studio eventually and that it would have made sense to start with Android Studio to avoid that.
The Beginner's Guide to Android Game Development
- The fundamentals of Programming
- Beginning Java
- Java Game Development - Laying the Foundations (game framework)
- Keeping it simple (first game)
- The next Level (second game, improvements)
- Android Game Development - Beginning Android Development
- The Android Game Framework
- Building the Game
- Releasing your Game
- Continuing the Journey
The first three chapters walk you through Java basics. It covers lots of ground including data types, loops, creating your first program, objects, classes, working with the Java API before it explains advanced concepts such as interfaces, getter and setter methods or inheritance.
You get a good understanding of these core concepts even though you will have to seek out additional information for some topics such as polymorphism. This extra knowledge or better understanding is not necessary however to follow the book.
What is provided is exactly what you need to create your first game in Java. Additional concepts are provided throughout the book when they are used.
The next three chapters cover game development in Java. You create a framework in the first that is used by the two game that you create in the two following chapters. That's right, you create two games in those chapters that you can play on your system and even distribute to others.
The author explains the purpose of every class, method, variable, and line of code so that it is very easy to follow.
You may want to look up certain constructs online though to get a better understanding of them. For instance, you may want to know more about certain imports made in classes to get a better understanding of what they do and what you can use them for.
This is again not something that you need but it may help you in the long run as it improves your understanding of those classes and the methods they offer.
The next three chapters are all about Android game programming. The first chapter introduces you to the concept of development for Android. It explains core Android concepts that are different from Java, activities for example.
A game framework for Android is created in the next chapter that serves a similar purpose as the Java game framework that you have created in chapter 4 of the book.
Chapter 9 finally walks you through the steps of creating your first Android game.
The book is not finished at this point though. Chapter 10 offers useful information on publishing the game on Google Play and updating it while chapter 11 looks beyond and provides suggestions on what you may want to do next.
What I like most about the book is that the explanations make sense. I never had the feeling that something important was skipped by the author or that code was used that was not explained properly or at all before.
It means that you can use this book, and this book only, and still understand every single line of code.
The book is for beginners, but can also be useful for Java programmers who would like to start with Android or programmers who never touched Java. I would not recommend skipping the Java game development chapters as core concepts, active rendering, general design of a game and its classes, the game loop or game animation are explained in those chapters which you should know about.
The author has a talent for making complex topics more accessible which is why I can recommend the book wholeheartedly to beginners (including absolute beginners with zero programming experience) and others who like to start with Android or Java game development.