4.1 out of 5
160 reviews on Udemy

Android Game Development for Beginners – Learn Core Concepts

Learn Android Game Development with Android Studio and Java by making a complete Plane Shooter game in View
Sandip Bhattacharya
7,516 students enrolled
You'll be able to build a complete 2D game in less than 3 hours.
You'll have a clear understanding of the core concepts behind a 2D game.
You'll be able to brush-up your Java skills.
You'll be able to create different levels for your game.
Monetize your app through Google Admob and start getting some revenue.

Hi, and welcome to my course Android Game Development for Beginners. I am Sandip, and I’ll be guiding you through the process of creating your very own Android games, using Android Studio and Java. Sound exciting? Let’s get started.

******* Some Amazing Reviews From Our Learners *******

★★★★★ i find this course simple but very clear and effective. good job!

★★★★★ Course delivers on what it advertises. Quickly and easily explains essential functionality for android game development.

★★★★★ Great course, I found the format worked really well and Sandip was really quick to respond when I had a question. I already have some basic android development knowledge but I had never made a game before, now I’m confident I can start making my own games.

★★★★★ Very useful. I have been searching for weeks to find a good OOP course. Sandip shows how to implement the app first then moved into OOP so you can understand the differences.

★★★★★ So clear for step by step, cheers!

★★★★★ Great course, i had lots of fun learning about android development. I am working on my very own app at the moment. Instructor is willing to help you if your stuck.

★★★★★ I got the opportunity to know how to build a game and truly speaking it was amusing The instructor made the tutorial easy and attractive

★★★★★ Hello, I loved the course as it was well demonstrated with practical point of view. It is must for every beginner in android game development. Loved it. Will be waiting for more!!

******* Course Overview *******

This course will introduce some key elements of game programming. I will be covering basic XML Layout designing, Frame by Frame Animation, Object Oriented concept for Animation, detecting Touch Event and Collision, showing Score and Health Indicator. Score is displayed in GameOver screen once the game is over. From the GameOver screen, you can either Restart the game or Exit from it. I will show you how you can save your personal best score using Android SharedPreferences class. I believe the best way to learn game programming is by making one. So, I will walk you through the process of creating a complete Android game, from start to finish, step by step in a completely hands-on fashion, sharing some super useful resources along the way. As we move on, we will be creating a small but complete game called “Plane Shooter”. I’ll show you step-by-step how to Create Different Levels for your game and add features like changing game background and increasing the speed of the Planes for every succeeding level to make your game more interesting and fun, in the easiest way possible. This course improves your problem-solving ability as I invite you to find the solution yourself so that you can think and solve your coding problems like a pro. I am also available to support you along the way as much as I can. I’ll do the heavy lifting for you so that you can have an enjoyable learning experience and focus on implementing the game features that you want. This course doesn’t stop here. I’ll demonstrate step-by-step how to monetize your app through Google AdMob Banner and Interstitial ads so that you can start getting some revenue. You can download all the project source codes once you purchase this course which you’re free to use for your personal work. As a motivation for you, I’ve included few real apps made by my students with some help from this course (and/or my other android game development course titled Android Game Development – Create Your First Mobile Game). Isn’t it amazing?

Whether for fun or for profit, developing Android games can be very rewarding, both personally and professionally. You can make your own games for fun, to show off your friends and family. You may have been curious about how to make a game. A game that you build yourself and publish can be a great experience and can enrich your life. Either way, you need to have a solid knowledge of game development fundamentals and the skills required to make your Android game a reality.

Why Android for making games? Because you will find Android to have a larger amount of players available, bringing more downloads and engagements in your app. Getting your app to big success is greatly dependent upon its exposure. Putting it in the Android mainstream market Google Play is one way to do that.

Join me on this exciting journey to become an Android Game Developer. Hit the Enroll Button!

Introduction to Android Game Development

Introduction to the Course
Which programming language to choose?

Are you confused about choosing a programming language for making Android apps and games?

In short, as a pro, it's completely up to you to choose which better suits your needs depending upon your specific requirement of the project. But as a beginner, you can choose Java for obvious reasons.

Whether for fun or profit, developing Android apps and games can be rewarding, both personally and professionally. You can make your apps for fun, to show off your friends and family or you may be serious about starting your career as a game developer. A game that you build yourself and publish on Play Store can be a great learning experience and can enrich your life either personally or professionally. Either way, you need to have a solid knowledge of app development fundamentals and the skills required to make your Android app or game a reality. But why Android? Because you probably found that Android has a larger amount of users available worldwide. Most smartphones, tablets, phablets, and other devices today use Google Play Store as well as the Amazon Store which is Android based. Exposure is super important for any app to get more downloads by users. Putting it in the Android mainstream market is one way to do that.

But you may be still confused about what programming languages do you need to learn? When it comes to choosing a language, the first and the most preferred option for an Android app is Java, the official language of Android Development and the default language as well. It is the one that most apps on the Google Play Store are built with. Large parts of Android are already written in Java and its APIs are designed to be called primarily from Java. Kotlin is relatively recent and another official language (in addition to C++, primarily used to build APIs or libraries and it's usage is limited in nature) for Android. A lot of games’ engines are made directly with C/C++. To let developers make an optimized part of codes in C/C++, Google offers the Android Native Development Kit or NDK which allows developers to write code in C/C++ that compiles to native code. You can also use Java Native Interface or JNI with NDK. What is JNI? JNI is the Java Native Interface. It defines a way for the bytecode that Android compiles from managed code written in Java or Kotlin to interact with native code written in C/C++. But, it may be cumbersome at times. You can find more information on JNI here and here. The primary difficulty is that JNI is limited on Android and it's relatively slow, and there may be some hard limits imposed at the kernel level. Now, as another alternative, you can also use Flutter - dart language. Flutter is an open-source mobile application development framework created by Google and is used to develop applications for Android and iOS. The companies who are looking for cross-platform solutions can use Flutter. It's also a good thing to know. But, as I said earlier, if you’re new to mobile app development, I’d recommend you to try native app development before jumping onto Flutter because, for a novice, it has a sharper learning curve. In the same way, I recommend making simple games on native android View or SurfaceView class first before jumping into Unity, Unreal, etc. Java has been around longer, so you can find more sample code and tutorials online. And the best thing is Kotlin is similar to Java and sits alongside Java. You can find more on the official site here.

I think language doesn't matter most. The important thing to learn is the development patterns or programming paradigm in a greater sense. Take Object Oriented programming for example. It's really important to understand this because both Java and Kotlin are OOP languages. It's super important that the beginner understands this object oriented programming paradigm first, why we use object-orientation, what is Object, what is a Class, the concept of Abstraction, Encapsulation, Inheritance, Polymorphism and many more to be able to write clean code. If you're curious about learning the OOP paradigm i.e the Object Oriented Programming Fundamentals, Android Games Development with android native View or SurfaceView class, SQLite programming in Android, jQuery for web development, or programming in general, you are welcome to check out or subscribe to my YouTube channel here.

This is the same reason I always say, you should learn to make an android game using Android native View or SurfaceView class before you jump into any framework like Unity, Unreal Engine or Buildbox for example. But, I am not against using it.

Now, learning new development patterns in Java can be accomplished much more quickly than learning a new language. Java has been around for so many years, we can find more solutions and tutorials online, for example, on StackOverflow, Quora, and Wikipedia, which we all use every day. Right? The great thing about Kotlin is its similarity in syntax and interoperability with java meaning we can write code in Kotlin within Java code and vice versa. Anyone can find that on the official site.

According to the official site, "Android Studio 3.0 and later supports all Java 7 language features and a subset of Java 8 language features that vary by platform version. Android Studio does not support all Java 8 language features, but more are being added in future releases of the IDE. " More on this link.

Now, if you want to use lambdas, one of the major features of Java 8 in Android, you can use gradle-retrolamba. It's a gradle build dependency that integrates retrolambda, a tool that converts Java 8 bytecode back to Java 6/7. If you set the compiler in Android Studio to compile Java 8 bytecode, thus allowing lambdas, it'll convert it back to Java 6/7 bytecode which then, in turn, gets converted to dalvik bytecode. It's a hack for if you want to try out some JDK 8 features in Android instead of official support. Maybe this StackOverflow link will give more insight into that.

And Java 9, 10, 11, 12 doesn't add any significant value as Java 8 did, one being lambdas, which Android can handle now. Also, note that there are lots of experimentation going on for 11,12 and should not be used.

Kotlin has it all like an amazing set of standard libraries, extension function, supports functional programming all are good. But so has Java. For Java, the compiler is not backward compatible, but the JVM is, as it can run older bytecodes. Both have an amazing set of libraries. According to Wikipedia, not all languages implement extension methods in an equally safe manner. For instance, languages such as C#, Java, and Kotlin don't alter the extended class in any way, doing so may otherwise break class hierarchies and interfere with virtual method dispatching. This is why these languages strictly implement extension methods statically and use static dispatching to invoke them. Eric Lippert, a principal developer on the C# compiler team, says "Extension methods certainly are not object-oriented. According to a Quora post, Java supports "Functional Style Programming" with Lambdas not "Functional Programming". Functional programming is a wholly different paradigm and traditional OOP based programming languages lack functional features in one way or another. Features like these probably don't make it more efficient than the other, though it can improve the productivity of developers during coding and debugging to some extent and both Java and Kotlin support that. In the case of Kotlin, reducing Boilerplate code (or less code) is only good once the programmer understands why he used it in the first place. Java uses that for a reason and there is meaning in it, not just code.

Finally, I can conclude with, as a professional, it's completely up to you to choose which better suits your needs depending upon your specific requirements or features of the app. But as a beginner, I think it's better to use Java for a few more years to come, understand the OOP paradigm deeply while having an eye on Kotlin. Again, I am not against Kotlin, I would love to see Kotlin grow to be able to use it soon.

If you're curious about Android apps and games development, check out or subscribe to my YouTube channel here.

I promise it will be fun and I am personally here to help!

That's it. Hope that helps. Happy learning!

Important Update: Must read before you proceed!

Creating a project in Android Studio

Create the Project
Game Resource

Frame-by-Frame Animation

Frame-by-Frame Animation - A high-level overview
Set a background image for Canvas
Make the background image fully fit the Canvas
Make the Plane move

Object Oriented Animation Technique

Do it Object Oriented way
Add another Plane

More Development

Draw the tank
Get Touch Event
Fire the Missiles when tank is touched

Collision Detection

Collision detection

Add more fun to this game

Add sound effects
Add score
Add health indicator
Create a cool explosion effect

Game Over

Design the GameOver screen
It's GameOver
Monetize your app with Google Admob
Idea for Creating Game Levels

Course Wrap-Up

Bye for now
Bonus Lecture
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.1 out of 5
160 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
Course available for 2 days
30-Day Money-Back Guarantee


2 hours on-demand video
6 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion

External Links May Contain Affiliate Links read more

Join our Telegram Channel To Get Latest Notification & Course Updates!
Join Our Telegram For FREE Courses & Canva PremiumJOIN NOW