Firstly, I tried the procedural generation method with Perlin noise in Unreal Engine 5.
I followed @fetiska’s tutorial on YouTube and the logic behind this is to create vertices first, then connect them into triangles, then forming a terrain.

Since I used the blueprint function in UE, which is a node-based visual sculpting system, I added the Perlin nose as a plugin first, then added it on the Z-axis of the vertices to change the height of the terrain. But because that Perlin noise is always between 0 and 1, and in UE, it is set to be an integer, which only returns integer. The height is fixed, then I converted the X,Y into a float, then added a Z multiplier. Lastly, to smooth the terrain, I added a noise scale. The higher the scale, the smoother it will be.


noise scale= 18

noise scale = 1
I followed @Codelikeme on YouTube on how to make a bird NPC and generate flocking behavior. The final result looks like this:
https://www.youtube.com/embed/ZB4d4Oad9sc?si=5NTZoi86iLD8Q0Af
When the player comes near a leader bird, the who bird group will fly away and come back after a while landing in the same place.
The logic of making this is to have a leader bird and several follower birds that imitate everything the leader bird does when the player comes near. But when the players is far away, they will do random walk around the leader bird so they don’t look exactly the same.

The process of making this is very complex, although I followed the steps indicated in his videos, I still need more time to digest the blueprints.