Monday, December 28, 2015

Book Published! Beginning Java Game Development with LibGDX

I've written a book called Beginning Java Game Development with LibGDX, published by Apress, and available here:

Here's what the book is about (quoted from the introduction):
In this book, you’ll learn how to program games in Java using the LibGDX game development framework. The LibGDX libraries are both powerful and easy to use, and they will enable you to create a great variety of games quickly and efficiently. LibGDX is free and open-source, can be used to make 2D and 3D games, and integrates easily with third-party libraries to support additional features. Applications created in LibGDX are truly cross-platform; supported systems include Windows, Mac OS X, Linux, Android, iOS, and HTML5/WebGL. 
I have taught courses in Java programming and video game development for many years, and I’ve often struggled to find game programming books that I can recommend to my students without reservation, which led me to write this book. In particular, you will find that this book contains the following unique combination of features, chosen with the aspiring game developer in mind:
  • This book recommends and explains how to use a simple Java development environment (BlueJ) so that you can move on to programming games more quickly.
  • By using the LibGDX framework, you won’t have to “reinvent the wheel” for common programming tasks such as rendering graphics and playing audio. (An explanation of how to write such code from scratch could easily require fifty or more additional pages of reading.) LibGDX streamlines the development process and allows you to focus on game mechanics and design.
  • This book contains many examples of video games that can be developed with LibGDX. The first few example projects will introduce you to the basic features provided by the framework; these starter projects will be extended in the chapters that follow to illustrate how to add visual polish and advanced functionality. Later projects will focus on implementing game mechanics from a variety of genres: shoot-’em-ups, infinite side scrollers, drag-and-drop games, platform games, adventure games with a top-down perspective, and 2.5D games. I believe that working through many examples is fundamental in the learning process; you will observe programming patterns common to many games, you will see the benefits of writing reusable code in practice, you will have the opportunity to compare and contrast code from different projects, and you will gain experience by implementing additional features on your own.
  • At the beginning of this book, I am only assuming that you have a basic familiarity with Java programming. (Details about what background knowledge you need are discussed in the appendix.) Throughout the first few chapters of this book, advanced programming concepts will be introduced and explained as they arise naturally and are needed in the context of game programming. By the time you reach the end of this book, you will have learned about many advanced Java programming topics that are also useful for software development in general.
And here are some screenshots of some of the many games and demos you'll create in the book:

Cheese, Please!
Balloon Buster
Starfish Collector
Space Rocks - inspired by Asteroids
Plane Dodger - inspired by Flappy Bird
Rectangle Destroyer - inspired by Breakout
52 Card Pickup
Starscape - a particle effects demo
Jumping Jack - a sandbox style physics demo
Jumping Jack 2 - a platformer game
Treasure Quest - a top-down adventure/rpg style game
Pirate's Cove - an interactive 3D (2.5D) demo

Interested? Check it out at:!