The game is a 3D game with all the characters in the game being 2D, hence the word Paper in the title. This is a fairly simple thing to code as all you need to do is to use the artwork for the characters as an alpha-mapped texture placed on a plane. The 3D view is simply a camera that is essentially on a rail. The position of the camera would the be based on the horizontal (x) position of the character. The world is broken into small chunks, so only a small amount of the world needs to be loaded into memory at any give time.
The player's interaction with the environment is fairly limited. You basically can walk over things, use your action button on things (for reading signs) or can use your hammer on things. Monsters and NPCs do exist and can be interacted with. Bumping into a monster will take you into the combat system. There is also a first attack feature that allows you or the monster to gain a free strike simply by purposely attacking in the game screen.
Non-player character interaction is very limited and amounts to a simple static dialog message. Static may not be exactly the right way of describing it as the message does change as the game progresses based on what chapter you are on or which character you have with you. This, of course, leads to the rather lengthy topic of your party.