What is Momentum?

Momentum is an open source (Github) Unity game asset focused on providing a movement framework that can be easily modified and extended. The movement is Celeste inspired with tight fluid controls (try our demo) and aims to be simple but effective. This simplicity and extendibility allows your creativity to sculpt your game rather than compromising with prebuilt functions.

It uses the default Unity components, such as RigidBody2D and BoxCollider2D to ensure compatibility with the default Physics system as well as any assets using this physics system. Although Momentum uses BoxCollider2D by default, changing to a CapsuleCollider2D is straightforward.

Read more about the philosophy of Momentum here.

Trailer

Trailer Thumbnail

States Available

  • Idle State
  • Move State
  • Sprint State
  • Jump State
  • Crouch Idle State
  • Crouch Move State
  • Ledge Hang State
  • Ledge Climb State
  • Dash State
  • Wall Jump State
  • Wall Climb State
  • Wall Grab State
  • Wall Slide State
  • Fall State
  • Fly State
  • Land State

How to get started

First view the Setup Guide to setup Momentum. View An Overview of the Components to get an understanding of how Momentum works and finally view Creating Your Own States if you plan on making additional states.

Is it a no code asset?

While you’re able to setup Momentum and use the prebuilt features without having to write a single line of code, without a basic knowledge of C# you won’t be able to modify the code and write your own states.

What type of game is it meant for?

The framework is centered around a 2D platforming games and not meant for 2D top down games. By default it only supports keyboard, however Momentum uses the new Input System which means it can be easily configured to allow different input sources.

How is animation handled?

Each state is assigned an animation string when initialized in Player.cs. Each time a new state is entered there is a line of code in PlayerBaseState that plays the state’s animation after a very short delay. The advantage to this is that there is no need to use the Animator’s GUI transition tool. You can use your own animation method by stripping out the code that handles animation.