It is actually quite simple, World Space is a constant vector, for example, X will always be right and left, Z always forward and backward and Y up and down, so an object in world space that is at X = 2 , Y = 0 , Z = 0 will be right or left relative to the world. Now the Local Space refers to the coordinates of the object in relation to itself, rotation for example, which is what I noticed in your game, the character moves in relation to its direction, then the W that is forward, will always be forward of the character, and the D always to the right of the character, then according to his rotation the front will be different, and usually in games with vision Top Down, when you go forward, he goes literally up in relation to the rotation of the camera or the World Space.
In summary, what you have done is in no way wrong, but your character has a Tank movement, similar to old games like Resident Evil, and usually for games with that camera from above, the movement is based on World Space or the Camera, where when the player presses W he actually goes up in relation to the camera, while in your game when pressing W he goes forward in relation to the character.