
Explore programming by making games in Unity, learning basic skills to create your own fully featured games. Access project files and finished game projects to follow along.
Create a pong-like tennis game in unity with single-player and multiplayer modes, controlling left and right paddles with the keyboard to bounce the ball and score.
Create a new unity project, set its title and save location, and explore the default layout—assets, console, hierarchy, scene and game views, and the inspector for transforms.
Set up the Unity project with a black camera background and 8:44 aspect, create folders for art, materials, prefabs, and scripts, import a sprite, place it, and save level 1.
Create top and bottom walls in Unity by duplicating a wall, centering it on the x-axis, and adding a box collider 2D so the ball can bounce.
Create paddles and a ball in Unity, reuse assets with prefabs to update all paddles at once, adjust colors and positions, and add a box collider 2D for basic physics.
Apply a rigid body to the ball and use a bouncy physics material with zero friction to bounce off walls, while setting gravity scale to zero.
Create a ball controller script in Unity to move the ball at game start using a rigid body and a public start force, via Vector2 velocity in the start function.
Control paddle movement in Unity with a paddle controller script that uses W and S keys, transform.position, and deltaTime to move the paddle up and down at a consistent speed.
Learn to accelerate the ball in a Unity pong-style game by adjusting paddle collision with a direction variable (-1,0,1) and a speed multiplier, and using collision handling and debugging tips.
Set up trigger zones as goals with tagged objects, and use onTriggerEnter in ball controller to reset the ball and detect left or right goals, repositioning near the opposite paddle.
Learn to display and style the in-game score using a world-space canvas in Unity, adding a UI text object, setting a default 0-0, and configuring color, alignment, and font size.
Create a game manager with a public score text to track player 1 and player 2 scores, updating the on-screen display when goals occur.
Constrain paddles within the walls by setting upper and lower y axis limits and resetting positions in the update loop, exposing public transforms and applying limits to prefabs.
Add multiplayer to a Unity paddle game by enabling two-player controls with a isPlayer1 boolean, using ws or arrows for movement, and creating a two-player rally with win messaging.
Add a win state in Unity by creating a canvas with win text, set a score target, activate the win screen when the target is reached, and deactivate the ball.
Learn to reset the game in Unity by detecting a key down input and reloading the current scene with scene management, and display a restart prompt in the UI.
Learn how to add a simple AI for the paddle that follows the ball and moves toward it to hit the ball, creating a single-player game.
Design and implement a Unity main menu that lets players choose between single-player and multiplayer modes, loading the corresponding scenes via scene management and ensuring build settings include those scenes.
Implement an escape-to-main-menu feature by detecting the escape key, using the scene manager to load the main menu, and hardcoding this behavior across all scenes for both singleplayer and multiplayer.
Learn to export a Unity tennis game by configuring build and player settings, lock to 16 by 9, set product name and icon, build, and test singleplayer and multiplayer gameplay.
Explore building a brick breaker game in Unity, adding multiple levels, a scoring system, and lives to create a fuller, more engaging experience with paddle, ball, and brick destruction.
Create a 2D Unity project named brick posters, set 16:9 with a black background, build walls with box collider 2D, align using corner-locking with V, and save as level one.
We use a spritesheet to slice bricks, paddle, and ball into separate pieces, adjust pixels per unit, create brick prefabs with color variation, and organize them under bricks.
Reuse the paddle controller code from a previous project to enable left-right movement in a one-player Unity game, using D and A keys, delta time, and left-right limits.
Move and constrain the ball in Unity by adding a rigid body with zero gravity, a bouncy material, and a ball controller script that clamps horizontal speed and sets velocity.
Configure a start sequence in Unity by keeping the ball inactive above the paddle using a ball active boolean, then press space to activate and launch via a game manager.
Add a brick tag to brick objects and implement collision logic so the ball bounces off bricks and destroys them on exit.
Create a response zone with a trigger to reset the ball above the paddle and set the game inactive via the game manager, using a ResponBall function and life tracking.
Create a world-space UI to display lives, initialize starting lives, update the lives text as lives decrease, and show a game over screen at zero.
Create a full-screen game over overlay in Unity by adding a stretched UI image and centered text, activating it when lives reach zero to show all lives lost.
Add a scoring system by creating a score variable and an add score function, assign brick values, and update the game manager when bricks are destroyed.
Set up and display a live score UI by wiring a score text to the game manager, configuring the UI canvas layer, and updating the score as players earn points.
Create a score effect in Unity that spawns a world-space UI text on brick destruction, shows the brick's score, and auto-destroys after a short lifetime.
Create a main menu scene in Unity with a centered logo and two buttons for new and quick game. Load level 1 via scene management and enable pause support.
Create a pause menu in unity that shows game paused and provides resume, main menu, and quit to desktop; uses time scale and pause screen script.
Create a level win screen that unlocks level two by duplicating the first level, setting up a level complete UI, and loading the next scene on any key press.
Activate the level complete screen when all bricks are destroyed by a brick checker in the game manager, pausing time with time scale zero.
Learn to carry over current score and current lives between levels using player press to store data, starting each new game with three lives and a zero score.
Set up a game over screen offering restart level and main menu, reset score and lives, and use Unity scene management to reload the current level.
Implement a high score system in Unity by displaying high score text and initializing it. Set to zero on first play, update when score exceeds it, and preserve across levels.
Import three audio files, create separate audio sources, and attach them to an audio effects container on the ball to trigger on collisions and death, with volume and pitch controls.
Implement a Unity brick-breaker score multiplier by tracking current and max multipliers, updating the on-screen text on brick hits, applying the multiplier to the score, and resetting on misses.
Learn to randomize the ball's firing direction in Unity using Unity's Random.Range to pick a speed between -verticalSpeed and verticalSpeed, so it moves upward and can go left or right.
Update level 2 by saving level 1 as level 2, tweak brick placement, and preserve high scores, multipliers, and sound effects while planning levels with designs and a victory screen.
Build a victory screen in Unity with a new scene and UI text showing the score, and use scene management to return to the main menu on any button press.
Configure build and player settings, set the logo as the main menu icon, enforce a consistent resolution, then build preposterous version 1 of brick busters and run two complete games.
Apply the concepts to a side-scrolling space shooter, building waves of enemies, diverse enemy types, shields, and weapon fire with an exciting boss battle.
Set up a new Unity project, create core folders (art, audio, prefabs, scripts, songs, resources), import assets, auto-slice sprites, and configure a 16 by 9 camera for consistent gameplay.
Move the player with a 2D rigid body and box collider. Use horizontal and vertical input axes, and compare GetAxis versus GetAxisRaw for responsive control and game feel.
Keep the player on screen by clamping the ship's x and y positions between top-left and bottom-right bounds, using two empty transforms and Unity's clamp function.
Add a jet flame behind the ship and animate it with Unity's animation window, creating a jet flame animation saved in the animations folder.
Create a Unity spaceship animation using the animator: idle, up, and down sprites driven by a movements float from GetAxis, with zero transition duration for instant snapping.
Create a scrolling space background in Unity by applying a repeating texture to a plane, adjusting order in layer, and coding a scroll script to offset the texture over time.
Create moving and rotating asteroids by adding circle colliders and rigidbodies with zero gravity, then script leftward movement and z-axis rotation using Euler angles and randomized speeds.
Learn to make asteroids damage the player by turning them into triggers and using on trigger enter 2d to destroy the player's object.
In this lecture, learn to program lasers in unity by creating a player laser with a trigger box, moving it with a script, and destroying it on collision.
Learn how to fire lasers in Unity by creating a laser prefab, wiring a fire point, using GetButtonDown with fire1, instantiating bullets from the fire point, and destroying off-screen lasers.
Learn to implement repeat firing of lasers in Unity by using a shot delay and a countdown that resets after each shot when the fire button is held.
Design and implement a blue particle impact effect for laser hits in Unity by configuring a circular burst, adjusting lifetime, start speed, color variation, and spawning a prefab on collision.
Create a Unity C# script that destroys a game object after a lifetime using delta time. Attach it to prefabs like laser impacts to remove them when their lifetime ends.
Add an enemy ship in Unity, attach a box collider 2d and rigidbody, implement a movement script with x and y speeds, disable gravity, and enable shooting lasers.
Destroy enemies on bullet collisions by checking for the enemy tag and destroying the enemy object, and clean up off-screen enemies with became invisible.
Bind enemy firing to a dedicated enemy shooting script, reuse the player bullet controller with a red enemy laser, and instantiate bullets from a fire point with a defined delay.
Learn to program by making games in Unity demonstrates instantiating a new particle effect to create an explosion when an enemy is destroyed.
Develop and customize a Unity enemy movement system using a new enemyMove script, switch-case move types, and target coordinates; control leftward, vertical, and point-based movement while destroying off-screen enemies.
Set all enemies and lasers to an enemy layer in Unity, configure physics to prevent enemy interactions, and use prefabs to avoid collisions, ensuring smooth combat.
Explore adding diverse enemy types in Unity by enabling shooting, varied movement, and different attack patterns to enrich gameplay. Create more enemies for players to destroy.
Create a wave based enemy system in Unity to spawn groups of foes in level 1. Organize waves as prefabs and manage gameplay with a game manager script.
Create a Unity game manager that spawns waves from an array at a spawn point, using a wave delays array and a wave tracker to stop after the last wave.
Learn how to program by creating your very own games using Unity3D, 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:
Start learning today and let me help you become a game developer!