How can a sensible score (or achievement) be given for procedurally generated puzzles?

We are messing around with some of the 30 games we created (testing them out on Kongregate). Quite a few of them are procedurally generated puzzles, and I wonder if there is a way to assign sensible scores / achievements to such puzzles.

Two ideas I have so far:
  • Analyse the puzzle, somehow determine its difficulty, (for example, minimum number of steps to solve) and assign a score based on that (for example, by comparing the minimum number of moves with the actual number of steps performed). Now this is great, except that determining the optimal solution is usually very hard. (There is not one game where this is possible for us to do at the moment, even though we can control the "average" difficulty with parameters.)
  • Generate a score separately for each puzzle. (For example, it's possible to assign a number to each possibly generated puzzle - so you can get a score for "Puzzle 53608"). This is again great, except that with most leaderboard systems you need to declare all stats in advance; you cannot create them on the fly.
I also don't want something silly such as "number of times played" and so on.

Of course, it's not to say that we have to have a score, I just thought it would be cool if it could be done.

Is there a way?

Comments

  • One way is to get people to compete against each other - Spelunky does that with their Daily Challenge where there's a random seed that everyone gets to play on a given day, and everyone logs their score against that seed.

    Then there are achievement based stuff, like having X levels, and people achieve stuff like reaching level 5, reaching level 10, etc. And finding specific stuff that only generates at deeper levels, or finding things that aren't always procedurally generated each time.

    But Spelunky's obviously a lot deeper and involved than what the 30 days games were...
    Thanked by 1hermantulleken
  • edited
    Hmmm I did not think of using a seed; that in itself is a good idea (that way scores are somewhat more comparable). Thanks!
  • edited
    Not sure how viable this might be.

    You can divide a game into 'parts' and each part has a weighted score that achieving will reward the player with points.

    So algorithm A = 15 points
    B = 5 points
    C = 7 points

    The algorithm need not generate something that is the same, but simply something of a conceivable equivalent difficulty.

    This could lead to a more average score across multiple playthroughs as opposed to a daily seed, but then again you have 30 games so I'm guessing you have lots of room to try things out.
    Thanked by 1hermantulleken
  • edited
    I am also not sure if it's viable, but I will keep it in mind. Most games I think are too simple to break up that way, but as I go through them I'll see. (Also - where I use a seed, I just seed the game with a constant; it's not a daily seed! It's not perfect, but for some games it's OK.)
Sign In or Register to comment.