
Preview a masterclass on making games and web apps using Unity, React, and Redux, as the course trailer highlights the program's hands-on projects and core concepts.
Kick off your Unity journey by building a 3D runner game inspired by Super Mario Run, learning to jump, dodge obstacles, and reach the flagpole.
Explore how the Unity editor works, from creating a new 3D project and organizing folders to navigating the scene, game objects, and inspector with transform and camera components.
Organize Unity project by creating a scripts folder, write a C# game controller with start and update, attach it to a game object, and log hello world to the console.
Declare and initialize variables in Unity, expose a public string message in the editor, and use numbers to compute a sum, then print results to the console.
Create and call methods in Unity to organize code, using a void print message and later a parameterized, string returning method for debug log output.
Learn to implement for and while loops in Unity, with initialization, conditions, and increments, including printing, scoring, spawning objects, and using random ranges to avoid infinite loops.
Learn to create a simple player cube in unity, move and rotate it with a script using transform and vector3, with delta time and adjustable speeds.
Add a floor plane, attach a rigid body to the player, and constrain movement to the x axis. Expose public movement speed and apply velocity to move right, gravity active.
Explore how acceleration drives speed in Unity by updating speed with acceleration times delta time and capping at a maximum movement speed. The camera then follows the player for testing.
Create a Unity camera follow script that locks to the player's position via a target, adds an offset, and uses lerp for smooth, time-based movement.
Learn to implement a smooth camera follow with physics in Unity and enable jumping by using mouse and space inputs to apply vertical velocity.
Implement a jump mechanic using a jumping timer and a 0.75-second jump duration to control how long the player can jump, based on input, and reset when the player lands.
Set up a jumping area in Unity with a trigger box collider, tag it as jumping area, and use on trigger enter and stay to enable jumping.
Define canJump and jumping booleans with a jumping timer to control jump activation when collider tag is 'Jumping Area', and hold the jump button to increase velocity for higher jumps.
Explore wall jumping in Unity by adding a wall with zero friction, a wall jumping area trigger, and directional, speed-tuned wall jumps for dynamic gameplay.
Create and apply materials in Unity to differentiate scene elements by color, enabling orange player, green floor, and brownish wall materials, using drag-and-drop or material slot assignment.
Align wall jumps by freezing horizontal speed in the wall-jumping state; detaching requires pressing jump, then re-enable walking and jumping after exiting the wall.
Create a rotating coin in Unity that players collect to earn points, using a trigger collider to destroy it and save as a prefab for easy reuse.
Store the score in the game controller and update it with a callback when the player collects coins, using an on collect coin action and a simple interface in Unity.
Build a simple Unity game interface by adding a canvas and text elements, anchoring a score display, and adjusting fonts and aspect ratios in the game controller.
Create and customize a brick in Unity, add a collider and destruction area with a trigger script, then reuse bricks as prefabs to build modular levels with coins.
Attach a coin script to bricks, instantiate a coin prefab on destroy, reveal a visual coin that vanishes after a short delay, and notify the player to collect it.
Create a pause block (pole block) that pauses the player on collision, using a trigger collider and a simple script to stop movement, then disable the collider after first hit.
Design moving speed arrows using simple cube primitives, set up an arrow area, create an empty game object, rotate and duplicate to form a prefab, and remove colliders.
Create a speed area in Unity with a speed area script and a trigger collider, set left or right direction, rotate arrows for visuals, and prefab the area for reuse.
Identify when the player enters speed areas using trigger enter and exit, and implement left and right speed area booleans to adjust the player's speed in Unity.
Adjust player movement by adding left and right speed parameters, an acceleration factor, and a target movement speed to control gradual speed changes in Unity.
Organize Unity scripts with property attributes to group fields under headers and expose ranges with sliders, enabling quick tuning of acceleration, movement speed, and jumping.
Create a long jump block in Unity by adding an empty game object, attaching a long jump script, using a trigger box collider, and adjusting normal and long jump speeds.
Create a simple enemy in Unity, organize a shared enemy script for multiple foes, and implement left-right patrol movement with speed and amplitude.
Implement kill logic to kill the player on enemy contact, stop movement, disable the player's collider, apply a death force via rigidbody, and halt camera follow.
Learn to restart the game when the player dies using a restart timer in update, then reload the current scene with Unity scene management to reset state and lighting.
Learn to implement destroyable enemies in Unity using a destruction area and destroyer script, a shared base enemy with a protected dead variable, on-kill callbacks, and prefabs.
Design and implement a shell enemy by cloning a simple enemy prefab, introducing a patrolling enemy base, and extending scripts to enable left-to-right movement and shell spawning.
Learn to fix jump logic in Unity with an optional force parameter to prevent infinite jumping, and spawn a rotating shell prefab on enemy kill.
Create shell movement in Unity by moving its transform along the x axis with a movement speed. Use triggers and rigidbody to bounce off bricks and destroy enemies on collision.
Design the plant enemy in a Unity 2D game by building a pipe obstacle, configuring colliders, and scripting vertical movement to kill the player on contact.
Toggle plant movement in Unity between visible height and hidden height using local position, movement speed, and a timer for hiding, waiting, and revealing.
Adjust collision logic for shell enemies to destroy on trigger collisions and resolve shell passing through pipes; test interactions and adopt an iterative development approach.
Design and implement a platform game power-up, featuring a rotatable model with a collider, a colored cube visual, and a particle system for standout effects.
Implement power-up collection in Unity by scripting trigger enter detection, applying effects, spawning a particle burst, and destroying the collected power-up while enlarging the player.
Enable a one-point health system and invincibility after collecting a power-up in Unity, granting temporary invulnerability for a few seconds with blinking visual feedback.
Implement a Unity invincibility blinking effect by scripting a public player model reference, dividing the duration into 75% blinking and 25% fast blinking, and toggling the model's visibility during gameplay.
Learn to switch between a normal model and a power-up model in Unity by scaling and coloring one while setting the other active, controlled by Start and collect events.
Create a finish line in Unity using a prefab, trigger collider, and flagpole; script finish logic to pause the player, stop the camera, and load the next level.
Create a parallax background using multiple layers, replace the plane with a cube, and add mountains and clouds to simulate depth as the player moves.
Build a parallax background in Unity by creating a dedicated C# script, assigning it to two layers, and loading multiple background elements (mountains, clouds) to move them in sequence.
Create a parallax mountain background by duplicating elements, defining an offset, and repositioning elements as the player moves to create an infinite scrolling scene in unity.
Create a cloud layer using duplicates, resizing, and precise 30-unit spacing to build a parallax background, test across multiple aspect ratios, and iterate for improved movement.
Add a public float speed to the parallax background, then move each background element left by speed times delta time using Vector3.left in the update method.
Resize the floor, then reposition the jumping area so it lies under the player. Move the area closer to the player and press play to verify you can jump again.
Design a Unity main menu with a title and play button, configure the canvas scaler for 1366x768, and wire the button to load level 1 1 via scene management.
Create bottom-left and bottom-right anchors in Unity to bind credits text and a help button to corners, ensuring UI adapts across 4:3 and 16:9 aspect ratios.
This lecture shows how to implement a health panel and a full-canvas help overlay in Unity, with responsive aspect-ratio handling, readable instructions, and show/hide logic via a help button.
Replace the player's box collider with a sphere collider, adjust the radius, and enable forgiving physics to reduce stuttering when colliding with bricks, keeping gameplay smooth.
Tune gravity globally in Unity to improve jumping and player control by exposing a public gravity variable in the game controller and updating gravity as a Vector3 each frame.
Tune wall jumping parameters by adjusting vertical speed and horizontal wall jumping speed, using public variables and descriptive headers to refine jumps and avoid level stalling.
Fix brick interactions in a Unity game by updating the brick and player logic to stop the player's movement when bricks are destroyed, preserve horizontal velocity, and prevent unintended jumps.
Learn to manage shell collisions in Unity using a collision matrix to ignore areas like speed and long jump blocks. Assign layers to enemies and areas, update prefabs, and test.
Learn to auto-destroy game objects after a set time by writing a Unity C# script that uses a public timer, Time.deltaTime, and destroy calls, then apply it to shell prefabs.
Adjust the enemy jumping speed to improve playability by exposing a public destroy enemy jumping speed, testing values in the editor, and tuning through iteration in Unity.
Implement shell physics in Unity by enabling gravity and proper colliders for the shell enemy, and refine trigger versus collider interactions and radius tolerance area checks.
Master shell collision logic in Unity by skipping destruction on player or destroyer contact, and verify with debug prints to ensure enemies are destroyed as the shell advances.
Adjust the horizontal shell collision logic in Unity by moving from trigger enter to collision enter, enabling shells to hit enemies and fall properly.
Implement an ignore rule by tagging the jumping area and adjusting the shell's collider to ignore it, preventing flipping; test in Unity to verify forward movement and enemy collisions.
Implement a singleton level manager in Unity to track world and level progression, providing a globally accessible instance and debug logs for level loading.
Learn how to implement level loading in Unity by using a level manager to track the current world and level and load scenes with scene management.
implement level progression with a level manager to load the next level, increment world and level numbers, and display the level name in Unity.
Duplicate levels while ensuring consistency across scenes by using prefabs for the player, backgrounds, and canvas. Save changes and configure build settings to keep levels uniform.
Design level 1-1 by cleaning the scene, placing the floor, walls, and coins, and tuning the player's position, gravity, speed, and jump for clear progression to level 1-2.
Duplicate level 1 to create level 1-2 in Unity, adjust lighting, and build coin blocks with enemies and a finish line. Iterate on enemy speed and spacing through play testing.
Design and test level 1-3 in Unity by creating a wall jump area, adding coins and plant enemies, and a finish line, while tuning lighting and level progression across sublevels.
Define maximum world and maximum level constants in Unity to prevent loading non-existent levels. Validate loaded world and level, and redirect to the main menu when bounds are exceeded.
Want to be a web or game developer? Even if you have never coded before, with this course you can learn the foundations of making a 3D game and coding for the web!
"This was a good match for me, I have some programming background. Might be a bit heavy for people without any programming experience. Good overall starter project with great examples of how to code properly from the start."
In Part 1 of this course, we build a 3D SUPER MARLO RUN game in Unity® – from scratch.
This course does not assume any prior knowledge and is perfect for beginners. In fact, we begin with an introduction to Unity® for those who have never used it before.
This course is unique because you will learn how to make your own 3D art, models, and textures in Blender. We will show you how to integrate the art into Unity.
By the end of Part 1, you will have a functioning runner game that you can build on to add your own project ideas!
In Part 2, you learn how to build beautiful, well-functioning web apps. Join web developer Chris Veillette to start coding for the Internet.
Included in this course is material for beginners to get comfortable with the interfaces. Please note that we reuse this material in similar courses because it is introductory material. You can find some material in this course in the following related courses:
Why React?
React is an efficient and flexible JavaScript library for building user interfaces. Many popular websites including Instagram, Facebook, Netflix, and Imgur use React.
You can build your own web apps! This course is full of practical examples.
We teach you theory while also building real projects that you can put in your web development portfolio.
Your purchase includes the ebook "Build a Super Marlo Runner Game in Unity®" by Mammoth Interactive. Sign up right now to join the Mammoth community