We may earn an affiliate commission when you visit our partners.
GameDev.tv Team and Stephen Hubbard

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.

Read 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.

Enroll now

What's inside

Learning objectives

  • Learn how to implement things like a struct, centralized input, interfaces, and several game design patterns.
  • Implement screen shake, post-processing effects, 2d lighting, particle effects, tilemap prefabs, masking, unity events, and much more!
  • Increase your level of understanding when it comes to good c# practices.
  • Build an expandable audio manager system in c# & unity that can be used in other mid-sized scalable projects.
  • Build good clean systems in c# and practice good code architecture principles.
  • Expand your foundational knowledge of unity.
  • Show more
  • Show less

Syllabus

Introduction & Setup

In this video (objectives)…

  1. Stephen Welcomes you to the course and gives you some insight into what you’ll be creating!

Read more

In this video (objectives)…

  1. 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)…

  1. Download Unity Hub and Visual Studio Code, including the extensions for C# and Unity Code Snippets.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. We introduce the ways that you can get help, support and contribute to the community.

In this video (objectives)…

  1. 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)…

  1. In this section, we’ll dive straight into improving our gun mechanics.

In this video (objectives)…

  1. 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)…

  1. Introduce a mechanic so that we can hold down the left mouse button to rapid-fire our gun.

In this video (objectives)…

  1. A brief lecture on what the observer pattern is and how it’s useful to us in this course.

In this video (objectives)…

  1. Create some visual feedback for the user when the gun fires by rigging up a gun recoil animation.

In this video (objectives)…

  1. Introduce object pooling by using our bullets as a first example.

In this video (objectives)…

  1. Use Cinemachine’s impulse listener and source components in a way to increase our gun recoil visual feedback.

In this video (objectives)…

  1. Nothing is more frustrating than a bad Player Controller, let’s clean ours up in this section!

In this video (objectives)…

  1. Improve our jump detection functionality in our Player Controller.

In this video (objectives)…

  1. Switch over to the new Unity input system.

In this video (objectives)…

  1. Continue refactoring our new input utilizing a struct in a way that centralizes all player input.

In this video (objectives)…

  1. Let’s make a modular movement class that can be shared for both our player and our enemies.

In this video (objectives)…

  1. Add some snappiness to our player with custom gravity effects after a bit of hang time in the air.

In this video (objectives)…

  1. Every good side scroller needs a double jump mechanic.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. Add some visual feedback to when our enemies get hit creating a nice Flash coroutine to do so.

In this video (objectives)…

  1. Create a ColorChanger class we can attach to gameobjects like our pipe, allowing our enemies to have different spawning colors.

In this video (objectives)…

  1. Add a visual splat effect using tile mask prefabs and sprite masks.

In this video (objectives)…

  1. Continue adding to our death visual feedback by adding a nice particle system when a slime gets destroyed.

In this video (objectives)…

  1. Create a handler class to manage our enemy deaths while learning how to pass through sender info through Action’s.

In this video (objectives)…

  1. 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)…

  1. Let’s get a dust pop up particle system effect going when our player is walking on the ground.

In this video (objectives)…

  1. Add some lean on our player model while moving around.

In this video (objectives)…

  1. 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)…

  1. Create a new particle system effect for when our play jumps or double jumps using the texture sheet animation property.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. Set up a pointed spotlight emitting out of our new spotlight prefab.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. Take some time to gather a list of assets according to what we’ll need.

In this video (objectives)…

  1. Start setting up our audio system introducing scriptable objects as a way to hold our sound data.

In this video (objectives)…

  1. Get the first steps of our Audio Manager rigged up and play our first sound.

In this video (objectives)…

  1. Using our custom scriptable object data for each individual sound, manage our volume and pitch appropriately.

In this video (objectives)…

  1. 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)…

  1. Create an Audio Mixer so that our SFX and music sounds can play through separate audio mixer groups as needed.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. Implement a parallax effect on our background images.

In this video (objectives)…

  1. Learn about platforms effectors and create some one way platforms in our scene.

In this video (objectives)…

  1. Introduce a Jetpack mechanic in our Player Controller using a combination of Input, Trail Renderer, and 2D Physics.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. Next up, let’s get our grenade exploding on contact when it comes in contact with the slimes.

In this video (objectives)…

  1. Let’s make sure the slimes are taking damage and getting destroyed when our grenade explodes.

In this video (objectives)…

  1. Wrap up the challenge bringing every thing together with Audio for our launch, beep, and explosion sound effects.

In this video (objectives)…

  1. Bring every thing together in this last section. Tie in previous systems altogether to make a cohesive and fun system.

In this video (objectives)…

  1. Rig up or Health, Knockback, and Flash components on our Player.

In this video (objectives)…

  1. 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)…

  1. Create a simple game loop respawning the player as needed in a safe zone.

In this video (objectives)…

  1. Implement some custom SFX logic into our AudioManager in a way that properly handles our enemy OnDeath event.

In this video (objectives)…

  1. Add some final touches to our PlayerController in a way to max out our player’s max fall speed velocity.

In this video (objectives)…

  1. Well done! Until next time!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Expands foundational Unity knowledge, which is ideal for those looking to build upon existing skills and create more engaging games
Uses Unity 2023.1, which is a relatively recent version, ensuring that learners are working with current tools and practices
Covers C# practices, game design patterns, and Unity features, which are essential for creating polished and professional-feeling games
Teaches the new Unity input system, which is a modern approach to handling player input and is essential for creating responsive games
Requires Visual Studio Code, including extensions for C# and Unity Code Snippets, which may require additional setup for some learners
Focuses on improving game feel through visual and audio feedback, which is a crucial aspect of game design often overlooked in beginner courses

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Mastering unity game feel with c#

According to learners, this course is a highly effective guide to improving game feel in Unity 2D, offering a practical, hands-on approach. Students particularly praise the clear explanations and engaging teaching style. The course structure, building incrementally on a provided base project, is frequently highlighted as a strength, making complex topics manageable. Reviewers note that it significantly enhances understanding of mechanics like player controllers, weapons, and visual/audio feedback. While it assumes some prior Unity/C# knowledge, many feel it's accessible to intermediate levels and provides excellent value, teaching transferable skills and good coding practices.
Suitable for intermediate Unity/C# users.
"This course is definitely aimed at intermediate users, building on existing knowledge."
"While they say beginner to intermediate, a solid grasp of C# and Unity basics is necessary."
"It was a great next step after completing a beginner course."
"If you're comfortable with Unity and C#, this course is perfectly paced."
Instructors maintain interest and enjoyment.
"The instructor is really engaging and makes the learning process fun."
"Stephen's enthusiasm is infectious and makes the course enjoyable."
"The course kept me interested and motivated to finish."
"It's 'Where Code Meets Fun!' and they actually deliver on the fun part."
Emphasizes good coding architecture and patterns.
"I appreciated the focus on clean code architecture and design patterns like Observer."
"Learning how to build a scalable Audio Manager using Scriptable Objects was a highlight."
"It covers useful C# concepts like structs, interfaces, and centralized input."
"The course helped me improve my coding practices in Unity projects."
Focuses on practical application and projects.
"The hands-on coding and projects are the strongest part of the course for me."
"I learned to implement practical game feel elements and build on a solid code base."
"The course is very practical, focusing on implementing features rather than just theory."
"The project-based structure is great for learning by doing."
Instructors explain complex topics clearly.
"The instructor explains things very well and gives useful tips along the way."
"Everything is clearly explained, and while it can be a bit fast paced at times, it is easy to follow along."
"The lectures are clear, well-structured, and easy to understand, even for someone relatively new to game development."
"He has a talent for explaining complicated concepts in a way that is very easy to follow."
Effectively teaches techniques to enhance game feel.
"My game feels so much better after applying the techniques taught here."
"I now understand how to add polish and make player actions feel impactful."
"This course gave me concrete methods to improve the 'snappiness' and feedback in my game."
"It covers essential game feel elements like screen shake, particle effects, and sound."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Game Feel in Unity: Where Code Meets Fun! with these activities:
Review C# Fundamentals
Strengthen your C# foundation to better understand the scripting and game logic used throughout the course.
Show steps
  • Review basic syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with object-oriented programming concepts.
Brush up on Unity Basics
Revisit the Unity interface, scene management, and basic scripting to prepare for the course's more advanced topics.
Show steps
  • Explore the Unity editor interface.
  • Create a simple scene with basic game objects.
  • Write a basic C# script to control object behavior.
Unity in Action, Third Edition
Use this book as a reference to deepen your understanding of Unity concepts and techniques covered in the course.
Show steps
  • Read chapters related to topics covered in the course.
  • Experiment with the code examples provided in the book.
  • Use the book as a reference when working on course projects.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement Screen Shake
Practice implementing screen shake using Cinemachine Impulse to reinforce the concepts taught in the 'Weapon Improvements' section.
Show steps
  • Create a new Unity project or use an existing one.
  • Install the Cinemachine package.
  • Set up a Cinemachine Virtual Camera.
  • Create a script to trigger a Cinemachine Impulse on specific events.
Create a Visual Effects Reel
Showcase your understanding of visual effects by creating a short video reel demonstrating the effects learned in the course.
Show steps
  • Record gameplay footage showcasing different visual effects.
  • Edit the footage to create a compelling reel.
  • Add music and sound effects to enhance the video.
  • Share your reel online.
Explore Advanced Audio Mixing
Deepen your understanding of audio mixing by following online tutorials and experimenting with different techniques.
Show steps
  • Find tutorials on advanced audio mixing techniques in Unity.
  • Experiment with different audio mixer settings.
  • Apply these techniques to your game projects.
Expand the Audio Manager
Enhance the Audio Manager system built in the course by adding features like music playlists, sound effect customization, and volume control.
Show steps
  • Plan the new features you want to add.
  • Implement the new features in C#.
  • Test the Audio Manager thoroughly.
  • Document your changes.

Career center

Learners who complete Mastering Game Feel in Unity: Where Code Meets Fun! will develop knowledge and skills that may be useful to these careers:
Indie Game Developer
An Indie Game Developer often works independently or in small teams, handling multiple aspects of game creation. This course provides a comprehensive overview of the skills needed to make a game feel polished and professional. From improving player controls and gun mechanics to implementing visual and audio feedback, you'll gain practical experience in all areas. The course also teaches valuable C# and Unity skills, making it ideal for an Indie Game Developer looking to enhance their capabilities. By taking this course, an Indie Game Developer can elevate the quality of their games and create more engaging experiences for players.
Gameplay Programmer
A Gameplay Programmer focuses on the interactive elements of a game, ensuring that the mechanics are engaging. This course builds a solid foundation by teaching you how to implement systems and mechanics to enhance the player experience. You’ll learn how to improve player controls, create satisfying gun mechanics, and add visual and audio feedback. This also gives you experience with C# practices and Unity, which are essential for a Gameplay Programmer, providing skills in areas like screen shake, particle effects, and audio management. The skills acquired in this course allow a Gameplay Programmer to create more immersive and enjoyable games.
Unity Developer
A Unity Developer uses the Unity engine to create video games and other interactive experiences. This course is specifically designed to expand your Unity knowledge and shows you how to implement systems and mechanics that significantly improve the feel of a game. You’ll learn about C# and Unity features like screen shake, post-processing effects, 2D lighting, and particle effects. The course directly aligns with the skills needed to design and refine interactive elements. This course helps Unity Developer create games that are technically sound and aesthetically pleasing, leading to engaging player experiences.
Audio Designer
An Audio Designer creates sound effects and music that immerse players in the game world. This course includes building an expandable Audio Manager system in C# and Unity. You will learn how to implement audio feedback that enhances the player experience. An Audio Designer can use the system built in this course to create audio that enhances the overall feel of the game and make the game's world come to life.
Game Designer
A Game Designer is responsible for the overall vision and mechanics of a game, focusing on what makes a game fun and engaging. This course shows you how to implement systems and effects to enhance the player experience. The course covers improving player controls, creating satisfying interactions, and providing rich feedback through audio and visuals. For a Game Designer, understanding how code translates into tangible player experience is crucial, and this course offers practical experience in making those connections. The knowledge gained in this course means a Game Designer can create more compelling and immersive games.
Technical Artist
A Technical Artist bridges the gap between art and programming, optimizing assets and creating tools for artists. This course provides valuable insights into the technical aspects of game feel, including implementing screen shake, post-processing effects, and particle effects. You'll also learn about Unity features like masking and 2D lighting, enhancing your ability to create visually appealing and performant games. A Technical Artist can use the knowledge gained in this course to optimize visual elements and create tools that improve the overall feel of a game.
Mobile Game Developer
A Mobile Game Developer adapts and optimizes games for mobile platforms. This course, which uses Unity, helps you enhance the feel of a game, apply good C# practices, implement clean systems, and expand your foundational knowledge of the engine. Given the vast amount of mobile games on the market, creating a game with a certain 'feel' makes yours stand out from the rest. The knowledge and skills gained in this course make you more marketable as a mobile game developer.
Effects Artist
An Effects Artist is in charge of creating visual effects that enhance the look and feel of a game. This course teaches you how to implement screen shake, post-processing effects, and particle effects. You will also learn about Unity features like masking and 2D lighting. An Effects Artist can use the knowledge gained in this course to create visual effects that contribute to the overall feel and impact of the game.
Level Designer
A Level Designer creates the environments and layouts in which gameplay takes place. This course demonstrates how to enhance the player experience through controls, feedback, and environmental effects. The course covers Unity features like tilemap prefabs and 2D lighting, which are directly applicable to level design. A Level Designer can use these skills to create levels that not only look good but also contribute to the overall feel of the game. The knowledge gained from this course enables a Level Designer to craft more immersive and engaging environments.
Animator
An Animator creates the motion and visual effects that bring characters and objects to life in a game. This course teaches you how to implement animations that enhance the feel of a game, such as gun recoil and player movement. The course covers Unity features and C#, providing you with the skills to integrate animations seamlessly into the game. An Animator can use the knowledge gained in this course to create animations that not only look good but also contribute to the overall feel and responsiveness of the game.
Tools Programmer
A Tools Programmer develops software and scripts that help game developers streamline their workflow. This course teaches about building expandable systems and implementing game design patterns, which are valuable skills for creating efficient tools. You will learn how to improve code architecture and implement reusable components. A Tools Programmer can leverage the knowledge gained in this course to develop tools that enhance the productivity of game development teams and improve the overall quality of the games.
XR Developer
An XR Developer creates immersive experiences for virtual reality, augmented reality, and mixed reality platforms. This course helps you master game feel in Unity. It will enable you to enhance the way that your game feels. As an XR Developer, you are expected to leverage technologies to yield a uniquely immersive experience. The specific skills taught in this course are directly transferable to the XR field.
AI Programmer
An AI Programmer designs and implements artificial intelligence systems within games, controlling the behavior of non-player characters (NPCs) and creating intelligent gameplay mechanics. This course may be useful. It will enable you to implement robust AI behavior. A key feature of an AI Programmer is to create interactive and immersive gameplay, which can make this course helpful.
AR/VR Developer
An AR/VR Developer focuses on augmented and virtual reality applications, creating immersive and interactive experiences. This course may be useful. It will enable you to build enjoyable user experiences in AR/VR by creating intuitive and engaging interactions. In order to be successful in this role, you must have familiarity with visual and audio feedback, which this course aims to teach.
Software Engineer
A Software Engineer designs, develops, and tests software applications, ensuring they are efficient and reliable. This course may prove valuable. It can enable you to learn and practice essential coding principles and design patterns, as well as to expand foundational knowledge of an engine. Many skills from this course are transferable. The learning objectives of this course can allow a Software Engineer to improve and expand their knowledge.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Game Feel in Unity: Where Code Meets Fun!.
Provides a comprehensive guide to Unity development, covering a wide range of topics relevant to the course. It serves as a valuable reference for understanding Unity's features and best practices. While not strictly required, it offers additional depth and breadth to the course material. It is commonly used as a textbook in game development courses.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser