I am just starting to develop a Final-Fantasy-Lite style "RPG" based on a storyline that involves 2 main characters 3 parallel worlds. It's a combination of 3rd person puzzle-solver and FF-X turn-based combat (or at least that's the plan). I'm using Unreal 4, and C++ to do the hard stuff because drawing graphs to Do Code is cute but tedious for complicated things I am currently pondering character development. This seems to comprise of 1. Characters developing existing skills. 2. Characters acquiring new skills For 2, there are game mechanics that basically allow you to choose your path through a graph of upgrade nodes (FF-X, Child of Light). This leads to interesting design choices as to the length and contents of paths. It's entirely possible in these sorts of games for a player to head off in the wrong direction and lock yourself out of what turns out to be required abilities. You could view this as a strategic part of the game, but because the tech trees can be large and sprawling and you don't know what you don't know at the start of a game, the choice can be arbitrary. On the other hand, games such as FF X-2 largely choose the upgrades for you (though in that game you can tweak the order you learn new skills in). You level up, you get new skills. As long as you grind enough, you'll get every skill you can get. So it's either arbitrary choice and luck, or long tedious grinding sessions to develop characters. Is there a better way? Final Fantasy pivots around random battles. You just run around a save point, beating the living snot out of baddies until your stats are high and your brain starts to rot. On the other hand, a game that *doesn't* have such random battles will need to be very delicately tuned so that players can get through the game with just the battles that are scripted. Both seem pretty unsatisfactory. Thoughts?