For the last couple of days I have been working on this. A prototype for a 3D platformer/ adventure game where players take control of a fella with a humongous hammer.
I am still working on the basic controls for the player character, but I already like how it is shaping. Hopefully next week I will have them all ready to start creating some enemy/environment interactions.
This is my first time using the 'AnimationTree' node, and let me tell you, it was a mess as each new animation complicated my state machine more and more. Hopefully once every mechanic is implemented I will find a way to clean it up, as I am sure I won't be able to maintain this the moment I start working on some other part of the project.
Any suggestions or learning resources is welcome
I updated the character controller to use a state machine as well, and I cleaned up the animation tree a little bit following advice from the replies.
Using the state machine for this controller has eased A LOT the development process. Less bugs, easier to scale and maintain. I can't wait to keep adding new stuff!
So far, since the last update, I added:
- Aerial attacks
- Hammer Throws
- Dolphin dives
- Momentum to certain player moves
Alright, since the last update a couple of things have happened:
First, I added some hit boxes to the player character. Then I wrote a system that checks for collisions when using attacks. Lastly, I have been working on some "enemies" and some feedback effects to check whether hitting stuff with the hammer feels fun and rewarding.
It looks quite promising so far, but I have noticed that aiming at enemies can be tricky at times, so I am going to focus on fixing that next.
I finished working on the "aim assist" feature of the game. I recorded a short video using the keyboard to play so that you can see it in action, in the worst case scenario, when only moving in 8 directions.
As long as players are loosely looking at a target, the attack will aim automatically and land even while dolphin diving!
@camperotactico Looks fun!
@liquidator thanks! hopefully it will be fun to play as well
@camperotactico One advice I've heard (in general about animation graphs, not specific to Godot) is to use substates whenever possible, i.e. isolate states into their own sub-statemachines (that's also a type of node). I've yet to test out how feasible that is for my use case.
If learning resources on AnimationTree exist I couldn't find them, afraid we'll have to rely on experimentation :P
@tracefree I will try that substate approach. Every “tutorial” I found on the AnimationTree was for a simple 2D game where there were like 3 states, so basically not useful at all
@camperotactico Yeah, Godot is still very new on the block, the niche for good advanced guides and tutorials hasn't been fully filled yet. Especially for 3D you can't count on finding learning resources.
When you want to learn to do something I recommend also looking for how it's done in other engines. Sometimes the workflow can be transferred, and if not you could open a proposal to add the missing feature.
@tracefree I will keep that in mind, thanks!