don't click here

[WIP] SonKE - Sonic Kinematic Engine (Unity)

glairedaggers

Green Hill Zone
May 23, 2021
2
0
21
27
Hello all!

This is a little thing I've been working on lately: an implementation of Sonic-style 3D physics inspired by the Adventure-to-06 era of Sonic games for Unity. The goal of the project is to provide a foundation for the hardest part of a Sonic-style game, which is the physics behavior, and provide a relatively pluggable Action framework for defining game-specific actions like Jump Dash, Homing Attack, Bounce, etc.




Some other goals of the project are to make sure the code is as readable and maintainable as I can make it, and another goal was to make sure the project is as easy as possible to use even in projects that aren't necessarily tied to the Sonic IP. With that in mind, rather than making it be a template project you'd download and modify, I decided to make it be a package instead. So you'd create your Unity project, and then go to the Package Manager and point Unity at the Git repository for this package to install it. That way, when new updates come along, it should be possible to just update to the new version right in the Package Manager without any fuss. Speaking of which - I'm hosting the codebase for this on Github open source. I want to make it as easy as possible to maintain, to accept PRs from others, and more, and I feel this is the best way to do it.

The codebase is here: https://github.com/GlaireDaggers/com.glairedaggers.sonke

So what's done?
At the moment, I've implemented the core slope & momentum physics, Input System integration, support for the aforementioned pluggable Action system (Actions are components which inherit from the PlayerActionBase class - the PlayerInput component will automatically search for these on startup and execute them in response to input), basic animation support, and a handful of example actions and gameplay elements (homing attack, jump dash, bounce, springs, grind rails, etc).

What's not done?
There's a couple more example actions I want to work on like light speed dash, and I also want to build in some custom Cinemachine camera modules for stuff like pre-programmed loops. I don't yet have any sample scenes or prefabs available, and right now I don't have any documentation either. Since this is being uploaded to Github I want to make sure I'm following legal guidelines so I can't commit the model shown in the above video (still considering what to do about this - I could either try and find someone to commission for it, or perhaps just upload a simple geometric shape with no animations?). Documentation is easier to tackle, but the codebase is still somewhat in flux right now. Hopefully that should change soon!

But, in the meantime, you can still take a peak at the code and see what I'm doing and maybe offer some feedback!
 

bennacar

Green Hill Zone
Sep 10, 2017
4
0
21
Looks neat so far, albeit rough around the edges. Be sure to reference stuff like the Classic games and such too for good momentum-based physics. The animations themselves are... Not good if I'm being honest. They're janky and stiff looking. If you can't really improve them, I suggest just using ones from the games. This looks interesting though. Hoping to see more of this soon.
 

glairedaggers

Green Hill Zone
May 23, 2021
2
0
21
27
Well for what it's worth the animations are only intended as a placeholder to make sure the animation system works as intended - I'm certainly no animator! As I said, going forward I also won't be able to just use rips, since that's copyrighted content and I would be very surprised if that didn't violate Github's TOS.