How do you guys handle diagonal movement in 2d games, where the movement is not tile based?
Technically speaking, currently in my game when you walk diagonally in any direction you are traveling faster than if you just move straight up/down/left/right (Because you are moving X and Y += Speed*delta basically). The result is, is takes the same amount of time to travel from one corner of a tile to the opposite corner as it does to travel from one side to the opposite side.
Well, for game flow, this still appears like fluid, natural movement. The character doesnt look like hes moving faster when he travels diagonally, but he is technically covering more ground.
There are many solutions to this, most of them are basically various ways of dividing the movement speed by the sqrt2, this results in much more accurate travel distance from point A to B. But, from a player’s perspective the character feels like he’s slowing down substantially when you move diagonally, it just doesn’t feel natural anymore.
From playing a few old top down games that allow free flowing diagonal movement, It looks to me like they don’t care about the discrepancy either unless they have a magical way of hiding it, their diagonal movement appears like mine. It’s just X and Y += Speed*delta.
I was hoping to get some more input on the situation, because I can’t find a solid answer anywhere. I’ve found plenty of people asking for solutions on how to make diagonal movement accurate, but no one asking if it should be done in the first place.