Building a 3D Game with LibGDX

4.5 (2 reviews total)
By Sebastian Di Giuseppe
    Advance your knowledge in tech with a Packt subscription

  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies

About this book

LibGDX is a hugely popular open source, cross-platform, Java-based game development framework built for the demands of cross-platform game development. This book will teach readers how the LibGDX framework uses its 3D rendering API with the OpenGL wrapper, in combination with Bullet Physics, 3D Particles, and Shaders to develop and deploy a game application to different platforms

You will start off with the basic Intellij environment, workflow and set up a LibGDX project with necessary APIs for 3D development. You will then go through LibGDX’s 3D rendering API main features and talk about the camera used for 3D.

Our next step is to put everything together to build a basic 3D game with Shapes, including basic gameplay mechanics and basic UI. Next you will go through modeling, rigging, and animation in Blender. We will then talk about refining mechanics, new input implementations, implementing enemy 3D models, mechanics, and gameplay balancing.

The later part of this title will help you to manage secondary resources like audio, music and add 3D particles in the game to make the game more realistic. You will finally test and deploy the app on a multitude of different platforms, ready to start developing your own titles how you want!

Publication date:
August 2016


Chapter 1. Setting Up Your Development Environment

LibGDX's development is very powerful, and that is why we will set up a nice and stable structure to work with before jumping into the code and project structure. We will use IntelliJ IDEA to do most of our development for the simply because it's productive (and of course, there are few neat tricks to combine with LibGDX), though it's very common to use Eclipse for development too. There are other ways to set up a 3D game with LibGDX, but to start off this book; we will build the game with basic assets created by code. In this chapter, we will explain how to download and set up all the required tools to get you started with setting up an environment to build 3D games with LibGDX, and to work on desktop and Android platforms. Although LibGDX also builds for HTML (WebGL) and iOS, we won't cover these builds because they do not fit with our game, but they are as easy as the following documentation guidelines on the official site ( You will learn more about this in this chapter.

Assuming you know LibGDX, you already have the Java Development Kit (JDK) installed and the Android software development kit (SDK) updated (you need API 22 with the LibGDX version [1.6.4]); otherwise, a simple Google search will do. The steps are OS-free and we will use Windows to implement them.

We will cover the following topics in this chapter:

  • Downloading and installing IntelliJ IDEA

  • Setting up the LibGDX project and importing it to IntelliJ IDEA

  • Running and debugging the game


LibGDX 3D API overview

LibGDX is a Java cross-platform game development framework that released its first version in 2009. It lets you go as low-level as you want to and gives you direct access to all kinds of areas of development. It also comes with an OpenGL ES 2.0 and 3.0 wrapper interface, which is the one that lets us perform 3D development.

3D development with LibGDX already has a nice array of games under its belt already. The following screenshot shows a very popular game called Grandpa's Table, which is available on Android, iOS, and Amazon:

The following is a screenshot of an Android game named Apparatus:

The following screenshot is of the game Ingress, which is available on Android and iOS:

These are just a few of the most popular games out there.

We will not only cover as much as we can from this 3D API—to get the most of it and show a general structure for how to keep things organized and optimal—but also the use of other LibGDX tools to get the most of the framework too.


Downloading IntelliJ IDEA Community Edition

Download the latest version of IntelliJ IDEA Community Edition for Java developers from; it will suggest the download versions compatible with your current operating system. Select the version that best suits your operating system platform, which will either be 32-bit or 64-bit.

At the time of writing this book, IntelliJ IDEA Community Edition (14.1.4) is the latest version.


LibGDX project setup

At the time of writing this book, LibGDX was in version 1.6.4 and we will use that version. Download the setup app from and open it:

Set up your project name (ours will be called Space Gladiators) and package name (ours is com.deeep.spaceglad). Enter the game's main class name (ours is Core), set the destination path to your preferred directory, and point out the Android SDK directory location.

We will check the Desktop, Android, and iOS project, but leave out Html since we will use the Bullet physics API, which doesn't work on HTML because of the Google Web Toolkit (GWT) backend (for more information, check out

From Extensions, we'll select Bullet (Bullet physics API), Tools (Bitmap Font Generator [Hiero], 3D Particle Editor, and TexturePacker), Controllers (Controller Input API), and Ashley (Entity System API).

LibGDX comes, as you can see, with a lot of very useful tools that you should use for some time and explore them. We'll cover these selected APIs in some depth over the course of this book.

Click on Generate and wait. After it is done, open IntelliJ IDEA and click on Import Project. Go to your newly created project and look for a file called build.gradle, and IntelliJ will do everything else.


Basic use of IntelliJ IDEA with LibGDX

Running and debugging the app with IntelliJ IDEA is as simple as a click, but sometimes, we need to perform extra configurations on the IDE to avoid exceptions.

Running the Android app

Once IntelliJ is done with all the processes, the default app to run will be Android. To run it, click on the Bug or Play buttons to the right of the navigation bar:

Gradle will build and the Choose Device dialog will pop up, from which you'll choose the Android device on which you'll run the app (either an emulator or a physical device), for which you just have to plug in your device.

Running the desktop app

To run the desktop app we have to change the default configuration and add the desktop launcher:

  1. Click on android and select Edit Configurations; the Run/Debug Configurations dialog should pop up.

  2. Click on the + icon at the top left of it and select Application.

  3. Name it desktop. In the Main class field, select DesktopLauncher. For Working directory, go to your Android project and double-click the assets folder.

  4. Click on the Use Classpath of module field, select desktop, and then click on the OK button at the bottom.

Now instead of android at the top, you'll see desktop. You can run or debug with the two buttons to the right of it.



In this chapter, we introduced IntelliJ IDEA and its basic use; we also explained how to download and install it, and set up LibGDX Project for 3D work. We configured our work environment and launched the Android application into an actual device and the desktop application.

In the next chapter, we'll take the plunge to it and learn about LibGDX's 3D rendering API, perspective camera, 3D workflow, and more.

About the Author

  • Sebastian Di Giuseppe

    Sebastian Di Giuseppe started back in 2011 with Java game development and native Android development. With a huge passion, he spent a lot of time learning the different areas of game development, exploring programming areas, and creating prototypes of all kinds for several platforms. With a good plan for his improvement while having a full time job as an Android developer, he also spends a lot of time on the forum,, learning and making contacts. He joined forces with a graphic designer and a musician to peruse more professional tasks and updates on their work that led him to meet a team of developers who called themselves Deeep Games. With them, he took a step up and also learned project and product management. With time, he joined and consulted other game development teams on management and processes. He now works as a full-time project and product manager and you can see him hang out on the Indie Game Developers' Facebook group posting updates on prototypes, ideas, or recruiting for future projects. You check out his LinkedIn profile at or his Facebook profile at

    Browse publications by this author

Latest Reviews

(2 reviews total)
I ordered this book for my Russian friend. He is absolutely happy with it. He said it is a great example how to create a game from zero.
The book is good to begin with. Teach with an example to use 3d libgdx with ashley, bullet and blender.

Recommended For You

Book Title
Access this book and the full library for FREE
Access now