[edit] this has been tested in DBP not DBC. But it may work for both.
Yes there are many ways to do this. I use this method for small code with sliding collision. Though there are better ways this method uses hardly anything but basic math.
sync on : sync rate 0
`make it easy to see the player turning and moving
make matrix 1, 1000, 1000, 50, 50
make object cube 1, 10
`place player near the center of the matrix
position object 1, 500, 5, 500
do
`player movement and turning
if upkey() = 1 then move object 1, 1
if downkey() = 1 then move object 1, -1
if leftkey() = 1 then yrotate object 1, object angle y(1) - 1
if rightkey() = 1 then yrotate object 1, object angle y(1) + 1
`store player posuition
objx# = object position x(1)
objy# = object position y(1)
objz# = object position z(1)
`place the camera at the players position and face it the same angles it faces
position camera objx#, objy#, objz#
set camera to object orientation 1
`move camera straight up
xrotate camera 90
move camera -10
`set camera back to players angles and move it behind him
set camera to object orientation 1
move camera -40
`draw changes
sync
loop
Its nothing fancy But its simple. You could even xrotate the camera up or down for deferent view angles just before you sync. And because this moves camera up and back it helps with the camera trying to go through walls it you add an object in the cameras position and use it for collision.