Free online courseAndroid - LibGDX - Super Mario Bros
Duration of the online course: 5 hours and 8 minutes
4.78
(18)
Build a retro platformer on Android with this free LibGDX course—learn sprites, physics, collisions, HUD and audio, and earn a certificate-ready project.
In this free course, learn about
Set up a LibGDX Super Mario Bros project in Android Studio
Use Game/Screen classes to manage states and switch between screens
Handle aspect ratios with Viewports (Fit, Fill, Stretch) and cameras
Build a HUD with scene2d UI (stage, actors, labels) for score/time
Create levels in Tiled Map Editor and understand what Tiled is
Render tile maps and translate map objects/layers into in-game code
Use Box2D for physics: bodies, fixtures, forces/impulses (e.g., Mario jump)
Pack spritesheets with TexturePacker and drive animations with a state timer
Implement collision detection via ContactListener and collision categories/filters
Add gameplay: bricks, scoring, timers, and sound/music via AssetManager
Create enemies (Goomba, turtle): AI movement, head fixtures, stomping/kicking
Spawn and use items from blocks; grow Mario; restrict actions to Big Mario
Handle damage, death, GameOver screen, and overall code cleanup/refactoring
Course Description
Turn Android Studio into your personal game studio and learn how to build a classic side-scrolling platformer experience with LibGDX. In this free online course, you will move from a clean project setup to a complete playable game, understanding how professional game code is structured and why each piece exists. Instead of relying on shortcuts, you will create a solid foundation with Game and Screen architecture, then make it look right on different devices by handling aspect ratios and choosing viewports that keep your world consistent across phones and tablets.
As your project grows, you will connect gameplay with a clean user interface by building a HUD using scene2d, keeping score and time in sync with what happens on screen. You will also learn how modern 2D games are authored visually and then brought to life in code by creating a level with a tile map editor and rendering it efficiently. From there, the course introduces Box2D to give your character and enemies real physical behavior, showing how to define bodies and fixtures, apply forces for movement and jumps, and manage collisions reliably with contact listeners and filters.
You will bring personality and responsiveness to the game through sprite sheets, animation state timing, and texture packing to keep assets organized and performant. The project goes beyond a simple character controller: you will implement interactive blocks, breakable bricks, items that spawn and move, power-ups that change the player state, and enemies with distinct behaviors like Goombas and turtles, including mechanics for stomping, getting hit, and game over flow. Sound effects and music are handled through an asset management approach so your project stays scalable and clean.
By the end, you will have a strong grasp of building a 2D Android game with LibGDX and a portfolio-ready project that demonstrates real game development skills: architecture, rendering, physics, UI, asset pipelines, and moment-to-moment gameplay logic. If you are aiming to break into game development or sharpen your programming with an engaging challenge, this course offers a practical, end-to-end path you can follow and reuse in your own original games.
Course content
Video class: 1 - LibGDX Game Development with Android Studio - Creating Super Mario Bros - Setup04m
Exercise: _What is the name of the tutorial series that Brent is creating?
Video class: LibGDX Part 2: Game & Screen Classes - Creating Super Mario Bros06m
Exercise: What is an important feature of the Game class in the context of game development?
Video class: LibGDX Part 3: Aspect Ratios & Viewports - Creating Super Mario Bros07m
Exercise: _What are the three viewports that LibGDX offers to solve the problem of different device aspect ratios?
Video class: LibGDX Part 4: Creating a HUD - Creating Super Mario Bros12m
Exercise: What is the primary purpose of the scene2d in libGDX while creating the game HUD?
Video class: LibGDX Part 5: Making World 1-1 w/ Tiled Map Editor - Creating Super Mario Bros08m
Exercise: _What is Tiled?
Video class: LibGDX Part 6: Render Tile Maps - Creating Super Mario Bros06m
Exercise: What is one of the main tasks mentioned for translating the game world into code?
Video class: LibGDX Part 7: Intro to Box2D - Creating Super Mario Bros12m
Exercise: _What is Box2d in the context of the Super Mario Bros game?
Video class: LibGDX Part 8: Making Mario in Box2D - Creating Super Mario Bros13m
Exercise: What function is used for Mario's jump in the physics simulation?
Video class: LibGDX Part 9: Cleaning up Code - Creating Super Mario Bros10m
Exercise: What is a key task performed in the video tutorial?
Video class: LibGDX Part 10: SpriteSheets and TexturePacker - Creating Super Mario Bros11m
Exercise: What is the purpose of using a texture packer in game development?
Video class: LibGDX Part 11: Jump & Run Animations - Creating Super Mario Bros15m
Exercise: _What is the purpose of the "state timer" variable in the LibGDX Super Mario Bros tutorial?
Video class: LibGDX Part 12: Identify Collision objects - Creating Super Mario Bros13m
Exercise: What is the main purpose of implementing a contact listener in the Super Mario game tutorial?
Video class: LibGDX Part 13: Breaking Bricks with Mario - Creating Super Mario Bros09m
Exercise: _What is a Box2D filter in the context of the Super Mario Bros game?
Video class: LibGDX Part 14: Keeping Score & Time- Creating Super Mario Bros07m
Exercise: What happens to the score when a brick is hit in the game?
Video class: LibGDX Part 15: Sound & Music AssetManager - Creating Super Mario Bros06m
Exercise: _What is the purpose of using LibGDX as an asset manager in the Super Mario Bros game?
Video class: LibGDX Part 16: Anatomy of a Goomba - Creating Super Mario Bros13m
Exercise: What is the purpose of the Goomba sprite in the described tutorial?
Video class: LibGDX Part 17: Stomping Goombas - Creating Super Mario Bros13m
Exercise: _What is the purpose of creating a head fixture in box2d for the Goomba enemy in Super Mario Bros game?
Video class: LibGDX Part 18: Moving Goombas/Intro to Killing Mario - Creating Super Mario Bros07m
Exercise: What happens when Mario collides with a Goomba in this tutorial?
Video class: LibGDX Part 19: Super Mario Maker - Goombas - Creating Super Mario Bros06m
Exercise: _What is the first step to add goombas to the game Super Mario Bros through the tiled map editor?
Video class: LibGDX Part 20: Stalling Enemies - Creating Super Mario Bros05m
Exercise: What feature is introduced in the 20th tutorial of the game creation series?
Video class: LibGDX Part 21: Spawning Items - Creating Super Mario Bros14m
Exercise: _What is the purpose of the "define item" function mentioned in the tutorial?
Video class: LibGDX Part 22: Moving & Using Items - Creating Super Mario Bros06m
Video class: LibGDX Part 23: Spawning Items in Select Blocks - Creating Super Mario Bros05m
Video class: LibGDX Part 24: Growing Mario - Creating Super Mario Bros11m
Video class: LibGDX Part 25: Box2D & Breaking Bricks w/ Big Mario Only - Creating Super Mario Bros10m
Video class: LibGDX Part 26: Mario gets Hit! & Sound Effects - Creating Super Mario Bros07m
Video class: LibGDX Part 27: RIP Mario - Creating Super Mario Bros08m
Video class: LibGDX Part 28: GameOver Screen - Creating Super Mario Bros09m
Video class: LibGDX Part 29: Turtles... Its whats for Dinner - Creating Super Mario Bros14m
Exercise: _What is the purpose of this tutorial in the Super Mario Bros series?
Video class: LibGDX Part 30: Kicking Turtles - Creating Super Mario Bros08m
Video class: LibGDX Part 31: Bowling down Enemies w/ Turtles - Creating Super Mario Bros12m
Video class: LibGDX Part 32: THE GRAND FINALE - Creating Super Mario Bros04m