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!
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!