You have an input a n games.
Each game has a fame (which can be negative) and prerequisite games (these games must be played before you play the current game).
You want to find the maximum amount of fame you can gain by playing a valid set of games.
One idea I had was to use a weighted directed graph however you still have to try every single pair of nodes in the graph to find the optimal solution.
Any ideas?
Do you have a maximum number of games you can play? Then, it sounds like a variant of the Knapsack problem http://en.wikipedia.org/wiki/Knapsack_problem (find some approaches to the problem in the articlek, even though the problem is NP-complete and as such not efficiently solvable in principle).
If you can play as many games as you like, well it’s still hard in a computational sense.
For each prerequisite game, you can compute the number of points you gain by playing it by adding the fame of the games it enables. Of course these change with each prerequisite you play because later prerequisites may enable games that have been enabled by earlier prerequisites, decreasing the gain in fame they provide. I guess you’re still stuck with trying out all 2^p combinations for p prerequisite games.