For people who don't have DBP here's the code, slightly altered to run in DBC
Sync On : Sync Rate 60 : Autocam off : Set display mode 800,600,32 : Hide mouse : Position camera 50,75,-250 : Rotate camera 0,0,0 : Backdrop On : Color backdrop 0 : Load image "media\Cave.jpg",10 : Set text font "Arial" : Set text to bold
Load object "media\jet.x",1 : fade object 1,75 : Scale object 1,300,300,300 : Yrotate object 1,90 : Make object cube 10,10 : Color object 10,RGB(255,0,0) : Ghost object on 10 : level=1 : Load music "media\music.mid",1
load image "media\jet.jpg",2 : texture object 1,2
Loop music 1 : Load sound "media\explode.wav",1
Make object plain 20,500,500 : Load image "media\background1.jpg",20 : Texture object 20,20 : Scale object texture 20,4,4 : life=5
`Main Game Loop
While File exist("media\level"+str$(level)+".bmp")=1 and life>0
`Load level
Load bitmap "media\level"+str$(level)+".bmp",31 : Make memblock from bitmap 1,31 : width = memblock dword(1,0) : Delete bitmap 31
For i=1 to 2 : Make matrix i,100*(width+3),200,width+3,2 : Position matrix i,0,(2-i)*250,-150 : Set matrix i,1,1,0,1,1,1,1 : Prepare matrix texture i,10,1,1 : Set matrix texture i,1,0 : Next i
For x = 0 to width-1 : loc = x*4 + 12 : top = memblock byte(1, loc+1) : bottom = memblock byte(1, loc+2) : For z=1 to 2 : Set matrix height 1,x+1,z,top-250 : Set matrix height 2,x+1,z,bottom : Next z : Set matrix height 1,x+1,0,250
Set matrix height 2,x+1,0,-250 : Next x
For i=0 to 3 : Set matrix height 1,width+i,1,0 : Set matrix height 1,width+i,2,0 : Set matrix height 2,width+i,1,0 : Set matrix height 2,width+i,2,0 : Next i : Update matrix 1 : Update matrix 2
`Set up other items for level
Position object 10,(width*100),125,0 : Set current bitmap 0 : x#=50 : cx#=50 : y#=125 : die=0 : Position object 1,x#,y#,0 : Position camera cx#,y#,-270 : Position object 20,cx#,125,50 : Sync
Ink RGB(255,255,0),0 : Set text size 48: For i=3 to 1 Step -1 : Center Text Screen width()/2,Screen height()/2,str$(i) : Sync : Sleep 1000 : Next i : Set text size 18
`Play Loop
While x#<width*100 and die=0
Ink RGB(0,128,255),0 : Text 10,10,"Cave Flyer by Joe Cooning Produx" : Text 10,25,"Use Arrow Keys to Steer Jet and [ESC] to Quit" : Text 10,40,"Level: "+str$(level) : If life=1 : Ink RGB(255,0,0),0 : Endif : Text 100,40,"Lives: "+str$(life)
If y#+4>(250.0+Get ground height(1,x#+5,150)) or y#-4<Get ground height(2,x#+5,150) Then die=1 : Dec life : Play sound 1
If Upkey()=1 : Inc y#,1 : Endif : If Downkey()=1 : Dec y#,1 : Endif : If Rightkey()=1 and x#<cx#+180 : Inc x#,.5 : Endif : If Leftkey()=1 and x#>cx#-180 : Dec x#,.5 : Endif
If cx#<width*100 : Inc cx#,2 : Endif : Inc x#,2 : Position object 1,x#,y#,0 : Position camera cx#,y#,-270 : Position object 20,cx#,75,50 : Scroll object texture 20,.0125,.0025 : Sync
EndWhile
`End Message
Ink RGB(255,255,0),0 : If die=0 : msg$="YOU WIN!" : Inc level : Else : msg$="YOU LOSE!" : Endif : Center Text Screen width()/2,Screen height()/2,msg$ : Center Text Screen width()/2,(Screen height()/2)+15,"Press Any Key to Continue"
Sync : Suspend for key : Delete matrix 1 : Delete matrix 2
EndWhile : Ink RGB(255,255,0),0 : If life>0 : msg$="You beat all of the levels!" : Else : msg$="GAME OVER!" : Endif : Center Text Screen width()/2,Screen height()/2,msg$+" Thank you for playing!" : Sync : Suspend for key
It's probably not the latest version though.
There are three types of people, those that can count and those that can't.