My 20-line winner contains some useful fps code, but is hard to understand since I had to sacrifice readibility for size.
Here is some basic fps code:
rem Standard initialisation
sync on
sync rate 60
hide mouse
autocam off
rem Make a terrain to walk over
make matrix 1,1000,1000,5,5
rem Set a player height
height#=150
do
rem This is the mouselook. It
rem changes the angles based on the
rem movement of the mouse with some
rem limits to stop the player
rem flipping over backwards
dx#=dx#+mousemovey()/4
if dx#>90 then dx#=90
if dx#<-90 then dx#=-90
cx#=wrapvalue(dx#)
cy#=wrapvalue(cy#+mousemovex()/4)
rem This is the movement code.
rem It assumes you know about
rem sin and cos, and about polar
rem coordinates
if upkey()=1 then x#=x#+sin(cy#)*15:z#=z#+cos(cy#)*15
if downkey()=1 then x#=x#+sin(cy#+180)*10:z#=z#+cos(cy#+180)*10
if leftkey()=1 then x#=x#+sin(cy#-90)*10:z#=z#+cos(cy#-90)*10
if rightkey()=1 then x#=x#+sin(cy#+90)*10:z#=z#+cos(cy#+90)*10
rem Position and rotate the camera
position camera x#,y#+height#,z#
rotate camera cx#,cy#,0
sync
loop