I'm kind of sick of how these games try to brag about how their games are open ended. In reality, their games are not open ended at all. The only thing that changes is the order you trigger the events. No matter what happens, you still have to do all of the story events in a certain order with the exception of maybe 3 things that might be going on at once and you have the ability to choose which one to do first. The choices you make tend to be independent from everything else. The one thing that does suffer is that the individual sections of the game only link to the overall story with little impact on what is going on currently. Even then, the game still ends up as something linear. Unfortunately, this makes it extremely difficult to have a sequel or know what is "canon".
1) Continuity of Choices
One of the problems with games that are more open ended with choices is that there is a lack of continuity. Each section of the game is treated as something that is stand alone. Normally, that is fine, but when you are given choices to make, it should have an impact on the game. More often than not, you are just praised or yelled at for your choice with nothing to show for the consequences of your action after. The only game so far that has consequences for your actions is Witcher 2. The problem is that this is not open ended. Instead, it is a branching story that is actually very linear. It affects which areas are opened up and which you have access to. The decisions you make decide where you end up and shapes the story.
When you have a game where you can make choices, your choices change some of the dialogue in the game, but you often do not gain recognition for it. If you want to have a strong narrative, you have to have choices in the game with a huge impact on how the game turns out. Half assing it with no serious consequences undermines the impact of the choices you make. This means that if you want to have the main character make choices, you better have multiple story lines prepared. Having the story branch towards the end based on one choice does not count. I am talking about full story lines.
Adding choices only makes a game non linear if it affects the outcome of story events. This just shifts a game to a branching story instead. Allies should change, enemies might change. Your decisions should have a huge impact on the atmosphere of the game and there are noticeable consequences for it. I am not talking about the "light side" or "dark side" choices that we have in KOTOR where the outcome is actually relatively small. I am talking about something on a much larger scale like Radiata Stories. Around 2/3 of the way through the game, you seriously have to make a choice about whether you stay with the humans and fight your love interest or side with the non-humans and your love interest to go fight the humans. If you join the humans, all the non-human allies leave your army. If you join the non-humans, almost all the human allies leave you and appear throughout the world as enemies that you can fight. It only lasts the small bit towards the end of the game, but it was a serious consequence.
2) Do My Allies Even Do Anything?
In many of the games that are supposed to be open ended, many of your allies seem to stand around and do nothing all day. Some stand in base waiting for nothing to happen. Others wait for you to call them out to go do something with them. After their introduction chapter, they often do not do anything for a majority of the game other than for one or two comments. As great as the story is, without something that helps to develop individual characters, they often seem pointless to have around. You need to remember that your allies are people too and that they might have things going on that you are not aware of. You should not have to talk to them a million times to find out. You should see them doing other things rather than standing around. Perhaps they have a sick sibling back home and is actually helping you to send money back home. Maybe they are a soldier that is always training because they failed to protect something. The biggest impact you can have is to have the character be active and doing things or even have multiple quests where they are doing something and you can help them to find out more. Many games try to just have a one shot ally quest for character development. Unfortunately, that is not how character development works. You need to be able to see change over time in the character.
A character's presence has to be noticed throughout the game to have some sort of weight. The longer you know them and the more you know them, the better. Perhaps their attitude changes halfway through the game because of an event. Maybe they are friendly because you did several specific quests with them. It is something that takes time and multiple steps. It is not something you accomplish just because you fought together in one or two extremely brief fights.
3) Side Quests Does Not Make A Game Open Ended
Having a hundred side quests does not make a game non linear. Being linear means that the story is a simple point A to point B. You can have a million side quests activate in each chapter, but that does not change the fact that the game is linear. The only difference is that there is stuff to do in between story quests. A majority of these are fetch quests as well. They just try their best to pretend that it is not a fetch quest. In order to be really open ended, your choices must have a lasting effect on the outcome of the story. The more choices and branches you have in the story, the more complex the story is. In order for a game to be non linear, you need multiple story paths and adopt something that branches. Heck, you can even have a cerberus syndrome story if done properly.