Android Game Development Tutorial – Simple 2d Game Part 1

Hello developers, I decided to post this Android Game Development Tutorial. In this Android Game Development Tutorial we are going to create a simple 2d game using android studio. We will not be using any third party …

android game development tutorial

Hello developers, I decided to post this Android Game Development Tutorial. In this Android Game Development Tutorial we are going to create a simple 2d game using android studio. We will not be using any third party library or game engines for this android game development tutorial. So lets begin.

Android Game Development with Unity

In this tutorial we are using Android Studio, and really that is not how actual games are build in the industry. If you are really serious about Mobile Game Development, and want to become a professional, or want to start your career in Game Development Industry; then you must learn some Game Engines. And the best Game Engine to start as a Student is Unity. It is one of the most popular Game Engines. It is also free. And I have a Complete Free Course about building Android Games with Unity. Check it out Here.

But if you are just casual learner and just want to learn some basics with Android Studio, keep reading the post. 

Planning the Game Story

Every game start with a story. So you need to think. Not actually 😛 because I have already decided what we will be creating.

So In our game there will be a Space Jet, and the jet has to kill the enemies by hitting them. There will also be some good guys and our Space Jet should not kill them. So basically if our Space Jet  touches other character that will be destroyed. So we have to only kill the enemies.

The Game Rules

  • Player ship has to kill the enemies by colliding with them.
  • If player lets 3 enemies to go safely then the game is over.
  • If player kills a good guy the game is over.

Android Game Development Tutorial

We have decided the game story and the rules. Now its time to create the game. We will use Android Studio. And I am assuming all of you got Android Studio and know the basics of it.

Android Game Development Tutorial – Video Demo

Before going ahead in this tutorial you can check out this video to know what you will get at the end of this Android Game Development Tutorial part 1.

Android Game Development Tutorial – Live Demo

You can also download the apk for this part of Android Game Development Tutorial from the link given below.

Download APK

Download the Images Used

You can design and create your own character using Adobe Photoshop or other photo editing program. But if you don’t want to do it yourself you can download the images I used in this project from the link given below.

Android Game Development Images Download

Creating a New Project

  • Open Android Studio and create a new project.
  • Once the project is loaded you will get MainActivity.java and activity_main.xml
  • First paste all the images that you downloaded inside the drawable folder of your project.

Designing the Start Screen

android game development tutorial

  • Above you can see the first screen of the game. It has a nice background image with two ImageButtons. You already downloaded the images used in this screen.
  • As you can see it is a full screen activity. So to make your application full screen, you need to go res->values->styles.xml and modify it as the following code.

  • Inside activity_main.xml write the following xml code.

  • When we tap the Play Now button our Game Activity will start.
  • Now come inside MainActivity.java and write the following code.

  • Now you need to create a new activity named GameActivity. To create a new activity right click on the package name -> new -> activity -> empty activity

Building Game View

Now its time to build our Game View. We will be using SurfaceView for building our game view. Surfaceview provides a dedicated drawing surface.

  • Create a new class named GameView and write the following code.

  • The above class is our GameView class. It is the actual game panel where we will play the game. The class is implementing Runnable interface. We have a volatile boolean type variable running that will track whether the game is running or not. After that we have our gameThread, it is the main game loop. Then we have the constructor to the class. We are not doing anything inside the constructor right now. Then we have the overriden method run(), here we are running a loop until the playing variable running is true.  Inside the loop we are calling the following methods.
    update() -> Here we will update the coordinate of our characters.
    draw() -> Here we will draw the characters to the canvas.
    control() -> This method will control the frames per seconds drawn. Here we are calling the delay method of Thread. And this is actually making our frame rate to aroud 60fps.
    After these we have two more methods.
    pause() -> To pause the game, we are stopping the gameThread here.
    resume() -> To resume the game, here we are starting the gameThread.

Adding GameView to GameActivity

  • After tapping the play now button we are launching the GameActivity. We will set our GameView to the content of this activity. So go to GameActivity.java and  modify the code as below.

I will be adding the comments only above the new code added so that you can understand what is new in this code so that you can modify your code easily.

Creating Player

  • Create a new class Player inside your package and write the following code.

  • The above code is very easy to understand. I have written comments to explain everything. So lets move ahead.

Drawing Player to GameView

  • To draw the player to our GameView you need to come back to the GameView.java class and modify it as below.

  • Now try executing your application. Put your emulator in landscape mode. When you tap the play now button in the first activity you will see the moving Space Jet as shown below.
android game development tutorial
Android Game Development Tutorial

If you are getting the output as shown in the above image then Hurray!. You might have got the concept about drawing images in canvas using SurfaceView. And the movement is the magic of the coordinates. We are changing the x coordinate so it is moving horizontally ahead.

Now lets add control to our Space Jet.

Adding Controls

We will now add control to the player’s Space Jet. When the player will tap on the screen the Space Jet will boost up and after releasing the screen the Space Jet will boost down. The movement is inspired by the most popular game Flappy Bird.

To add this control we will need to detect touches of the screen. So lets begin.

  • Come inside GameView.java file and override the method onTouchEvent().

  • Currently we need these two events only which are ACTION_UP and ACTION_DOWN.  What we need to do is we need to boost up the Space Jet on ACTION_UP and boost down the Space Jet on ACTION_DOWN.

Adding Booster to Space Jet

Now we will add the booster to our Space Jet so that our player can control the Space Jet. Follow these steps to do this.

  • Modify the code of Player.java file as follows.

  •  We also need to detect the size of screen so go inside GameActivity.java file and add the following code inside onCreate().

  • In the above code we are passing screen size to GameView constructor, so we also need to change the GameView constructor. So change the GameView constructor as follow.

  • In the above code you can see we are passing the screen size to player constructor. So again we also need to modify the Player class constructor.

  • Now to complete adding the boosters come inside GameView.java file and modify the onTouchEvent() as follows.

Now execute your application again to test the boosters. If it is working fine then you can move ahead.

Adding Background Stars

Now we will add background stars to make the background looks animating.

  • Now come inside GameView.java and modify it as follows.

  • Now execute your app again. You will see a infinite scrolling background this time as shown in the following image.
android game development tutorial
Android Game Development Tutorial

Adding Enemies

So far in this Android Game Development Tutorial, we have added our player, we added an infinite scrolling background. We also added controls to our player. Now we need to add some enemies. So lets start coding the enemies.

  • Create a new java class named Enemy and write the following code.

  • We need to add the enemies in the GameView now. So come inside GameView.java and modify the code as follows.

  • Execute your application again and you should see the following output.
android game development tutorial
Android Game Development Tutorial

So we are almost done at this part of the Android Game Development Tutorial. Only the last thing is left. When our Space Jet touches the enemy, the enemy ship should blast. So we need a blast image and you already got it inside your drawable folder. To show the blast image we need to detect the collision between the player and enemy jet. So lets do this.

Detecting Collision

  • To detect collision we will use Rect object. So come inside Enemy class modify the code as follows.

  • The same thing you need to do inside the Player.java file.

  • Now to complete the collision detection, again to inside GameView.java file and modify the update() method as follows.

  • Again execute the app. You should see the enemies getting hidden after collision. Now after collision we will show a blast image for a fraction of second to make it look like destroying.

Adding Blast Effect

Now we are at the last phase for this part of this Android Game Development Tutorial. We need to display a blast effect after collision.

We already have a blast image inside the drawable folder. We will use that image to display for a fraction of second after the collision. So follow the following step.

  • Create a new java class named Boom and write the following code.

  • Now again come inside GameView.java file and modify the code as follow.

  • Now again execute the application and you will see a blast effect on collision.
android game development tutorial
Android Game Development Tutorial

Bingo! it is working absolutely fine. You can download my source code if having any troubles or confusion. Unlock the download link to get the source code of this Android Game Development Tutorial from below.

Android Game Development Part 1 – Source Code Download 

Android Game Development Tutorial – Summary

It is a really simple and small game we are creating in this Android Game Development Tutorial. This Android Game Development Tutorial is a two part series. This is the first part. In this part of this Android Game Development Tutorial we learnt:

  • SurfaceView implementation
  • Drawing Characters on Canvas using SurfaceView
  • Creating an Infinite Scroll Background Loop
  • Detecting Collision
  • Adding Controlls

In the next part -> Android Game Development Tutorial Part 2,  we will finally complete this game by adding some text displaying high score and other game values. We will also add a game over option and some sound effects.

Android Game Development Tutorial – Final Words

So thats all for this Android Game Development Tutorial friends. This is a really long tutorial. Probably the longest one I’ve posted so far. So try it carefully. And share it among your friends if you liked this Android Game Development Tutorial. Thank You 🙂

Hi, my name is Belal Khan and I am a Google Developers Expert (GDE) for Android. The passion of teaching made me create this blog. If you are an Android Developer, or you are learning about Android Development, then I can help you a lot with Simplified Coding.

Expand Your Knowledge: Next Tutorial Picks

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x