
Kickstart 2D game development with LibGDX and Java by building a stick figure showdown: set up the environment, implement drawing, animation, input, heads-up display, AI, menus, and Android support.
Install and verify the Java Development Kit to build LibGDX projects. Check java -version to confirm installation, select a compatible JDK (1.1-1.8), download from Oracle, and manage multiple versions.
Install IntelliJ IDEA, choose the community edition, download Windows, macOS, or Linux installer, set up a Java project with the JDK, and run a Hello world to verify the setup.
Copy the JDK location, create or edit JAVA_HOME in the system environment variables, and add %JAVA_HOME%in to the path variable, enabling LibGDX development on Windows.
Explore LibGDX, a free, open-source framework of libraries and tools to build games; cross-platform Windows, mac, Linux, Android, iOS, and web, Java-based, with 2D focus and 3D capability.
Set up libGDX by generating a live project with the project generator, run the setup jar, and import the desktop build into IntelliJ to test.
Learn how to import a LibGDX test project, locate assets, and run the desktop launcher. Draw a texture with SpriteBatch and adjust basic rendering settings.
Create and import a LibGDX 2D desktop project named stick figures showdown via the edX project generator, configure FreeType, generate, trust, then run the desktop launcher to verify the demo.
Import assets, set up an asset manager, and load textures, fonts, audio, and atlases in one assets class. Load completes before use, then dispose to prevent memory leaks.
Implement the game screen in LibGDX, load background and front ropes textures from the asset manager, render with a sprite batch, and switch screens from the main game class.
Set the window to 800 by 480 in windowed mode and initialize an orthographic camera using world units; translate and update for consistent rendering with road units and global variables.
Learn to control the camera viewport in LibGDX using stretch, fit, fill, screen, and extended viewports; update on resize to prevent texture warping while preserving world width and height.
Create a LibGDX fighter class using a 2-by-3 sprite sheet, implementing states such as block, idle, hurt, punch, kick, walk, and lose with texture regions and animations.
Initialize fighters, reset their state and position at the start of each round, and render animated sprites with sprite batch using delta time, state time, texture regions, and animation states.
Implement left and right facing for fighters, update their facing each frame by comparing x coordinates, and flip their textures in render using negative scale with a centered origin.
Learn to handle keyboard input in a LibGDX 2D game by implementing an input processor, mapping arrow or WASD keys to move a fighter, and updating movement with delta time.
Define the ring bounds in world units, compute the ring slope, and enforce keep within ring bounds in update; ensure fighters stay inside the ring and render order follows y-position.
Define fighter state transitions for blocking and attacking in a 2d LibGDX game using Java, with idle/walk states, punch/kick actions, animation checks, and keyboard controls (b, f, v).
Build a hit system by tracking contact, enabling attacks only in the middle third of attack animations, applying damage with blocking, and managing hurt, lose, and win states.
Generate and load bitmap fonts in LibGDX with the FreeType extension, using Roboto regular to create small, medium, and large fonts, and apply them to the HUD.
Create and use global variables with colors and a difficulty enum to drive a 2d hud. Render the hud showing wins/loss ratio and a right-aligned difficulty text using bitmap fonts.
Configure and render fighter health bars in LibGDX using a shape renderer. Calculate padding, heights, and widths, and draw fighter names and a centered round timer with proper alignment.
Set up the rounds teaches implementing game and round state management with enums, timers, and delays to drive round progression, win/lose decisions, and rendering start-round text.
Improve the round timer by using left alignment anchored to the viewport center and offsetting by the width of one number, with monospaced font, and turn red below ten seconds.
Teach touch and mouse input handling in a 2D LibGDX game: convert screen to world coordinates, skip round delays by touchdown, and use the spacebar to restart after game over.
Apply texture filters in libGDX to control scaling, using nearest for performance and linear for smoother edges with min and mag filters, either per texture or via the asset manager.
Learn to create and use texture atlases by packing multiple images into a single atlas with GDX Texture Packer, configuring padding, filters, and power-of-two options.
Implement a game over overlay with play again and main menu sprites from a texture atlas, render a dim screen, and restart game when the play again button is pressed.
Pause and resume gameplay by displaying a pause overlay with continue and main menu buttons, and add a bottom-right pause button that freezes updates using delta time.
Load and manage audio assets in LibGDX with an AudioManager that handles music and sounds, loops music, and provides play, pause, resume, and toggle music for UI and game sounds.
Develop opponent AI in a LibGDX 2D game using a timer-based system to decide attack, block, or move away, with difficulty controlling delays and pursuit behavior.
Develop blood splatter and blood pool effects by creating two Java classes, animating splatters from a texture atlas, and updating and rendering them on combat events.
Implement a blood pool system using a blood pool class with alpha fade, random textures from the blood atlas, and an array of 100 pools drawn beneath fighters.
Load the main menu assets by adding a load menu assets method and loading menu items atlas from the textures assets folder; then use stage to create images and buttons.
Set the fighter display name to the player's uppercase name and apply the player's color in the show method, then build the main menu UI with scene2D tables.
Configure LibGDX main menu buttons by using the stage as input processor, adding change listeners, playing click sounds, and navigating to game, settings, or exit, with pause and resume handling.
Learn to read fighter choices from a JSON file and convert color values to LibGDX color objects, using a FighterChoice class and an ArrayList.
Create a settings manager to save and load player preferences using the GDX preferences file. Toggle music, sounds, blood, and full-screen, and map difficulty to the global enum.
Build a LibGDX settings screen by creating a settings screen class using a stage, texture atlas, and image and button widgets, including back, music and sounds toggles, and difficulty controls.
Build the settings screen with a main table filling the stage, plus a banner, audio, and difficulty tables, plus a bottom table for full-screen and blood settings.
Create a loading screen that loads assets with the asset manager, shows a progress bar, updates with assets loaded, waits briefly, and then switches to the main menu.
Complete this course to build a full 2d game with LibGDX and Java, turning a simple demo into a playable project, and share your work.
Install the Android SDK, configure its location in the IDE, and perform a full installation of the API level to enable Android functionality for LibGDX projects.
Create and import a new LibGDX project with Android functionality using the project generator, align the package name, configure the Android SDK, and fix build tool files.
Learn to run the LibGDX android build, explore the android folder, enable developer options, and use a real device or an android virtual device (AVD) with Gradle settings.
Transfer the code by replacing assets, core source, and desktop source folders from the original project, then overwrite the main game class and desktop launcher.
Learn how to fix Android audio issues in a 2D LibGDX game by swapping music for sound for looping, preventing multiple instances, preloading assets, and enabling asynchronous audio.
Learn to adapt the settings screen for Android by enabling immersive mode, hiding the navigation bar, and using the long blood setting background texture.
Load the mobile UI atlas, create punch, kick, block, and joystick sprites, and set margins and positions. Manage two pointers with move, attack, and block actions for the Android UI.
Master multi-touch input in a LibGDX 2D game by managing pointer indices, detecting touches on punch, kick, and block, and triggering corresponding actions with proper release handling.
Master joystick-based movement by converting touch input to world coordinates, applying drag thresholds, and updating x and y directions and textures for the fighter.
Do you want to learn how to create amazing video games for FREE with LibGDX?
I'm Brandon and I'm going to help you master LibGDX by creating a complete and fully functional cross-platform 2D video game.
LibGDX is a free and open-source game development framework. Game development frameworks are collections of libraries and tools that provide building blocks that developers can use to create their own games, and are more lightweight and flexible than game engines, like Unity 3D, Unreal Engine, and Godot.
LibGDX also provides cross-platform deployment, meaning that a game created with LibGDX can be run on multiple platforms, including Windows, Mac, Linux, Android, iOS, and web browsers.
(NOTE: Please be aware that you will need to know some Java in order to get the most out of this course. Taking a short 2-3 hour Java course on YouTube should be more than enough.)
The Game Dev Kickstart course is very comprehensive and is full of extremely valuable information for creating incredible 2D games using LibGDX. We'll begin by installing the JDK (Java Development Kit) and the IntelliJ IDEA IDE, which we'll be using to write the code for our game. After that, we'll jump right into learning all about LibGDX by creating a complete 2D fighting game called Stick Figure Showdown. Among the dozens of topics we will be covering throughout the course, we'll learn how to:
draw images to the screen and animate them
manage assets (images, audio, etc.) using an asset manager
work with cameras and viewports for full control over how our game appears on different screen resolutions
handle keyboard and touch input from the player
generate fonts using the Freetype extension
display a HUD (Heads-Up Display)
create and use texture atlases for enhanced performance
add text and clickable buttons to the screen
add sound and music to our game
add AI (Artificial Intelligence) for the opponent fighter
create and switch between various types of screens (main menu, settings, etc.)
use Scene2D for more efficient UI (User Interface) layout
allow the player to change and save various settings of the game (difficulty, fullscreen mode, etc.)
EXTRA: add Android functionality to our game!
You'll also get access to all of the resources and code for the projects in this course!
So what are you waiting for? Join now and let's start developing games today!