Crushy Bird Game Doubt

I have recently downloaded Crushy Birds android game. It is nice game with unique concept.
Crushy Birds

After playing this game, I have one doubt in my mind. How to apply birds movement? They are coming from left side of the screen in based on some curve path.

My other doubt is, Is this physics based game of normal one?
How to perform this movement in unity?

As I can see, there are two paths you can follow:

  1. Apply physics and gravity.

    Every bird has a Rigidbody2D component and a script which forces your bird to flap if it goes below some point, thus creating a curve effect. You should, of course, constantly move your bird forward. You can actually “combine” your velocity vector from two parts - desired horizontal speed and the vertical speed from your AddForce impact (if your bird goes too low)

    pros: you don’t have to worry if the movement of your birds are smooth and natural - physics will make it look good, you can also make every bird with a different bottom line, which will create even more randomness

  2. Move with code

    You can also move every bird with code by calculating desired trajectory. In fact, this can also be a abs (sin (time * a + b) * c) where time is actual passed time of your game, a is a speed multiplier, b is an offset and c is amplitude.

    pros: full control of the movement
    cons: it may take a while to get all those parameters right, so your birds actually move naturally

I would personally prefer the first choice, it’s simple to implement and will be the fastest solution possible