Book Image

Building a 3D Game with LibGDX

Book Image

Building a 3D Game with LibGDX

Overview of 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!
Table of Contents (12 chapters)

Camera techniques


The goal of this book is to successfully create a shooter game, as stated earlier. In order to achieve this, we will start with the basics: making a simple first-person camera. We will facilitate the functions and math that LibGDX contains.

Since you have probably used LibGDX more than once, you will be familiar with the concepts of the camera in 2D. The way 3D works is more or less the same, except there is a z axis now for the depth. However, instead of an OrthographicCamera class, a PerspectiveCamera class is used to set up the 3D environment. Creating a 3D camera is just as easy as creating a 2D camera. The constructor of a PerspectiveCamera class requires three arguments: the field of vision, camera width, and camera height. The camera width and height are known from 2D cameras, the field of vision is new.

The initialization of a PerspectiveCamera class looks like this:

float FoV = 67; 
PerspectiveCamera camera = new PerspectiveCamera(FoV,  Gdx.graphics.getWidth...