
Kick off your metroidvania game project in Unity and C# by getting started, joining the community, and comparing your work to a completed project.
Set up your Unity project with a full HD setting, import the Udemy Metroid Mania assets, and create a test scene to prototype character movement and interactions.
Set up a tilemap in Unity and tile palette, then place tiles for a test area. Add a tile map collider, composite collider 2D, and set the rigidbody to kinematic.
Set up the player in Unity by placing a standing sprite under a player parent with a capsule collider 2D, and use a rigidbody 2D with gravity and freeze rotation.
Create a player controller script in Unity using C# and Rigidbody2D to move with a move speed and jump force, driven by the horizontal input axis.
Implement a jump mechanic in Unity 2D by applying vertical velocity when the jump button is pressed and the player is on the ground, using an overlap circle ground check.
Open the Unity animation window, create idle, jump, and run animations by dragging frames onto the timeline, then preview and prepare to connect them to the script.
control unity character animations with an animator controller, switching idle, run, and jump via speed and is on ground parameters and transitions and use absolute velocity to handle left-right movement.
Flip the character by setting the transform's local scale on the x axis to -1, so left and right facing updates with movement and shooting points stay aligned.
Implement a two-dimensional camera that follows the player in a metroidvania game using a camera controller script, finding the player at runtime and preserving the camera's z position.
Clamp the camera to a defined box using a trigger and box collider so it follows the player while orthographic size and aspect keep it within the bounds.
Create a player bullet in Unity using C#, with an animated bullet object, circle collider, and BulletController to move with physics, handle collisions, and destroy on impact or off-screen.
Create and reuse a bullet prefab, set a shot point, and instantiate bullets from the player controller, aligning bullets with the player’s facing for smooth firing.
Add a shot impact particle effect in Unity by bursting a pixel art particle system on impact, with random size, color synced to the shot, and self-destruction after play.
Create a responsive shooting animation in Unity by using an animator with a shots fired trigger, idle and stand-still transitions, and replay the shoot clip on rapid fire.
Remove unnecessary packages from a Unity project by using the Package Manager to disable the visual scripting element, JetBrains writer editor, and other unused tools, keeping core assets intact.
Add a double jump system in Unity, using a can double jump flag and ground checks, then trigger a double jump animation via the animator to enhance metroidvania gameplay.
Learn to implement a dash ability in a Unity and C# metroidvania, using right-click to dash, a dash timer, and rigidbody velocity based on the player's facing direction.
Learn to enhance a dash with a trailing after-image effect by cloning the player's sprite into a prefabricated blue trail, managing lifetime, spacing, and sorting order in Unity.
Teach how to limit dash usage in a metroidvania-style game by adding a dash recharge counter and a cooldown, using a 0.25-second wait to prevent continuous dashing.
Turn your metroidvania character into a ball to roll through tunnels, switching between ball and standing modes with input, and tuning colliders and a simple Unity and C# controller.
Animate the ball in a metroidvania prototype by creating idle and moving sprite animations in Unity, tuning an animator speed parameter, and transitioning between states for responsive movement.
Learn to implement bomb dropping in ball mode for a metroidvania game in Unity using C#. Create bombs, explosions, and time-based destruction with a dedicated bomb controller.
Switch the collider from outlines to polygons to solidify the ground, then enable continuous collision detection and interpolate on the player's rigid body to prevent tunneling.
Create destructible blocks on a destructible layer, then use a bomb with overlap circle all to destroy them within a blast range, unlocking mind-based progress in Unity with C#.
Create a Unity player ability tracker to unlock double jump, dash, become ball, and drop bomb as the player progresses, integrating with the player controller.
Create a pickup item that unlocks player abilities in a metroidvania game. Implement a trigger system that grants double jump, dash, ball form, and bomb drop when collected.
Create pickup effects in Unity with particle visuals and color changes that trigger on collection, and display an in-world unlock message via text mesh pro on a world-space canvas.
Create an enemy patroller script in Unity to move a character between patrol points defined as a transform array, tracking the current point with move speed and wait time.
Set up patrol points, unparent them at start, flip the enemy to face movement, loop through points with a wait timer, perform jumps, and trigger animation.
Attach an enemy health controller; implement a public damage enemy function that receives a damage amount and call it from bullets on hit, triggering a death effect at zero health.
Create a Unity metroidvania damage system by using a player health controller with max and current health and an enemy damage script that deactivates the player at zero health.
Learn to implement a flying enemy that chases the player within a range, turns toward them, and explodes on impact, using a kinematic rigidbody, circle collider, and damage scripts.
Make the flyer move in its facing direction in Unity by updating its position with transform.right and Time.deltaTime, using a negative sign for left, and toggle idle/move animations with isChasing.
Build a Unity health UI with a canvas and slider, and update it via a UI controller singleton to reflect current and max health as the player takes damage.
Explore implementing enemy explosions in a Unity C# project for a metroidvania game, adding a damage player script with optional destroy effects to clearly signal damage and trigger explosions.
Add a short invincibility window after taking damage and flash the player sprites to clearly show damage, using Unity and C# health and sprite renderer logic.
Set up a respawn system that tracks a spawn point, waits after death using a coroutine, reloads the current scene, repositions the player, and refills health to continue gameplay.
Keep player, respawn, and ui controllers active across scenes by using a singleton-like pattern that prevents destruction on load, preserving progress, unlocks, and settings between levels.
Add an invisible checkpoint object with a trigger collider in Unity, wire it to the respawn controller, and spawn the player at the checkpoint position when they die.
Create a player death effect in Unity by wiring a death effects prefab to the respawn controller, spawning at the player's position with colored particle shapes.
Create and integrate a health pickup in Unity by implementing a trigger collider, a health controller heal function, and UI updates to restore player health while spawning pickup effects.
Create a doorway system in a Unity metroidvania that loads a new scene on entry and starts at the exit point, with animations for closed, opening, open, and closing.
Make the door trigger freeze player movement, move the player to an exit point, then load the next scene after a timed wait, reactivating movement and animator.
Fade between scenes using a full-screen UI image in Unity and C#. When entering doors, fade to black, then fade back, with a configurable fade speed.
NEW UPDATE! A complete map system has now been added to the course for inclusion in your projects!
Learn how to create and program your very own metroidvania game using Unity, an industry-standard game development program used by large gaming studios and indie developers across the world.
In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.
This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.
At the end of this course you will have developed the ability to understand such game elements as:
Special Abilites including Double Jumps, Dashing, Turning Into a ball and more
Unlocking & Collecting Abilities
Walking & Flying Enemies
Game Progression & Storing Your Progress
Complete Boss Battle
Audio systems
Interactive Menus
A full map system, including fullscreen & mini-maps
and much more...
The course also includes a complete version of the project to use for your own reference to ensure everything in your game works as it should!
Start learning today and let me help you become a game developer!