Just use data comands:
rem Setup display
set display mode 800,600,32
autocam off
hide mouse
rem Setup synchronisation
sync on
sync rate 0
sync
rem Make player collision
make object box 1,10,10,10
hide object 1
make object collision box 1,-5,-5,-5,5,5,5,0
rem Load level
Object=2
for z=10 to 1 step -1
for x=1 to 10
read LevelData
if LevelData=1
make object box Object,50,50,50
position object Object,x*50,0,z*50
make object collision box Object,-25,-25,-25,25,25,25,0
inc Object
endif
next x
next z
rem Start off co-ordinates
x#=0
y#=0
z#=0
ang#=0
rem Setup synchronisation
sync off
sync on
sync rate 0
rem Start the loop
do
rem Show a crosshair
circle 400,300,10
line 400,280,400,320
line 380,300,420,300
rem Control camera
ang#=ang#+mousemovex()
if mouseclick()=1
x#=newxvalue(x#,ang#,1)
z#=newzvalue(z#,ang#,1)
endif
if mouseclick()=2
x#=newxvalue(x#,ang#,-1)
z#=newzvalue(z#,ang#,-1)
endif
rem Level collision
position object 1,x#,y#,z#
if object collision(1,0)>0
dec x#,get object collision x()
dec z#,get object collision z()
endif
rem Update the camera
position camera x#,y#,z#
rotate camera 0,ang#,0
rem Update the screen
sync
rem End the loop
loop
rem Store level data
LevelData:
data 0,0,0,0,0,0,0,0,1,0
data 0,0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0,0,0
data 0,0,0,0,1,0,0,0,0,0
data 0,0,0,0,0,0,0,1,1,0
data 0,0,1,0,0,0,0,1,0,0
data 0,1,1,0,0,0,1,1,0,0
data 0,1,0,0,0,0,0,1,0,0
data 0,0,0,0,0,0,1,1,0,0