
Explore the course structure for Android game programming for beginners, including a Java refresher, breakout arcade game, Space Invaders, and core concepts like variables, conditions, loops, and methods.
Download Android Studio, install the software, and accept the license. Customize components and installation location, including the Android SDK and emulator, update to the latest versions, and launch Android Studio.
Create a new Android Studio project and learn about single-line and multi-line code comments, including // and /* */ as you begin learning Java.
Learn how to use variables in Java for games by declaring and initializing primitive types like int, String, float, long, and boolean, with meaningful names and naming conventions.
Learn to manipulate variables by declaring and initializing integers such as bonus multiplier and level number, using plus equals and multiplication, and viewing game score updates in the Android emulator.
Learn how to use conditions to make decisions in games by testing variables with if statements and operators in Java, controlling gameplay flow and AI.
Explore branching and conditional logic in Android game development, using if, else, and switch statements, including nested conditions, to decide actions like shooting, holding position, and taking prisoners.
Discover how loops in Java power Android game development, using while and for loops to repeat code, manage conditions, and break out when needed.
Learn how to structure code with Java methods, understand signatures, modifiers, return types and parameters, and see how calling methods and object oriented programming keep game projects organized.
Explore object oriented programming fundamentals, including classes, objects, and blueprints, and learn how encapsulation, inheritance, and polymorphism shape reusable code for Android game projects.
Create and configure your breakout arcade game project in Android Studio, explore assets and the manifest, and progressively code and run the game to see results on the emulator.
Create your first Android game by starting a new Android Studio project named breakout, with an empty breakout activity and generated layout, then locate the Java folder for code.
Explore how the Android activity class manages app lifecycle events, from create and start to pause, stop, and destroy, and tie these to pausing or restarting a simple breakout game.
Create a new Java class named BreakoutEngine in the project to serve as the breakout game's engine. Import android.view.SurfaceView, extend it, and generate a matching constructor.
Initialize a breakout engine in the BreakoutActivity class with screen width and height, then manage onCreate, onResume, and onPause for full-screen landscape gameplay.
Launch the Android emulator by selecting the Nexus 5 x86 and clicking play, then watch the operating system boot and reveal the game so far on a blank screen.
Explore how Android game threads run the main game loop separately to handle input, update game state, and render with a separate system thread.
Learn how interfaces enable using API code in Android game development by implementing runnable, using surface view, handling touch events, and applying polymorphism.
Implement a runnable thread for the breakout engine, wiring the run method and drawing with surface view, surface holder, canvas, and paint, with a private volatile playing flag.
Code and manage the main game loop by implementing a running thread, timing with system.currentTimeMillis, and adding update and draw methods to render objects while playing or paused.
Run the game by selecting your device and tapping the green player, then observe the blue screen redraw at 60 times a second; quitting stops the app and the thread.
Code and explain bat class as the player paddle, a rectangle built with Android's rect, initialized at bottom center, and updated by frame rate with left, right, or stopped states.
Declare and initialize a bat object in the breakout engine constructor, then draw it on the canvas and update its movement each frame based on touch-driven movement state.
Run the game to observe the bat in landscape mode, notice an artifact on screen, and see that tapping does not move it, then implement a fix.
Code the on touch event method to update the bat movement state on down, using the touch x-position to move left or right, and stop on up.
Run the game by clicking the green player to rotate to landscape; tap to move the bat left or right, and hold to slide until you lift your finger.
Defines a ball class using RectF for collision and drawing, with x and y velocity, a 10x10 size, random x velocity on bat hits, and update, reverse, and reset.
Declare and initialize the ball, update it each frame, and draw it, then add a restart method to reset its position at game start or after a life loss.
Run the game in the emulator by clicking the player to start, noting collision detection and velocity changes are not yet implemented; the ball bounces off the top and bat.
Instantiate a brick class in Java, computing left, top, right, and bottom from row, column, width, height, and padding to enable drawing and collision detection for many bricks.
Explore how Java arrays organize large sets of objects and scores, using int arrays, string arrays, and array of arrays to manage high scores and game data efficiently.
Declare and initialize a 200-brick array, fill it with bricks using nested loops over columns and rows, and draw only visible bricks on the canvas.
Run the game on the emulator to see orange bricks, keep the ball in play with the bat, make bricks disappear, and add sound effects after ball-brick and ball-wall collisions.
Paste the assets folder containing the sound effects into the project root using the operating system, not Android Studio, so the sounds are available for your Android game development.
Add sound effects by initializing a sample object and loading audio assets, then play them on collisions while tracking score and lives on-screen.
Run the game to preview the hud, verify the added text showing lives and status, and continue implementing collision handling to ensure the player doesn't bump into obstacles.
Implement collision handling between the ball and bricks by iterating each frame and using rectF.intersects to detect hits, then hide the brick, reverse the ball's velocity, and increase the score.
Implement collision handling between the ball and bat using the intersects method, then apply a random x velocity to launch the ball left or right and clear obstacles.
Implement ball-wall collision by reversing velocity at the bottom, top, left, and right edges, plus pixel bumps; deduct lives and restart when zero.
Learn to build a Space Invaders style game by reusing breakout project code, creating engine, player ship, bullet, invader AI, brick shelters, and collision detection with audio and graphics assets.
Create an Android Studio project for a space invaders game, add Space Invaders engine and entity classes, integrate assets and sound effects, and configure landscape full screen with manifest settings.
Extend surface view and implement runnable to run a Space Invaders style engine, manage bullets, invaders, shelters, sound, and level preparation in a responsive game loop.
Code the PlayerShip class and render it with a bitmap, tracking its x, y, and speed. Update movement per frame via touch input and draw the ship on screen.
Code the bullet class to manage x and y positions, direction, speed, and active state for collision detection and rendering in the Space Invaders engine. Implement shoot, update, and get impact point logic for player and invader bullets.
Handle touch input to move the ship left or right in the bottom eighth of the screen and fire bullets when touching above that area.
Code the invader class part 1 by building two bitmaps for arm flapping, managing position with x, y, length, height, and speed, and implementing update, drop, and random firing logic.
Code the invader class part 2 by building a 6 by 5 grid of invaders, updating, shooting, bouncing at edges, and rendering animated enemies with timed sounds.
Code defense bricks to form shelters for a space invaders game, calculating left and top positions from screen size, padding, and shelter numbers.
Identify and handle collisions between player bullets, invader bullets, invaders, bricks, and the player ship, update scores, manage lives, and reset levels to finish the game.
This video course is all about offering you a fun introduction to the world of game programming, Android, and the Java language using two fun, fully-playable games. These games are a retro Breakout/Arkanoid type game and the all-time classic, Space Invaders.