First Post

 

I just posted my first video about a 3d hack and slash made in Godot Engine + C#. I chose C# because I wanted the practice, even as its given me a good number of problems, mostly involving documentation. 

Right now most of the technical work has been dumped into the combat system, an extensible system that allows me to add/remove attacks and different weapons with ease. It lets me specify the next chaining move (and this can change based on if the player has swapped weapons), different particle effects, animations and more.

Some other small behind the scenes technical work is as follows:

Action queueing/Input buffering: This allows the player to "queue" actions so that they're executed immediately when they're valid. For example, the player can hit jump before they land and it'll cause them to jump again or they can mash the attack button during a combo and the next attack comes out right after the minimum time allowed for the previous. This makes the combat system feel really responsive.

Coyote jump: A typical feature of platformers, if your character is just about to fall there's a grace period where you can jump.

Player attack rotation: If the player isn't holding down a directional key, the player will auto rotate towards the nearest enemy. This solves some interesting (intended) features in the physics system where the character will slide past obstacles (including enemies) making things rather frustrating to hit. the tiny bit of rotation done allows the player to directly collide and not slide past the enemy. It's also just easier for the player to aim in general. As noted previously, holding down a directional key will override this.

Root motion: This took a little to get working, but the movement from a lot of the attacks are from the root motion of the animation (with some tweaks with respect to the dash attack)

Launching enemies: This was difficult. I ended up putting in a central data area where it would calculate entity velocity. This way the movements for player and enemies during launches were mostly "synced". Some of the lack of sync comes from the fact that attacks have some small delay before they actually hit but enemy launch speed can be adjusted for that.

Animations: I came into this with no animation experience so that has also been rough. The spear anims are probably the roughest given that they came first. All of the animations will probably end up being redone as I get better.

Models: Some of the models are finished and they're probably going to be in the final version (the protagonist model is not one of those) cause I started 3d modeling first and felt that I might as well make it look kinda nice to motivate myself. Some look like garbage or are out of place (that cabin that I overdetailed) so I'll replace or edit them at some point.

All of the models, animations have been made in Blender. Textures in Krita. The particle effects are made using Godot Particles, though I really want to move to Effekseer if only it would work.

Particle effects: Also a learn as I go part of this project. Some attacks do not have any effects yet, so those need to be made.

Issues that I haven't been able to fix: Increasing resolution makes the frame rate tank. Also using certain collision shapes makes the frame rate die as well. I'm assuming these are issues with Godot given that they happen when there is nothing else on screen. I'm hoping 4.0 will make 3d more efficient.

Random notes at this time: I would like to make a yuri game because I need more that aren't just visual novels, but it'll probably be some sort of hack n slash and visual novel fusion.

What's shown so far in the video has been the culmination of a lot of part-time work over a period of about a year. This is the first time I've ever made a game so it took a long time just getting my head around how a game engine works - but Godot made this fairly nice. Also the math related to movement and learning the basics of animating, that took a while. I know people recommend a simple game for your first one, but I can't work on things if I don't love the idea, so having to make a pong clone would have had me dropping it on the first day.

Comments

Popular posts from this blog

March 17 update

July 16 Update