Master LibGDX Java Game Development and Beyond Volume One
4.5 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
496 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Master LibGDX Java Game Development and Beyond Volume One to your Wishlist.

Add to Wishlist

Master LibGDX Java Game Development and Beyond Volume One

Learn how to develop and design games with LibGDX Java Game Framework using practical examples
4.5 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
496 students enrolled
Created by Goran Lochert
Last updated 5/2017
Curiosity Sale
Current price: $10 Original price: $100 Discount: 90% off
30-Day Money-Back Guarantee
  • 26 hours on-demand video
  • 6 Articles
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • How to easily create your own games
  • SUPPORT is mind blowing – questions you have are answered that day
  • Understand how LibGDX works
  • Use Java to solve complicated programming problems
  • Advanced tips and tricks used by the pros
  • Understand different techniques of game development and find what technique is best for your next game
  • Make games from scratch using LibGDX Framework
  • Understand how to create professional User Interfaces using Scene2D API
  • Understand how to create reusable components for future game development
  • Understand asset loading and master asset management
  • Understand basics of data oriented design
  • Understand how to create and use bitmap fonts
  • Understand how to create reusable components for future game development
  • Understand Entity Component Systems
  • Advanced tips and tricks used by the pros
  • Understand how to use Ashley Libgdx extension to develop games
  • Understand what are Entities, Components, Systems
  • Understand how to create useful utilities which help to debug your game
  • Understand how to embed LibGDX window into Java desktop application
  • Understand how to write clean and maintainable code
  • Understand some software engineering principles
  • Use gained skills to create new games from scratch
  • Learn how to write code in reusable way
  • Learn how to reuse code from your previous games
View Curriculum
  • At least some basic Java programming knowledge and basic Object Oriented knowledge

Course Updated 18. May 2017.

Student Reviews For Master LibGDX Java Game Development and Beyond Volume One

"Goran goes the extra mile in the approach for teaching the material. He has a very good grasp of the libGdx game engine and in just the 1st section I have learned more than other libGdx courses I have bought here on Udemy. He has always been available when I needed a little extra understanding to get over a hurtle. Having been in the computer industry myself for over 20 years in an unrelated field it is very refreshing to find someone that really understands how to relate to newbies as myself. This course has vastly expanded my knowledge beyond the other libGdx classes I have purchased so far. Highly recommend this course to anyone looking to design and program their own games!" - Dallas Stump

"I have followed quite a few courses on Udemy, covering several topics. I rate this presenter as the best I have come across. Clear and thorough. As well as the subject matter of the course, you will learn good principles for coding games in Java (usingLibGdx class libraries). The instructor demonstrates how to build your own debugging classes for use during game development. Very useful and completely re-usable for any LibGdx project. I highly recommend this course." - Paul Clegg

"Profesional and detailed , great value even for experienced devs like me. Simple way to catch things up fast and learn important things about libgdx." - Afan Olovcic

"In addition to showing a clear mastery of the material and having a excellent teaching style, the code is also professionally written with everything you expect from professional code - including proper error handling; separation of concerns; use of design patterns; clear variable and function naming; and proper commenting. This is in contract to most programming instruction videos which are often just barely enough to get the program running and often are written by coding amateurs." - Thomas Musgrove


LibGDX is a free and open-source game-development application framework written in the Java programming language with some C and C++ components for performance dependent code. It allows for the development of desktop and mobile games by using the same code base. It is cross-platform, supporting Windows, Linux, Mac OS X, Android, iOS, BlackBerry and web browsers with WebGL support.

This is only LibGDX Course that will teach you how to use Entity Component Systems to create games with LibGDX Java Game Framework.

This course is completely project based, and we are going to create fully featured games from scratch using different approaches and techniques that LibGDX offers.

We will start with simpler games so you will be comfortable if you never used LibGDX before. 

If there are any problems or issues that you encounter i will try to respond as fast as possible with as much details as i can, sometimes I may ask you to send me your code which will make it a lot easier to help you. That way you will benefit even more from this course.

We are going to start step by step, from drawing simple image to creating nicely structured and extensible game

With step by step approach you will be introduced to main libGDX concepts and you will learn enough details to understand how everything works. 

We will go through important LibGDX classes (Camera, Viewport, Batch...) step by step which should give you enough information on how to use those classes and how they work.

All project files will be included and you are free to use them for anything that you like, personal or commercial use. Through the course we will create utilities that will help us to debug games, all utilities can be used in personal and commercial use. The only limitation is that you cannot use assets or material from this course to create another course.

In this course whenever we learn something new, we are going to create simple example or experiment and after that we will apply that knowledge to game.

Lets take a look at the games and what are we going to learn inside of this course.

First we will make tool that has LibGDX application embedded in itself which will help us to easily run and test simple experiments. Through experiments you will learn details needed to create your own game from scratch.

All the experiments will be in same project so you can always go back and check simple example to remind yourself and see how it works.

After creating tool we will make simple game called Obstacle Avoid. In this game goal is to survive as long as possible and avoid obstacles that fall from the sky. Besides of creating our game logic we are going to create menus and different screens that our game needs. 

You will learn how to manage assets in our game and benefits of using asset manager. When we complete our games with first approach we are going to learn how to use Entity Component Systems to recreate same games and compare what is different.

You will learn different approaches so in your future games you can start with any approach that is best for your game.

After learning all approaches you will be equipped with more than enough knowledge to continue improving yourself in the field of game development using LibGDX Java Game Framework. You will be able to create your own games and game prototypes from scratch.

If you ever had an idea for great game, then enroll in this course and learn all the tools and knowledge that you need to develop your next hit game.

Note: This course is mainly aimed for beginners, some of content could be also useful for advanced LibGDX users.

Over 20+ hours of content + quizzes + exercises.

Enroll Now and you wont be disappointed!

Who is the target audience?
  • Suited for LibGDX Beginners and Advanced LibGDX users
  • Suited for students that want to learn LibGDX
  • Suited for students that want to learn different game approaches using LibGDX
  • Not suited for students that do not have basic programming knowledge and basic OOP knowledge
Students Who Viewed This Course Also Viewed
Curriculum For This Course
135 Lectures
Introduction to the Course and LibGDX
21 Lectures 03:46:40

Course introduction.

Preview 02:03

Find out how to get live help from instructor and other students.

Important To Read - Where to get live help

Learn how to setup your development environment.

Download Java Development Kit and Android Studio

Learn how to create projects using LibGDX Setup Application.

Create Your First Project

Showcasing projects that will be created in this course. Resources attached.

Preview 03:03

Learn Application life cycle and how it works.

Preview 13:34

Learn about Gdx class and how it works.

Understanding Gdx Modules

Learn how to handle input and what is difference between input polling and input listening.

Understanding Input Handling : Polling

Learn how to handle input with Event listening.

Understanding Input Handling : Event Listening

Short summary about input handling.

Preview 09:31

Learn some new tips and tricks about our Android Studio.

Android Studio tips and tricks

Learn basics of Java Reflection API.

Introduction to Java Reflection API

Learn about refactoring, DRY and WET code and prepare for building our sampler tool.

Refactor, DRY and WET code

Learn how to embed LibGDX window into Java desktop application using Java Swing UI Framework.

Embed LibGDX Window into a Java Desktop Application (Swing)

Add control panel to our sampler.

Adding Control Panel

Finish our sampler so we can run all samples from one window.

Finishing Sampler

Learn what is Orthographic Camera and how to use it.

Understanding Orthographic Cameras

Learn about different types of Viewports in LibGDX.

Preview 18:02

Learn about different types of Viewports in LibGDX.

Understanding Viewports Part 2

Learn what is SpriteBatch and how to use it.

Understanding SpriteBatch

Just quick summary about what we have learned so far.

Intro Summary

Test basic LibGDX knowledge that we learned in section 1.

Test Your Knowledge
8 questions
Obstacle Avoid Game
42 Lectures 07:27:48

Preview of game that we are going to build.

Preview 01:58

Learn how to create our new project using LibGDX Setup Application.

Creating Obstacle Avoid project

Learn how to use ShapeRenderer class and how it can help us.

Preview 16:30

Learn how to draw shapes using ShapeRenderer class.

Drawing Shapes with ShapeRenderer

Learn how to improve our world grid drawing and make it reusable for future game development.

ViewportUtils class

Create a class that will represent our player.

Player Class

Learn how to move player using input handling.

Moving Player

Create camera controller and move our camera.

Preview 17:07

Add Zoom and Reset to CameraController.

Camera Controller Zoom And Reset

Learn how to load debug Camera Configuration from file.

Creating DebugCameraConfig Class Part 1

Learn how to use DebugCameraConfig class.

Creating DebugCameraConfig Class Part 2

Learn how to use our new class.

Using DebugCameraConfig Class

Summary about Camera Controller.

CameraController Summary

Learn how to block player from leaving world bounds.

Blocking Player from leaving the world bounds

Learn how to add obstacles that player needs to avoid.

Adding Obstacles

Learn how to recognize pattern that repeats and make reusable super class.

Refactor Time - create GameObjectBase class

Learn how to detect collision between player and obstacle.

Collision Detection

Learn how to create bitmap fonts and use them for our in game hud to display remaining lives and scoring.

Using Hiero Tool

Learn how to use BitmaoFont and GlyphLayout classes.

Preview 15:34

Learn how to add lives and logic for losing life.

Adding Lives to HUD

Learn how to add score logic.

Adding score to HUD

Learn simple trick to make our displayed score nicer.

Trick to Improve displayed score

Add game over logic.

Adding game over logic

Learn how to add difficulty levels to our game.

Adding Difficulty Levels

Learn how to separate game logic from rendering logic. Single responsibility principle.

Refactor Time - separate logic code from rendering code

Create class for our game logic.

GameController Class

Create class for our render logic.

Game Renderer Class

Learn how to setup our controller and renderer.

Setup Controller and Renderer

Learn some of the most important things about viewport.

Fixing Viewports

Remove obstacles that are off screen, to save memory.

Removing off screen obstacles

Learn how to fix obstacles that are partially off screen.

Fix obstacle spawn logic

Learn about object pooling and how it can help use to manage memory.

Preview 19:37

Implement pooling of obstacles in our game.

Using Pooling for Obstacles

Add assets to game.

Adding and drawing our assets

Learn how to fix position of bounds and textures so they overlap.

Fix bounds and texture positioning

Fix player positioning.

Fix player positioning

Fix obstacle positioning

Fix obstacle positioning

Add logic for restarting our game.

Restart Logic

Add touch controls for player.

Adding touch controls

Learn how to run game in emulator and on real device via USB debugging.

Running game in emulator and on real device.

Summary for this section.



Exercise S2
Asset Management
8 Lectures 01:49:53

Learn what is Asset Manager and how to properly use it.

Understanding Asset Manager

Learn how to add asset manager to our game.

Preview 19:59

Learn how to use TextureAtlas and TextureRegion.

Understanding Atlas And Region

Learn how to pack our assets into TextureAtlas and use TextureAtlas.

Preview 09:12

Learn how to use texture atlas.

Using Atlas

Learn how to create simple loading screen for our game.

Creating Simple Loading Screen

Learn how screens work.

Understanding Screens

Short summary.


Asset Management Quiz

Asset Management Quiz
5 questions
Scene 2D
19 Lectures 04:26:18

Basic Introduction to Scene2D UI Framework

Preview 19:44

Learn how to use Actions.

Understanding Actions

How to use tables for UI construction.

Preview 19:04

Learn how to use skin class.

Understanding Skin

Learn what is Skin and how to use it.

Creating Atlas for UI

Learn how to use scene2D to create our Main Menu

Preview 19:51

Add highscore screen to our game.

High Score Screen

Adding Logic for highscores.

High Score Logic

Add Options Screen to our game.

Options Screen

Learn how to add difficulty logic.

Difficulty Logic

Refactor common behavior to super class and how to reuse it in other games.

Menu Screen Base

Pack assets for custom skin.

Preview 09:03

Learn how to create custom skin for our main menu.

Creating Custom Skin

Using Custom Skin in Menu Screen.

Using Custom Skin in Menu Screen

Using Custom Skin in HighScore Screen.

Using Custom Skin in HighScore Screen

Using Custom Skin in Options Screen.

Using Custom Skin in Options Screen

Fix problem with checboxes.

Fixing CheckBox problem

Learn how to add sounds to our game. 

Add Sounds

Summary about what have we learned so far.


Scene2D Quiz.

Scene2D Quiz
4 questions
Obstacle Avoid Game Using Ashley
25 Lectures 05:20:27

Learn theory behind Ashley.

Preview 14:02

Learn about Engine and Entity classes.

Preview 12:36

Learn how to use Components.

Understanding Ashley Part 2 - Component

Learn how to use Systems.

Understanding Ashley Part 3 - System

Learn how to modify entities on the fly.

Understanding Ashley Part 4 - Advanced

Creating project for our Game.

Creating Project

Setup project by reusing previous code.

Project Setup

Create Grid Render System that will render world grid.

Preview 10:24

Create Debug Camera System so we can move camera around the game world.

Debug Camera System

Create Player Entity

Player Entity

Create Debug Render System for drawing debug graphics.

Debug Render System

Create Player System that will process input handling.

Player System

Create Movement System that will update position based on speed.

Movement System

Create Bounds System that will update bounds based on entity position.

Preview 11:43

Create System that will wrap player from leaving the world bounds.

World Wrap System

Create system that will spawn obstacles.

Preview 15:21

Create system that will cleanup obstacles.

Cleanup System

Create system that will process collision.

Collision System

Create System for rendering HUD.

Hud Render System

Create Listener to execute logic based on collision.

Collision Listener

Create System that will award player with score.

Score System

Create system for rendering Textures.

Render System

Fix bounds and texture positioning.

Fix bounds and texture positioning

Section Summary



Exercise S5
Obstacle Avoid Game using Sprite
8 Lectures 01:23:07

Creating project

Creating project

Preparing base project code

Preparing Project

Implementing player sprite class

Player Sprite Part 1

Implementing player sprite class

Player Sprite Part 2

Implementing obstacle sprite class

Obstacle Sprite

Code Refactor

Code Refactor Part 1

Code Refactor

Code Refactor Part 2

Short section summary

Obstacle Avoid Game using Scene2D
9 Lectures 01:51:25

Creating project

Creating Project

Preparing base project code

Preparing Project

Implementing Game Screen

Game Screen

Implementing base actor for game objects

Actor Base

Implementing PlayerActor class

Player Actor

Implementing ObstacleActor class

Obstacle Actor

Implementing Background


Finishing game logic

Finish Game Logic

Upcoming Content
1 Lecture 00:01

Content getting added to course

Content getting added to course
2 Lectures 00:26
Important Links

Bonus Lecture: My other courses
About the Instructor
Goran Lochert
4.6 Average rating
125 Reviews
2,788 Students
6 Courses
Software Engineer | Udemy Instructor | Indie Game Developer

I’ve been a software developer for over 10 years (8 commercially), creating Desktop, Web, and Mobile applications during this time.

I am a fully certified Java Developer (Java Oracle Certificate Associate programmer Java SE 8), and have a lot of experience with Java, JPA, Java Enterprise Edition, Maven, and JavaFX.

In addition, I’ve been heavily involved in games development, and frameworks used to create games.

I am an official developer contributor for LibGDX (a very popular game framework), and am heavily experienced with it, as well as AndEngine, Unity and Unreal engine.

Teaching people and sharing my knowledge is a real passion of mine, and I really enjoy providing information that is not accessible anywhere else. 

I create training material that actually teach you how to program, and how things work!  An important distinction, since many tutorials on the Internet allow you to follow along blindly, but fail to explain things so that you can apply this to other projects in the future.

If you want to truly understand how things work, and how to become a programmer, you are in the right place!

I'm On A Quest To Give You The Education You Never Received At School!