Please share...

android-game-programming-course-beginner-to-developer

This course is made up of 6 modules. Some of the modules are completely free, some are paid and others are a bit of both. Compare the Knowledge Checklist section of each module to see which ones you can skip and when required click the Module Content tab to see the areas of study required to gain the knowledge.

Notice you can hide and show each of the modules using the + and buttons. At the bottom of the detail for each module, you can see the amount of overall progress you will have made at the end of the module.

Good luck and please feel free to ask any questions in the comments section at the bottom of the page.

If you are not sure if this is the right course for you then be sure to take a look at this article. Where do I start.

 

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

java-game-coding-introduction-mug

This module is a fast but wide-ranging look at the Java programming language. While this module skips much of the depth and detail of the subject, being introduced to all the core principles upfront will make a more detailed study of Java (in Module 3) much easier. If you already know the Java basics listed below then you can jump to module 2.

  • Java variables including declaration, initialization and manipulation using operators.
  • Java conditions and loops using keywords like if, while and for to make decisions, branch code and repeat sections of the game code.
  • A decent knowledge of methods and how they are used to break a program into logical parts.Also know about parameters return types and arguments.
  • A good overview of Object Oriented Programming but not neccessarily a strong knowledge. Understand the concepts of classes, objects, inheritance and polymorphism.

Getting Started with Java for Android

These 8 brief tutorials each dip into a different aspect of Java programming. While none of the tutorials is comprehensive, together they will give you a good insight into Java and how we will use the code as the building blocks of Android games.

  • This tutorial links out to the other 7 Java tutorials as well as a few more. Feel free to branch out and look at the extra tutorials, it won’t hurt. Or stick to the exact order reccomended by the course below. Introduction to the Java programming language.
  • Everything you need to know about Game variables
  • This tutorial explains how you can manipulate the values stored in game variables. Read Changing the value of game variables.
  • Your games will need to know when events have occured. Things like an alien is destroyed, a new high score is achieved or the player has restarted the game. These things are detected by checking for conditions.
  • There many situations when game code needs to change what it’s doing and head down a different path of execution, perhaps when we have detected a condition. This is an explanation of how to branch game code.
  • This tutorial looks at how we repeat sections of code multiple times. Every game will be comprised of Java loops.
  • As our programs get longer and more complicated we need to organize our code better. One of the ways we can do this is with Java methods.
  • Object Oriented programming (OOP)  is a very big topic. It’s core ideas, however, are very straightforward. Study this OOP introduction it will set you up for all the rest of the modules.
You are now well placed to move on to module 2 where you will actually get to see your code in action!

COURSE PROGRESS IN TOTAL 5%

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

In this module, you will actually get to code and run some simple apps. After you have got Android Studio up and running you will practice the concepts you learned about in chapter 1. As a grand finale for module 2 you get to code an Android app that plays some sound effects and one that does some basic drawing as well.

  • Install Android Studio and Java then build and deploy your first empty game game project.
  • Build a series of simple apps that use the basic Java concepts discussed in module 1 and output text to the Logcat console window.
  • Build an app that plays some simple sound effects using the SoundPool class.
  • Build an app that draws with bitmaps, pixels, lines and simple shapes using the Canvas and Paint classes.

Getting Started with Android Studio

These 8  hands-on projects will give you your first experience of running real apps. The first three get your development environment setup and tested. The next three practice basic Java concepts using real apps that output text to test our code. The final two you actually get to make some noise and draw some graphics.

  • In these really simple steps we will walk through the process of Installing Android studio development environment and the other software that we need to start to learn to code Android games. Setting up Android Studio development environment.
  • In this project we will use the Android Studio new project wizard to build an app we can actually run on a real Android device. Building your first Android game.
  • This tutorial will show you how to run the game on your Android device. Deploying your first Android game.
  • In this project we will put into practice the concepts we learned about variables and how to manipulate them. Game variables demo.
  • In this quick real project we will practice how to test for conditions using Java in an Android game project. Checking for conditions and branching demo.
  • Now we will put into practice different types of loop. loops demo.
  • Next we will play a sound on an Android device. We will see how we use the SoundPool class to load a sound from a file and then play it. Playing sound FX demo.

  • Finally for module 2 we will really harness the power of classes and objects by using classes from the Android API which allow us to draw graphics on the screen. Drawing graphics demo
It’s nearly time to make your first simple game!

COURSE PROGRESS IN TOTAL 15%

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

By the end of this module, you will have built some actual playable games. The first few will only be simple mini-games and a pong game but then you will build a version of the classic Snake game with achievements, high scores, and even Google Play leaderboards. The final topics of the module involve building a more flexible and advanced game engine and using it to implement Breakout and Space Invaders clones. To get to that exciting point we need to look at a little bit more Java theory.

  • Java arrays including how to manipulate them using a for loop.
  • Programming threads. What they are and how to use the Thread class in Android.
  • Java interfaces. Expertise here is not required, just a basic understanding.
  • Using simple Android user interface elements like TextView, Button and LinearLayout.
  • A much more thorough understanding of variables, loops and conditions to build a simple math quiz game and a Simon-style memory game.
  • Use threads, animation and collision detection techniques to build a simple Pong game.
  • A deeper knowledge of threads, interfaces, arrays OOP and Java in general in order to build a Snake game.
  • Understand how to manage delta-time in order to build a more advanced game engine and then implement a Breakout and a Space Invaders clone.

Building your first games

In this module, you get to build 6  games. From a simple math quiz button-clicker to a fully playable version of Space Invaders.

  • This tutorial will introduce you to the concept of Java arrays. Using Java arrays.
  • Next, find out about  programming threads.
  • The last bit of theory before you turn your hand to games. Read Using Java interfaces.
  • This is the first paid content of the course and it explores all aspects of Java in much greater depth as well as building two games using the Android user interface, a Pong game and a Snake game with some advanced features. Take a look at Learning Java by Building Android Games.

  • Having reinforced your Java knowledge and built your first games it is time to build a real-world (but simple)game engine. Check out how tobuild a simple game engine.
  • We can now use everything we have learned so far to build a Breakout game.
  • Let’s take things one step further and have living breathing, non-player-characters with a Simple Space Invaders game.
You are now well placed to move on to module 4 where you will build much more advanced games.

COURSE PROGRESS IN TOTAL 30%

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

With your new game engine knowledge and practice with the six games of the previous module you are ready to cover some much more advanced topics. First, you will see how to implement several new game features and then in the biggest project of the course so far, you will see how to use them all together in a full-featured 2D platform game. The final part of this module will take a quick look at what is to come in the final module by building an Asteroids game that uses OpenGL ES.

  • Implement a viewport.
  • Sprite-sheet animations to implement a simple walking character on screen from a single graphics file that holds all the frames of animation.
  • Implement multiple parallax scrolling backgrounds.
  • Collision detection with rectangle intersection, radius overlap and the crossing number algorithm.
  • Calculate headings and direction using the sin and cosine functions.
  • A simple space dodgem game using the new game engine.
  • Put all the new game techniques to use in a multi-level, multi-environment platform game.
  • 2D OpenGL ES and Shader programs through a version of the Asteroids arcade game.

Building your first games

In this module, you get to build 3 complete  games and multiple self-standing game features.

  • More introductory 2D OpenGL tutorials coming soon!
You are now well placed to move on to module 5 where you will get to build much more advanced games.

COURSE PROGRESS IN TOTAL 60%

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

Here is what you can expect to know by the end of the module.

  • Build particle systems for explosion and smoke effects.
  • Code a virtual (on-screen joystick)
  • Play music during the game
  • Build and animate custom dialog UI
  • Integrate your game with Google Play Services
  • Make your game compatible with Google TV

Getting Started with Java for Android

This module will up the skill level quite a bit. You can expect to spend a little bit longer studying compared to previous modules. It is likely, however that you will find it extremely rewarding. This modules content is contained entirely in the book Mastering Android Game Programming. You will learn to build a space shooter game with neat particle effects, Google Play integration, virtual-joystick control and background music.

  • Build particle systems for explosion and smoke effects.
  • Code a virtual (on-screen joystick)
  • Play music during the game
  • Build and animate custom dialog UI
  • Integrate your game with Google Play Services
  • Make your game compatible with Google TV


You are now well placed to move on to the final module and move your game programming into the third dimension!

COURSE PROGRESS IN TOTAL 80%

android-game-programming-course-beginner-to-developer-banner

Required knowledge to skip module:

Here is what you can expect to know by the end of the module.

  • Initialize OpenGL
  • Add colors and shading
  • Play music during the game
  • Handle 3D projections
  • Learn to respond to touch interaction
  • Make a fully playable 3D air hockey game

Getting Started with Java for Android

Good OpenGL information can be hard to find. As you read this book, you’ll learn each new concept from first principles. You won’t just learn about a feature; you’ll also understand how it works, and why it works the way it does. Everything you learn is forward-compatible with the just-released OpenGL ES 3.

  • Initialize OpenGL
  • Add colors and shading
  • Play music during the game
  • Handle 3D projections
  • Learn to respond to touch interaction
  • Make a fully playable 3D air hockey game


More modules soon!

COURSE PROGRESS IN TOTAL 100%