I did a little test side project, FPP walking on non-flat surface.
You can play it on Scirra Arcade:
https://www.construct.net/en/free-online-games/forest-walk-sim-34983/play
Some details:
This is an experimental project that uses DrawingCanvas perlin noise for procedural ground mesh distorion displacement and for handling Z position for native Construct 3 plugin like: 3DCamera,3Dshape and sprite billboards. The forest is randomly created on the layout start then the shadows from trees & ground details are baked to the ground texture on each startup. Also this little project is using Sound positioning with IR reverb audio file for convolution effect(it is not a 3D sound for fpp game but it creates some kind of positional space sound but not accurate in terms of direction).
I found out that on some devices pixel reading from Drawing Canvas snapshot for player camera Z doesn’t work properly. Sometimes it reads incorrectly height of the character. If you play this little game and feel that your character is too high above the ground level, please leave the comment about it. Thank you.
Happy walking!
Update: The Z position is now read from the Array instead of Drawing Canvas SnapshotRedAt. Maybe this will help with the Z reading issue but for sure helps in terms of memory. Array is 30 MB with 2 decimals and Canvas snapshot was 80MB.