DEV Community

Isabel Puustelli
Isabel Puustelli

Posted on • Updated on

Complete game development blog #1: Movement

Some outlines that I already know about the game include the gameplay loop, which will include the strategic overview where you manage resources and soldiers, and the tactical on-the-ground gameplay. I also knew I wanted to start with making the tactical side first. And with that I started developing the character movement. This is what I initially threw together.

Image description

Which immediately imposed a design question that I was not ready to answer. Diagonal movement. Let me explain.

Image description

This is currently how the movement looks from a top down view, if a character can move 3 squares. The problem here is that diagonal movement is extremely slow. It takes twice as long to move diagonally. Let's look at a potential solution.

Image description

This is the system that for example Dungeons & Dragons uses. Have diagonal movement cost the same as horizontal and vertical. This of course makes it simpler to count movement in a tabletop setting, but flips the problem on it's head. Now diagonal movement is twice as fast as horizontal and vertical. Better in my opinion, but still rubs me the wrong way. There was one last solution I had played around with in my mind, something like a circle within which a character could move. And sure enough, I wasn't the first one to have this idea.

https://www.redblobgames.com/grids/circle-drawing/

After stumbling on this blog post by Red Blob Games, I knew this is the solution I want to go with. It too like everything, is not perfect, and leaves some design questions to be answered. Is a tile able to be walked on when the circle hits its edge, or when it's center is inside the circle? Should the radius of the circle be X amount of squares, X amount of squares + ½ square, or can it be something in between.

Regardless, I feel this is the best solution for balancing movement in all directions, and won't feel frustrating suddenly when you need to move diagonally and your legs feel like they're halved. Next, of course, comes implementation.

Git: https://github.com/PuustelliJoona/ufo-defence
LinkedIn: https://www.linkedin.com/in/joona-puustelli-aa031b23a
Dev.to: https://dev.to/puustellijoona

Top comments (1)

Collapse
 
andrewbaisden profile image
Andrew Baisden

Exciting to see Unity development work.