Ever feel that your game just doesn’t feel quite right?
Learn how to fix that by implementing a bunch of fun systems, mechanics and effects to enhance the way your game feels from a player perspective.
Building upon solid C# and Unity foundations, it’s time for you to level up.
Increase your C# understanding, learn how to implement things like a struct, centralized input, interfaces, and several game design patterns.
And expand on your Unity knowledge by learning screen shake, post-processing effects, 2D lighting, particle effects, tilemap prefabs, masking, Unity events, and much more.
Ever feel that your game just doesn’t feel quite right?
Learn how to fix that by implementing a bunch of fun systems, mechanics and effects to enhance the way your game feels from a player perspective.
Building upon solid C# and Unity foundations, it’s time for you to level up.
Increase your C# understanding, learn how to implement things like a struct, centralized input, interfaces, and several game design patterns.
And expand on your Unity knowledge by learning screen shake, post-processing effects, 2D lighting, particle effects, tilemap prefabs, masking, Unity events, and much more.
Plus, you’ll even build an expandable Audio Manager system that can be used in other mid-sized scalable projects.
You’ll start with a simple 2D side scroller shooter base template and expand on it to get things feeling the way they should.
You’ll make a game that “feels” fun to play with a clean and snappy player controller, a gun that’s fun to shoot, audio and screen visuals to give your player feedback, as well as animations to bring everything together.
This course is suitable for all levels of Unity users. So if you’re a beginner to intermediate Unity developer looking to expand your foundation knowledge, maybe you’ve taken our beginner 3D or 2D courses and are looking for the next step, or you’ve used Unity to participate in a game jam or two and are looking to take your projects and games to the next level, this is the course for you.
You’ll get full lifetime access for a single one-off fee. The creators are qualified and experienced with modelling and coding, so are able to explain complex concepts clearly, as well as entertain along the way.
You’ll also gain access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Get plugged into our communities of amazing developers on Facebook (nearly 20k), in our own TA-curated Community (17k views/day), and our student chat group (10k live at any one time).
So enrol today and get your game feeling just right.
In this video (objectives)…
Stephen Welcomes you to the course and gives you some insight into what you’ll be creating!
In this video (objectives)…
Let’s create a brand new project with the 2D (URP) settings using Unity 2023.1. We’ll import the Unity Package we’ll be using as a starting point for the course and rig up a few needed prerequisites.
In this video (objectives)…
Download Unity Hub and Visual Studio Code, including the extensions for C# and Unity Code Snippets.
In this video (objectives)…
If you're experiencing issues with VS Code or IntelliSense not working properly, this guide will walk you through several steps to hopefully get things working.
In this video (objectives)…
Get caught up to speed on the project package. Review the project hierarchy, folder structure, and current scripts up to this point.
In this video (objectives)…
We introduce the ways that you can get help, support and contribute to the community.
In this video (objectives)…
Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video, we show you how to access that content.
In this video (objectives)…
In this section, we’ll dive straight into improving our gun mechanics.
In this video (objectives)…
Adjust our aim so that not only does the bullet fire in the direction of the mouse but the gun points in that direction as well.
In this video (objectives)…
Introduce a mechanic so that we can hold down the left mouse button to rapid-fire our gun.
In this video (objectives)…
A brief lecture on what the observer pattern is and how it’s useful to us in this course.
In this video (objectives)…
Create some visual feedback for the user when the gun fires by rigging up a gun recoil animation.
In this video (objectives)…
Introduce object pooling by using our bullets as a first example.
In this video (objectives)…
Use Cinemachine’s impulse listener and source components in a way to increase our gun recoil visual feedback.
In this video (objectives)…
Nothing is more frustrating than a bad Player Controller, let’s clean ours up in this section!
In this video (objectives)…
Improve our jump detection functionality in our Player Controller.
In this video (objectives)…
Switch over to the new Unity input system.
In this video (objectives)…
Continue refactoring our new input utilizing a struct in a way that centralizes all player input.
In this video (objectives)…
Let’s make a modular movement class that can be shared for both our player and our enemies.
In this video (objectives)…
Add some snappiness to our player with custom gravity effects after a bit of hang time in the air.
In this video (objectives)…
Every good side scroller needs a double jump mechanic.
In this video (objectives)…
Coyote time is a popular jump trick a lot of player controllers will use to get the jump of a player feeling good when running off an edge. Let’s implement it in our project.
In this video (objectives)…
In this section, we’ll continue to add on to our combat mechanics implementing things like knockback, a flash mechanic, and some nice slime splatter effects.
In this video (objectives)…
Knockback is an essential feature when adding visual and physical feedback to the user. Let’s create a modular class to do so.
In this video (objectives)…
Add some visual feedback to when our enemies get hit creating a nice Flash coroutine to do so.
In this video (objectives)…
Create a ColorChanger class we can attach to gameobjects like our pipe, allowing our enemies to have different spawning colors.
In this video (objectives)…
Add a visual splat effect using tile mask prefabs and sprite masks.
In this video (objectives)…
Continue adding to our death visual feedback by adding a nice particle system when a slime gets destroyed.
In this video (objectives)…
Create a handler class to manage our enemy deaths while learning how to pass through sender info through Action’s.
In this video (objectives)…
Very often all the player needs is a little bit more visual feedback to get the game feeling like their actions matter. Let’s tackle that in this section.
In this video (objectives)…
Let’s get a dust pop up particle system effect going when our player is walking on the ground.
In this video (objectives)…
Add some lean on our player model while moving around.
In this video (objectives)…
Add a little bit of extra oomph to the way our player looks and feels with a little bit of hat movement.
In this video (objectives)…
Create a new particle system effect for when our play jumps or double jumps using the texture sheet animation property.
In this video (objectives)…
Take that same effect and get it playing when we hit the ground if our player’s velocity is high enough.
In this video (objectives)…
Every Unity 2D game needs a bit of bloom post-processing! Let’s create a basic shader graph to do so.
In this video (objectives)…
What better way to add mood and ambience than with an effective lighting system. Let’s take advantage of Unity’s 2D lighting in this section.
In this video (objectives)…
Introduce some basic 2D lighting effects with a subtle muzzle flash at the end of our gun when we fire a bullet.
In this video (objectives)…
Set up a pointed spotlight emitting out of our new spotlight prefab.
In this video (objectives)…
Set up some fun logic that we can use to oscillate our lights back and forth and change their colors as needed.
In this video (objectives)…
Interfaces are a powerful tool to put in a developer's arsenal. Implement a couple of interfaces refactoring the way our bullet does damage.
In this video (objectives)…
Make it so that no matter which Disco Ball we hit we can plug into a Disco Ball Manager class event and fire off some fun effects.
In this video (objectives)…
Let’s build a scalable audio manager system that we can use in not only this project, but other projects as well as needed.
In this video (objectives)…
Take some time to gather a list of assets according to what we’ll need.
In this video (objectives)…
Start setting up our audio system introducing scriptable objects as a way to hold our sound data.
In this video (objectives)…
Get the first steps of our Audio Manager rigged up and play our first sound.
In this video (objectives)…
Using our custom scriptable object data for each individual sound, manage our volume and pitch appropriately.
In this video (objectives)…
Make it so that if we have multiple sound effects for the same action, we can randomize which one will play.
In this video (objectives)…
Create an Audio Mixer so that our SFX and music sounds can play through separate audio mixer groups as needed.
In this video (objectives)…
Clean up our Audio Manager class organization as well as create a custom Utils class we can use to help keep our code clean.
In this video (objectives)…
Take some time towards the end of the course to include some additional features to touch a few more key learning points.
In this video (objectives)…
Implement a parallax effect on our background images.
In this video (objectives)…
Learn about platforms effectors and create some one way platforms in our scene.
In this video (objectives)…
Introduce a Jetpack mechanic in our Player Controller using a combination of Input, Trail Renderer, and 2D Physics.
In this video (objectives)…
In this multi-part lecture, let’s create a grenade mechanic on your own! You have every thing you need in your arsenal to bring every thing you’ve learned together in this big challenge.
In this video (objectives)…
In part one of this solution let’s rig up some prefabs that we can use in our code moving forward.
In this video (objectives)…
Next up, let’s get our grenade exploding on contact when it comes in contact with the slimes.
In this video (objectives)…
Let’s make sure the slimes are taking damage and getting destroyed when our grenade explodes.
In this video (objectives)…
Wrap up the challenge bringing every thing together with Audio for our launch, beep, and explosion sound effects.
In this video (objectives)…
Bring every thing together in this last section. Tie in previous systems altogether to make a cohesive and fun system.
In this video (objectives)…
Rig up or Health, Knockback, and Flash components on our Player.
In this video (objectives)…
Increase our score UI by one every time an enemy slime is destroyed using our nicely constructed event system we already have in place.
In this video (objectives)…
Create a simple game loop respawning the player as needed in a safe zone.
In this video (objectives)…
Implement some custom SFX logic into our AudioManager in a way that properly handles our enemy OnDeath event.
In this video (objectives)…
Add some final touches to our PlayerController in a way to max out our player’s max fall speed velocity.
In this video (objectives)…
Well done! Until next time!
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.