Introduction

There’s something special about games. The best games, the ones we remember, don’t just relieve our boredom from time to time. They teach us new things, stretch our brains, or make us feel happy, excited, and sometimes angry! Social games can even bring us closer to our friends and family. We all have games that we think of fondly, that added something to our lives. Now, with the advent of smartphones, we can carry that experience around in our pockets and purses.

I still remember when my parents hooked up our first video game, Pong, to the family television. At the time that luminescent “ball” traversing the blurry screen was the coolest thing I’d ever seen. I’ve played a lot of games on a lot of platforms in the intervening years, but when my friend Philip gifted me with the first Android phone, the G1, I was skeptical that it would make a very good gaming platform. Who wants to play games by staring at a tiny screen on a device whose primary function is to make phone calls? Then again, the iPhone had by that time already proven that people were not only willing to play games on their smartphones, they were absolutely ravenous for games on their smartphones.

When the Android market launched, it took a little while to get some traction. I developed and published some of the first games on the market, when not many other developers were flocking to the platform. The G1 was a clunky, first-generation device, they said. It’ll never compete with the iPhone, they said. Open platforms are never good for gaming, they said. Well, I was able to make enough games that generated enough income to let me develop for Android full-time. And the platform has come a long way in the meantime; now Google doesn’t have a problem attracting game developers.

When I was approached to write this book, I jumped at the chance to write about a subject that blends my two passions of gaming and programming. I’m guessing you share those passions as well, and want to make cool, compelling games. I’m going to help you make that happen.

Why You Need This Book

Obviously you want to make games for Android, but you may not know where to get started. You may not even have any programming experience — if you do, great! — but I don’t make too many assumptions about your level of experience. By default, Android apps are written in Java. All the examples in this book are also in Java, so it’s helpful, but not necessary, to have some working knowledge of Java. However, even someone with little or no experience should be able to work through this book.

By the end, you’ll have a good understanding of Android, two complete, working and playable games, and a solid foundation for developing and publishing your own games. Along the way, I also talk a bit about how you might get more downloads and actually make money from your games. If any or all of that interests you, this book is a great place to start.

Conventions Used in This Book

Code examples are all in the Java programming language. Android also uses XML files to define layouts and preferences in projects. I use a monospaced font to show examples of the content that lurks in these types of files. The idea is to set the examples apart from other text; they look like this:

System.out.println(“Hello”);

Java and XML are case-sensitive (it matters whether letters are capitalized), so be sure to capitalize letters in any code example from the book exactly as you see them. If you don’t, you’ll see compile errors in Eclipse.

URLs for websites will also appear in monospaced font

http://www.google.com

If you are ever confused about the contents of a given file in any of the projects discussed in this book, you can always refer to the actual source files here:

www.dummies.com/go/androidgameprogramming

Technical Considerations

To develop games for Android, you need a PC running a version of either Linus, Windows, or Mac OS that meets the requirements for both the Android SDK and the Java Development Kit (JDK). Both the SDK and JDK are freely available from their respective websites, where you can find more detail about specific system requirements:

http://developer.android.com/sdk

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Android also uses the Eclipse IDE (integrated development environment), which we will be using throughout this book. Installation of all this software is covered in Chapter 3.

As I stated earlier, a working knowledge of Java and XML are helpful, but not necessary. If you’re familiar with any high-level language and development environment, you should be fine. If not, you should still be able to work through the examples and put together workable games, but you’ll likely have a bit more of a tussle.

If you’re interested in developing for Android, you probably have an Android device, but you don’t necessarily need one. The Android SDK provides an emulator which lets you configure virtual devices to test your games without the actual hardware.

But testing playability without actual devices is not advised. Especially if you’re designing for multiple form factors, such as both phones and tablets, you’ll probably want to invest in at least a couple of test devices.

How This Book Is Organized

Android Game Programming For Dummies is divided into six parts. The following section describes the contents of each part.

Part I: Adopting the Android Gaming Mindset

Part I provides you with a history of Android and mobile gaming to this point in time. I contrast Android game development with other platforms and discuss its pros and cons. This part also helps you think through all the necessary decisions before you begin to program, including the basics of designing a mobile game for Android.

Part II: Starting to Program

Part II walks you through setting up your development environment and installing all the necessary frameworks and tools for building Android games. I show you how to create a simple Android project and run the resulting app on both virtual and real devices. I then walk you through the guts of an Android project to get a closer look at what all the pieces are and how they all fit together to make a game.

Part III: Making Your First Game: Crazy Eights

Part III involves making your first game, the two-player card game Crazy Eights. You create a title screen, load and display graphics, and implement UI elements such as buttons. You implement all the elements for a card game, including such tasks as loading, shuffling, and dealing a virtual deck of cards. You implement all the logic for playing cards and taking turns, and also conjure up a computer opponent to play against. By the end of this part, you’ll have a complete, playable card game for Android.

Part IV: Moving On to Your Second Game: Whack-a-Mole

Part IV shows you how to make a second complete game, Whack-a-Mole. I use a different approach than our first game that’s slightly more complex, but provides the additional rendering speed we need for real-time arcade games. I cover how to generate simple animations and how to load and play sounds in response to events in the game. I also show you how to store and retrieve data, allowing you to manage game states between sessions. By the end of this part, you’ll have a second complete playable game.

Part V: Managing Your Game in the Market

Part V discusses how to make money from your game, if that interests you. I also discuss the nuts and bolts of exporting and digitally signing your game for upload to Google Play. I walk you through the process of creating an uploadable application file, but also all the promotional resources you’ll need for the market listing. I then show you how to upload your game to the market and update it when it’s there.

Part VI: The Part of Tens

Part VI provides you with some handy resources to help you develop your own games while working through this book and moving beyond it. I discuss some intriguing open-source game projects that cover genres and approaches that the two sample games here don’t cover — such as side-scrolling platformers and word games. Then I point you to game engines you can leverage to save you lots of time, and point out some features like physics engines that handle chores like gravity and movement and would take months to implement otherwise. I also talk about free tools to help you create your own graphics and sound resources, as well as frameworks to help you promote and monetize your game.

Icons Used in This Book

tip.eps This icon indicates useful information you should pay attention to.

remember.eps This icon represents important overriding concepts that frame all the content in a particular section.

technicalstuff.eps This icon indicates information that dives a bit deeper into the technical aspects of a particular subject. Usually it’s not essential to your understanding of the associated material, but is provided to give you a better handle on the topic.

warning_bomb.eps This icon points out potential problems you might encounter when you’re dealing with a particular aspect of development. Pay particular attention to these and try to avoid these pitfalls when possible.

ontheweb_modern.eps These links connect you to valuable internet resources.

Where to Go from Here

Are you ready to start developing games for Android? I hope you enjoy the process as much as I enjoyed putting this book together for you. I tried my best to make the subject informative and entertaining, but if you have any additional questions, you can contact me via e-mail at [email protected]. If there are updates, they’ll be posted at

www.dummies.com/go/androidgameprogrammingfordummies

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset