Need help with top down controller

Hi everyone,
I posted this on reddit but didn’t get any answers so i’ll try here.
I’ve been trying to recreate the controller of the game Powder - Alpine Simulator for some days now but can’t get the result i want so i decided to seek for help. The game is basically a top-down infinite skiing scroller with really simple controls: tap left or right part of the screen to curve and hold down to curve harder. There are some characteristics that i liked and would like to recreate:

  • the first is the way curving works. When you turn, the velocity of the player on the horizontal axis decreases gradually so the player ends up going in a straight line on the vertical axis after some time. I also noticed that the trajectory is dependent on the border of the screen beacuse the velocity on the horizonal axis becomes 0 only when the player reaches the border. To better understand what i’m talking about take a look at this gif: https://gfycat.com/ShortMerryBobolink which shows what happens when you turn by tapping the screen ONCE. Also, when you hold down the finger the player curves faster but also loses velocity on the vertical axis. This allows to regulate the vertical axis velocity, which is a nice thing since the player accelerates continuously.
  • the second thing is that changing direction from left to right or viceversa is fast but doesn’t happen immediately meanwhile what i was able to come up with was either too fast or felt slow and sloppy.

I tried using forces, changing the transform.position and even changing the velocity directly but the result just isn’t as good, so i’d like to know how would you implement a player controller like this.

It’s probably worth noting that even though i completed a game with another game engine, i’m still noob with unity so any help will be appreciated.

Here are some youtube links in case you want to see some gameplay:

So i searched around a little bit more and found a devblog by the developer of the game: http://thewaterbear.com/obstacle-avoidance-a-i/. He is mainly talking about the AI system but in the beginning he also speaks a bit about the movement. I’ll quote the important part:
"The black dots themselves aren’t moving that fast vertically, actually they are moving very slow. The concept of speed is faked by “shooting” random blocks upward at a speed set by the character.

Here is what the scene looks like:

Since our characters are dots, and they are only going down we don’t need to deal with steering and rotation, which is really nice."

I also thought maybe i should use a Lerp or Damp function to smoothly slow down the movement on the horizontal axis when i’m not pressing any key (or touching the screen in case of touch devices). Do you think this is a good idea (if yes, how should i implement it)? Or are there better alternatives?

Thank you