Sit back and relax {|>-------------------------------<|} A convincing ocean is created: a y-position is calculated for every x position using multiple sine and cosine waves each shifted by a phase which is increased continuously by 2 and a few are multiplied by an oscillating variable to make them periodically increase or decrease in intensity or switch direction. Higher waves are more saturated and brighter as the lower density water refracts less and vice versa. The boat physics is not really physics at all contrary to whatever I attempted in code. I just ensure that at all times the boat remains at a certain depth in the water and is aligned to the normal of two sample points 40 x positions ahead and behind the centre of the screen.
Thanks to @FunnyAnimatorJimTv for the 8-shadow lighting system