this is from the jetski example, put your own bitmaps and sound in.
rem Setup environment
autocam off
hide mouse
sync on
sync rate 30
rem Define scene size
maxsize=2900
rem Start Sea-Sound (while loading)
load sound "sea.wav",1 : loop sound 1
rem Set Scene
if fog available()=1
fog on : fog distance 2500 : fog color rgb(255,255,255)
endif
rem Make Sky
load image "sky.bmp",10
load image "water.bmp",11
make object sphere 1,4000
set object 1,1,1,0
texture object 1,10
scale object 1,200,60,200
position object 1,maxsize,0,maxsize
fade object 1,0
scroll object texture 1,0.5,0
rem Make Sea Matrix
make matrix 1,maxsize*2,maxsize*2,25,25
prepare matrix texture 1,11,1,1
set matrix wireframe off 1
randomize matrix 1,15
rem Lower edges of Sea Matrix
for t=0 to 25
set matrix height 1,0,t,-100
set matrix height 1,25,t,-100
set matrix height 1,t,0,-100
set matrix height 1,t,25,-100
next t
rem Create Array to store Wave Height Ripples
dim ripple(25*26)
for t=0 to 25*25 : ripple(t)=rnd(350) : next t
rem Start second Sea Sound (for phase-shifted overlapping sfx)
load sound "sea.wav",2 : loop sound 2 : set sound speed 2,12000
rem Set scene
set camera range 10,10000
set ambient light 80
do
point camera 2000,50,2000
for x=1 to 23
for y=1 to 23
rem Get current height of matrix point
h#=get matrix height(1,x,y)
rem Find index to the right ripple height in array
tt=x+(y*25)
choppy#=1.2
rem Change height of matrix point using ripple height
set matrix height 1,x,y,h#+(cos(ripple(tt))*choppy#)
rem Change the ripple height for next time
ripple(tt)=wrapvalue(ripple(tt)+5)
next y
next x
update matrix 1
sync
loop