How to make branching narratives - AIessa/WhenLifeGivesYouLemons GitHub Wiki

Designing Narrative Choice - Add Branching Paths to Game Stories Without a AAA Budget discusses several ways to introduce branching narrative in respect to work for implementation and player enjoyment, based on examples from different games.

There is an active discussion on what the "best" tools for writing dialogues with choices are. If you want to make your game with Unity, here is a thread that gives a nice overview (with opinions) on current trends: Discussion Thread

Generally, you can differentiate between tools that are node-based (e.g. Twine) and script-based (e.g. Ink), although there are also hybrids like Yarn Spinner. This guy sells Yarn Spinner pretty well (well.. he also developed the tool, so that's a given): (YouTube) Yarn Spinner: A Tool For Writing Interactive Dialogue. I listed a few Yarn + Unity tutorials here.