Book description
Get ready for a fun-filled experience of learning Java by developing games for the Android platform
Key Features
- Learn Java, Android, and object-oriented programming from scratch
- Build games including Sub Hunter, Retro Pong, Bullet Hell, Classic Snake, and a 2D Scrolling Shooter
- Create and design your own games, such as an open-world platform game
Book Description
Android is one of the most popular mobile operating systems presently. It uses the most popular programming language, Java, as the primary language for building apps of all types. However, this book is unlike other Android books in that it doesn't assume that you already have Java proficiency.
This new and expanded second edition of Learning Java by Building Android Games shows you how to start building Android games from scratch. The difficulty level will grow steadily as you explore key Java topics, such as variables, loops, methods, object oriented programming, and design patterns, including code and examples that are written for Java 9 and Android P.
At each stage, you will put what you've learned into practice by developing a game. You will build games such as Minesweeper, Retro Pong, Bullet Hell, and Classic Snake and Scrolling Shooter games. In the later chapters, you will create a time-trial, open-world platform game.
By the end of the book, you will not only have grasped Java and Android but will also have developed six cool games for the Android platform.
What you will learn
- Set up a game development environment in Android Studio
- Implement screen locking, screen rotation, pixel graphics, and play sound effects
- Respond to a player's touch, and program intelligent enemies who challenge the player in different ways
- Learn game development concepts, such as collision detection, animating sprite sheets, simple tracking and following, AI, parallax backgrounds, and particle explosions
- Animate objects at 60 frames per second (FPS) and manage multiple independent objects using Object-Oriented Programming (OOP)
- Understand the essentials of game programming, such as design patterns, object-oriented programming, Singleton, strategy, and entity-component patterns
- Learn how to use the Android API, including Activity lifecycle, detecting version number, SoundPool API, Paint, Canvas, and Bitmap classes
- Build a side-scrolling shooter and an open world 2D platformer using advanced OOP concepts and programming patterns
Who this book is for
Learning Java by Building Android Games is for you if you are completely new to Java, Android, or game programming and want to make Android games. This book also acts as a refresher for those who already have experience of using Java on Android or any other platform without game development experience.
Table of contents
-
Learning Java by Building Android Games - Second Edition
- Table of Contents
- Learning Java by Building Android Games Second Edition
- Contributors
- Preface
-
1. Java, Android and Game Development
- What's new in the second edition?
- Why Java, Android and Games?
- The games you will build
- How Java and Android work
- Setting up Android Studio
- Starting the first project: Sub' Hunter
- Android Studio and our project – A very brief guided tour
- Locking the game to full-screen and landscape orientation
- Deploying the game so far
- Summary
- 2. Java: First Contact
- 3. Variables, Operators and Expressions
- 4. Structuring Code with Java Methods
- 5. The Android Canvas Class – Drawing to the Screen
- 6. Repeating Blocks of Code with Loops
- 7. Making Decisions with Java If, Else and Switch
-
8. Object-Oriented Programming
- Basic Object-Oriented Programming
- Looking at the code for a class
- Basic classes mini-app
- Remember that encapsulation thing?
- Encapsulation and static methods mini-app
- OOP and inheritance
- Inheritance mini-app
- Polymorphism
- Starting the Pong game
- Summary
-
9. The Game Engine, Threads, and The Game Loop
- Coding the PongActivity class
- Coding the PongGame class
- Coding the PongGame class
- The game loop
- Threads
-
Implementing the game loop with a thread
- Implementing Runnable and providing the run method
- Coding the thread
- Starting and stopping the thread
- Activity lifecycle
- A simplified explanation of the Android lifecycle
- Lifecycle phases: What we need to know
- Lifecycle phases: What we need to do
- Using the Activity lifecycle to start and stop the thread
- Coding the run method
- Running the game
- Summary
- 10. Coding the Bat and Ball
- 11. Collisions, Sound Effects and Supporting Different Versions of Android
- 12. Handling Lots of Data with Arrays
- 13. Bitmap Graphics and Measuring Time
- 14. The Stack, the Heap, and the Garbage Collector
- 15. Android Localization -Hola!
- 16. Collections, Generics and Enumerations
- 17. Manipulating Bitmaps and Coding the Snake class
-
18. Introduction to Design Patterns and much more!
- Introducing the Scrolling Shooter project
- Game programming patterns and the structure of the Scrolling Shooter project
- Starting the project
- Controlling the game with a GameState class
- Giving partial access to a class using an interface
- Building a sound engine
- Testing the game so far
- Building a HUD class to display control buttons and text
- Building a Renderer class to handle the drawing
- Using the HUD and Renderer classes
- Running the game
- Summary
- 19. Listening with the Observer Pattern, Multitouch and Building a Particle System
-
20. More Patterns, a Scrolling Background and Building the Player's ship
- Meet the game objects
- The Entity-Component pattern
- The Simple Factory pattern
- Summary so far
- The object specifications
- Coding the component Interfaces
- Coding the player's and the background's empty component classes
- Every GameObject has a transform
- Every object is a GameObject
- Completing the player's and the background's components
- Building the GameObjectFactory
- Coding the Level class
- Putting everything together
- Running the game
- Summary
- 21. Completing the Scrolling Shooter Game
-
22. Exploring More Patterns and Planning the Platformer Project
- Platform Game: Bob Was in A Hurry
- How we will build the platformer
- Getting started with Bob was in a hurry
-
Specifying all the game objects with GameObjectSpec classes
- GameObjectSpec
- BackgroundCitySpec
- BackgroundMountainSpec
- BackgroundUndergroundSpec
- BrickTileSpec
- CartTileSpec
- CoalTileSpec
- CollectibleObjectSpec
- ConcreteTileSpec
- DeadTreeTileSpec
- FireTileSpec
- GrassTileSpec
- LamppostTileSpec
- MoveablePlatformSpec
- ObjectiveTileSpec
- PlayerSpec
- ScorchedTileSpec
- SnowTileSpec
- SnowyTreeTileSpec
- StalactiteTileSpec
- StalagmiteTileSpec
- StonePileTileSpec
- Summary of component classes
- Coding the component interfaces
- Coding the other interfaces
- Summary
-
23. The Singleton Pattern, Java HashMap, Storing Bitmaps Efficiently and Designing Levels
- The Singleton pattern
- More Java Collections – Meet Java Hashmap
- The memory problem and the BitmapStore
- Coding the basic transform
- Coding the inanimate and decorative components
- Create the levels
- Coding a stripped down GameObjectFactory
- Coding a slightly commented-out game object
- Coding the GameState
- Code the SoundEngine
- Coding the physics engine (without collision)
- Coding a Renderer
- Coding the camera
- Coding the Hud
- Coding the UIController class
- Code the Activity
- Code the GameEngine
- Coding the LevelManager class
- Running the game
- Summary
- 24. Sprite-sheet animations, Controllable Player and Parallax Scrolling Backgrounds
- 25. Intelligent Platforms and Advanced Collision Detection
- 26. What next?
- Index
Product information
- Title: Learning Java by Building Android Games - Second Edition
- Author(s):
- Release date: August 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788839150
You might also like
book
Learning Java by Building Android Games - Third Edition
Get ready to learn Java the fun way by developing games for the Android platform with …
book
Java Game Development with LibGDX: From Beginner to Professional
Learn to design and create video games using the Java programming language and the LibGDX software …
book
Beginning Android Games Development: From Beginner to Pro
Do you have an awesome idea for the next break-through mobile gaming title? This updated edition …
book
Learn Java for Android Development: Migrating Java SE Programming Skills to Mobile Development
Gain the essential Java language skills necessary for using the Android SDK platform to build Java-based …