Looking at your node setup, it’s hard to think that it would a tree that big to produce a small island with sand, grass, and rock textures.
All you would need in a well developed game engine is a vertex color channel, a node to separate out the RGB components, and 9 textures (for albedo, normal, and spec). My mind would think it just can’t be that efficient for realtime rendering.
water reflection
water spectacular / lighting
waves (normals)
frensel of water view vs final normal,
splat mapping,
waves noise is in phase with wave
waves are distorted by shore,
noise at leading edge of wave,
Texture under water is darkened by depth of water
Texture scale is multiplied by water depth (deeper water looks deeper)
Textures are distorted by blue channel
sand is mixed into where wave is
and is darker where wave touches
sand is more specular where water touches
So I’m guessing the ocean is part of the island shader itself?
It might look good for a small scene, but how far can this be scaled up? The general practice in game development is to have the ocean be a separate object with its own shader, that in turn allows for large maps without any need for massive textures and allows for a reduction in complexity.
While having the whole map in one shader could technically reduce drawcalls, it is not the only metric that determines the performance of a scene. There are also benefits of having everything more local as opposed to a reliance on mega-shaders or mega-scripts.
the whole terrain is 1 draw call