
Begin by getting set up in Unity to build a 2D platformer in Unity and C sharp. Access the feedback area and join the discourse community.
Explore how to install the correct Unity version for this course, including Unity 2019.3 and release candidates via Unity Hub, noting ui visuals differ while functionality stays the same.
Set up a 2d Unity project, explore the scene and game views, and learn to use the hierarchy and inspector to edit transforms, cameras, and components.
Set up a 2D Unity project, adjust the game view and layout, import asset packages, and configure sorting order to position background, foreground, and colliders.
Set pixel per unit to 16, switch to point filter and no compression, slice sprite sheet into 32x32 cells with 1-pixel padding, then place the first image as the player.
Use Unity's sorting layer system to manage sprite depth. Add background, world, and player layers, then set order in layer so the player appears in front of the background.
Add a rigidbody 2D and a capsule collider to the player, configure a 2D physics body for collisions with the ground, and freeze rotation to keep the character upright.
Create a player controller script to move the player, then save often and organize a scripts folder. Use space-free, camel-case names and attach the script to the player.
Move a 2D platformer player in Unity using a Rigidbody2D, applying velocity on the x axis with a public move speed, and reading horizontal input.
implement a jump mechanic in Unity by adding a public float jump force and applying it to rigidbody velocity when the jump button is pressed, with gravity scale tuning.
Improve platformer feel by tuning Unity physics: switch to continuous collision, add a 2D physics material with zero friction, and adjust input to control velocity and momentum for smoother movement.
Set up a ground check using an invisible circle at the player's feet, assign ground and player layers, and use a ground check point to enable jumping only when grounded.
Add a double jump to a Unity 2D platformer using a canDoubleJump flag, reset on ground, and enable a second midair jump for smoother control.
Create a player idle animation in Unity by organizing assets into an animations folder, using a four-frame timeline animation and an animator component for smooth motion.
Create and refine run and jump animations for a 2d platformer in Unity by adding new clips, arranging frames, and configuring the animator for smooth motion.
Learn to connect idle, run, and jump animations in Unity by configuring transitions with zero duration and no exit time, driven by move speed and is grounded.
Automatically bind the player animator at start, and in the update loop set is grounded and move speed using Mathf.Abs of the x velocity to drive walk and jump animations.
Flip the sprite horizontally with the sprite renderer to face left or right based on velocity.x, and keep the last facing direction when idle.
Create a controllable Unity camera that follows the player horizontally via a camera controller script and a public transform target, keeping vertical and depth fixed; add parallax.
Implement parallax depth in a Unity camera system by moving background layers at different speeds using a transform-based update loop, creating a realistic depth illusion.
Learn to clamp a Unity camera's vertical follow in a 2d platformer by limiting its y position between min and max heights using Mathf.Clamp, while preserving horizontal follow.
Apply vertical parallax in Unity by tracking a 2D movement vector from the camera, computing delta x and y from the last position, and applying half-scale movement to backgrounds.
Create a tile palette and tile map in Unity to design custom levels, importing a spritesheet of tiles, saving the scene, and painting levels with the tile palette.
Learn to draw a Unity 2D tile map, add a tile map collider 2D and a composite collider, and configure a kinetic rigid body for a solid, interactive game world.
Use Unity prefabs to quickly assemble reusable player, camera, and background across levels; learn how prefab overrides propagate, and manage layers and sorting to keep visuals consistent per level.
Create spikes with a box collider and set is trigger to true, making a damage area. Detect the player entering the trigger to apply damage via a health system.
Create a player health system in Unity, track current and max health, initialize current health to max, implement a deal damage method, and deactivate the player when health reaches zero.
Create a spike damage script that detects player entry using on trigger enter 2D, checks for the player tag, and calls the health controller's deal damage function.
Damage the player when spikes are hit by invoking the player health controller's deal damage function, using either find objects of type or a public static singleton for efficiency.
Create a health user interface in Unity using a canvas with heart icons anchored top-left and scaled with screen size to stay consistent across resolutions, updating hearts as damage occurs.
Create a UI controller to manage health hearts and update the display using a switch on current health, swapping full and empty heart sprites.
Expand the health system from three to six and implement half-heart visuals in the UI canvas by extending the switch statement and adding a half-heart image.
Add invincibility after taking damage to protect health from rapid spike hits, using an invincible length and an invincible counter updated in the game's update loop with delta time.
Implement a visual invincibility indicator by fading the player sprite using the sprite renderer alpha in Unity as the invincibility counter runs. Restore alpha to full when invincibility ends.
Enhance combat feedback by adding knockback when the player takes damage, temporarily disabling input and propelling the character away from danger using configurable knockback length and force.
Add a hurt animation for the player when hit by spikes, using the animator trigger to play the hurt clip during knockback and return control after the animation ends.
Create a checkpoint system in Unity by adding a trigger collider, switching the checkpoint sprite from off to on with a script, and using prefabs to manage activated respawn points.
Learn to deactivate older checkpoints using a checkpoint controller, find all active checkpoints, store them in an array, and reset each when a new checkpoint activates.
Store and update the player's spawn position with a public Vector3 spawn point and a set spawn point function, using transform.position when a checkpoint is hit.
Learn to implement player respawn at checkpoints using a level manager and a coroutine, resetting position and health, and updating the user interface.
Implement a kill plane that respawns the player at the latest checkpoint when they fall off the level, using a trigger area and a level manager to activate the respawn.
Learn to implement gem collectibles in a Unity 2D platformer by creating a gem pickup with animation, trigger colliders, and a level manager to track collected gems.
Implement a health pickup in a Unity 2D platformer using a cherry collectible, a pickup script, and a player health controller to heal up to max health with UI updates.
Add a gem count UI to the 2d platformer in Unity by duplicating a heart icon, using a gem sprite, and updating the text via the UI controller.
Design a pickup effect in Unity by creating an animation, adding a destroy over time script, and instantiating the effect at the item's position on pickup.
Create a player death effect by making a half-second explosion animation as a prefab and instantiate it at the player's position when health hits zero, such as on spikes.
Create first enemy, a frog with idle and jumping animations, using holder object with a child sprite to avoid animation snapping, and add a kinematic Rigidbody2D with a box collider.
Move the enemy frog to patrol between two points in Unity using a move speed, left and right transform points, and a rigidbody, and unparent these points at startup.
Learn to move a frog in a Unity 2D platformer by looping between left and right points, using Rigidbody2D velocity, position checks, and sprite flipping.
Implement pauses for an enemy by counting down move time and wait time, updating counters, and applying randomized durations with random range to create varied motion.
Create a frog enemy jump animation in Unity, adjust the sprite motion, and drive it from movement using an animator parameter to switch between idle and jump states.
Edit animation curves to shape the frog's jump in a 2D platformer, adjusting the y-axis arc with handles for hang time and a weighty, believability-enhancing ascent and descent.
Attach a stomp box beneath the player with a 2D box collider as a trigger to detect enemies, then destroy or deactivate the enemy and instantiate a death effect.
Implement a bounce when stomping enemies by adding a bounce variable and a bounce function in the player controller, triggered by the stomp box on enemy defeat.
Implement a random health drop on enemy death by adding a public collectible prefab, a 0–100 chance, and a range clamp to ensure values stay within 0–100, spawning on death.
Add a trigger-based damage zone to the enemy frog using a box collider, so enemies hurt the player on contact while animations keep the collider in sync.
Create a Unity audio manager with a static instance and a sound effects array, then trigger play SFX to control 2D audio clips for events like enemy hits and drops.
Learn to implement and trigger sound effects in a Unity 2D platformer by wiring an audio manager to actions like gem pickups, health pickups, player death, jumps, and enemy explosions.
Enhance game feel by adding pitch variation to sound effects with the audio manager, reducing repetition of pickups, jumps, and other cues.
Learn to add and balance music and sound effects in a Unity 2D platformer using an audio mixer with music and SFX groups, and assign audio sources for cohesive gameplay.
Learn how to create your very own platformer game using Unity, an industry-standard program used by many 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 create such game elements as:
A character with full movement, jumping & double-jumping capabilites
Collectibles such as gems & extra health
Parallaxing background effects
Different types of enemies to combat
moving & flying enemies
Level Mechanics like Spikes, moving platforms, crushing blocks & more
Full user Interface with interactive menus
Creating levels with tilemaps
Multiple levels and a level select screen
A unique and challenging boss battle
And more...!
Start learning today and let me help you become a game developer!