Devlog 1 - Player Movement


For Extrication's player movement, I have created a basic 8-directional system controlled with WASD (as is standard in the top-down shooter genre). Acceleration and friction/damping/deceleration are used to make the movement feel as smooth and natural as possible. The player's art/visuals also turn to look at the mouse (which will allow for aiming once shooting is added).

How it Works

There is a base movement handler script (EntityMovement) which controls friction, acceleration, and movement direction (I will use this script on all movable entities for functional consistency). A PlayerMovementController script is added in addition to remotely control the EntityMovement script with user input. I plan to add a similar controller script for all different enemy movement types, which tells the EntityMovement script to chase the player, walk in random directions, etc.

The physics material PhysicsMaterialCharacter has friction and bounce set to 0, so that players and enemies may slide along walls without slowing down.


The player's sprite is a separate child GameObject with a script called LookAtMouse that controls its rotation. My preference when designing character controllers is to only rotate objects that actually need to be rotated (to avoid any strange or unwanted behaviours with rotating colliders and such). At this stage, only the player graphics need to rotate, so I have made them a separate object for that purpose.


The PlayerController prefab has a CircleCollider2D so that collision distance is consistent on all sides. For enemies I might use a BoxCollider2D for performance reasons (the player probably won't notice the difference since they are not controlling the enemies).

Further Comments

I am using a "composition over inheritance" design approach for Extrication. The intention is for the game to be as modular as possible so that code can easily be restructured and reused. By creating lots of small nuggets of functionality, I will eventually be able to combine elements together to achieve complex behaviours. I am especially keen to see if I can design enemy AI systems that provide interesting gameplay variety through different combinations of scripts.

User Feedback

The feedback I received was positive:

-There was interest in the future development of the project.

-The movement was well-received.

-There were mild concerns over instant rotation (no player turn-smoothing), but I plan to keep it, as this is an intended feature for snappier aiming.

Leave a comment

Log in with itch.io to leave a comment.