MMFeedbacks is a solution to provide on-demand game feel to your Unity game,
with as little friction or setup as possible.
It's modular, user friendly, and very easy to extend and build upon.
Initially created for the Corgi Engine
and the TopDown Engine,
it's a proven and battle tested solution that just gets the job done.
Contents of the asset?
The asset comes with the MMFeedbacks system, which lets you stack and trigger feedbacks extremely easily. It's packed with tons of them, ready to use. Most of them
are completely autonomous and don't require any dependency, and some of them will require Cinemachine or Unity's PostProcessing. Feel free not to use them if you don't want to.
You'll also find haptics feedbacks in the asset, and Nice Vibrations
is included as a gift, as is the MMTools library. It's absolutely not necessary to use that library to
trigger feedbacks, it's actually completely unrelated, but it's a nice toolbox and is included in the asset for free.
Here's a complete list of all the feedbacks included in the asset :
Animation : lets you play any animation on an animator
Blink : lets you blink objects in various manners
Enable Behaviour : enables or disables a monobehaviour when the feedback plays
Flicker : lets you rapidly change the color of a material
Float Controller : possibly the most powerful of all the MMFeedbacks, this one lets you control a float value on any monobehaviour
Instantiate Object : spawns objects when the feedback plays
Material : lets you change a renderer's material, with multiple options to do so
Position : lets you tweak the position of a transform over time
Rigidbody : lets you add force and torque to Rigidbodies with multiple options
Rigidbody2D : lets you add force and torque to Rigidbodies 2D with multiple options
Rotation : lets you play with the rotation of a transform over time
Scale : lets you animate the scale of a transform over time
Set Active : sets an object active or inactive
Shader Controller : similar to the Float Controller, lets you control most settings of any shader
Wiggle : lets you play with rotation, scale and position over time
Shake : shakes the camera over time
Zoom : lets you zoom in or out when the feedback plays
Flash : flash an image on screen, or simply a color for a short duration
Fade : fade an image in or out, useful for transitions
AudioSource : lets you play a preexisting audiousource on demand
Events : lets you associate any sort of Unity event to a feedback
Freeze Frame : freeze the timescale for a short duration
Light : complete control over a light's intensity and color over time
Particles Play : control existing particles
Particles Instantiation : instantiate particles and play them
PPMovingFilter : lets you control the position of a post processing volume relative to a camera, acting as moveable filters on an actual camera
Sound : triggers a sound, packed with options
Time Modifier : complete control over time, slow it down, speed it up, etc
For these you'll need to install the required dependency (Cinemachine or PostProcessing via Unity's PackageManager, or NiceVibrations, included for free with the asset).
Cinemachine Impulse : trigger an impulse, comes with all of Cinemachine's impulse options
Nice Vibrations Haptics : trigger a haptic feedback
Bloom : control bloom intensity over time
Chromatic Aberration : control the force of a chromatic aberration over time
Color Grading : lets you play with many color grading options : post exposure, saturation, hue shift, contrast...
Depth of Field : lets you control depth of field parameters over time
Lens Distortion : lens distortion on demand
Vignette : control vignette parameters over time
What are MMFeedbacks?
I strongly believe game feel (or juice, or microinteractions, or feedbacks, or whatever you prefer to call it) is one of the most important parts of game design.
Making sure the player understands the consequences of their actions is the best way to make sure interactions are rewarding and engaging.
Providing proper feedback when the player makes an action, or when something significant happens in the game is mandatory.
Whether it's a screenshake, a flash, an object's scale bumping, or all of these at once, it will only make the experience more satisfying.
You can learn more about feedbacks in Martin Jonasson and Petri Purho's talk "Juice it or lose it", the wonderful "Art of screenshake" talk by Jan Willem Nijman,
or my own talk about game feel and fast prototyping at Unite Los Angeles in 2018.
Implementing these kinds of feedbacks isn't necessarily rocket science, shaking a camera is quite an easy task. But after working on tons of games and prototypes,
I've found myself often going back to the same game feel recipes, and I wanted to remove as much friction as possible between an idea for a
feedback and its in-game implementation.
You can't redistribute the code or any of the content of the asset.
The names MMFeedbacks, Nice Vibrations, More Mountains and Reuno Corp are copyrighted. Apart from that,
feel free to use all code and visual assets included in the asset in your games, including commercial ones.