In my 2D pixel-styled time management casual game, you control a bartender by using only four directions. However, I thought about also adding diagonal movement, because... well, because every 2D game offers this.
But the thing is: Because I don't make use of any game engines such as Unity, Unreal or Godot, but code this game using only MonoGame, my collision-detection and -handling routines are kinda... hand crafted and it turns out that adding diagonal movement is not as easy as it should be.
Of course I know that when adding these four new directions, you must also recalculate the speed at which the character moves, because otherwise the result would look weird. Theres nice tutorials about this topic on YT (this for instance).
But my problem is that my character is allowed to overlap specific tiles on the tiled map, since it is a axonometric 2D game aaaaaaand the character is also able to auto-drift around corners. THIS one's really cool and feels awesome while playing the game. The only drawback is, that for this to work, I had to implement a lot of helper methods that kinda depend on the direction into which you send the bartender...
Sigh...
Any suggestions? :)