Monday, February 18, 2008


I've mostly been working on some miscellaneous things lately. I've implemented attributes, resistances, modifiers, and I'm starting to work on items and inventory. There is nothing really groundbreaking to say about any of that, but I may highlight my implementation in the future. For this post I'll be talking about what I plan for my achievements system.

I mentioned in a previous post my idea of the library, and how it would fill up independent if your current adventure. It would persist through all of your characters. Adding to that feeling is my achievements system (tentative title).

If anybody reading this has played any games on the Xbox360 you will notice every game has achievements. These are things you can do during the course of gameplay that give you some gamer points. Gamer points are pooled from multiple games, and each game has a hard limit on how many gamer points they can give out. This is nice in several ways. First it gives you tangible evidence of how much of the game you've experienced. It gives you goals that are independent of just finishing the game. They may highlight parts of the game you didn't know existed, or never thought about. They encourage you to play the game in different ways, or on higher difficulty levels. All in all they cater to the completionist in everyone that plays video games.

The most obvious achievements are those that are story related, beat a specific boss, finish the game, etc. These can easily be transferred over to mirage. I can have achievements related to the library as well. Find a certain book and get an achievement. Unlock the entire bestiary, obtain 75% of the library's knowledge, or even discover the library itself (since it won't be accessible from the beginning), and get an achievement. The possibilities are endless!

This system will provide tangible evidence to both the casual and hardcore player that they are indeed accomplishing something within the game. One of the primary complaints against roguelikes are that they are too hard. Most people lose patience and can't seem to progress very far into the game. With an achievements system it would push those types of players to achieve many small intermediate goals, which would naturally lead them into some of the harder to obtain achievements. If a player knows that if they kill 5 more goblins, or finally manage to unlock the power of the cursed ring and be emotionally awarded for that accomplishment, they will be more excited to continue playing.

There are several things I have to watch out for however. I can't add too many achievements or it will become overwhelming. Also, I can't add some super complex achievements or people may become frustrated. It's also my opinion that I can't have any "hidden" achievements, because if nobody knows about an achievement they won't strive to get it.

I'd like to hear people's comments about this system, and what they think its implications will be upon the game. It's a system that can be easily added to any game, and is basically completely independent of any actual game related code. I'm excited to see how it ends up working out.


JoshuaSmyth said...

I think an achievements type system for a Roguelike would be very neat and would aid replayability even more than the fact that the world is replayable.

I guess you'd have to program a player profile system, so that different players can get achievements independantly, and store your achievements over time, even if you use different characters.

Mario said...

don't forget to have some hidden achievements :)

Reverend Russel Lunchbox said...

I agree about not having "hidden" achievements. In the burnout games they used to have like 6 dozen different types of takedowns, most of which weren't specifically called out. It led to a situation where the player is just playing along, minding their business, and suddenly gets a T-bone Takedown or a Top of the World takedown without realizing they have done anything. It cheapens and devalues achievements to just throw them willy nilly at the player. Random hidden events that provide the player with currency or stats are fun, but random hidden achievements sort of miss the point, I think.

Enne Walker said...

I think that ADOM demonstrates that the promise and mystery of hidden achievements can drive a lot of player interest. Unfortunately, I think this phenomenon is largely predicated on ADOM not being open source.

I agree that there's no need for trivial hidden achievements. However, for something optional, yet monumental (solving hard puzzles, finding hidden locations, finishing mysterious quests) a hidden achievement is a nice touch. Players have to muster intrinsic motivation to solve the problem (not even sure if there is a solution or if there is any reward), but then are more rewarded for their persistence.

If you're looking to crib from other achievement system successes, I think you should go out of your way to display interim information about achievements, i.e. "Kill 20 Narguls (18/20)", possibly even on screen when progress towards an achievement is made.

I mentioned this before, but you also should look at DoomRL's rank system. Not only are there "achieve X" conditions, but there are also "achieve X while under interesting handicap Y" ones. This latter mechanic does a good job of pushing players out of their comfort zone and into different playing styles.

Orillian said...

I really like the idea of persistent achievements. The added depth to the overall experience can be great. You do not need to make all achievements visible at the start.

I like the idea of a player NOT knowing about all the achievements until they have fulfilled some of the basic achievements or not until one of their characters reaches a specific player level or finds that special place. That way the first couple games a player plays will evolve the achievements allowing the player to discover them as he discovers the game.

Maybe meeting one of the achievement goals will unlock new content in the players current game and subsequent games. For example a player has to kill 20 lich's before the lich king's realm will become available to explore. Not the best example...but I think it gets the idea across. :)

I would refrain from giving the player "things" as rewards for meeting an achievement goal, but adding content will add re-playability if the player knows they can now go to a new location or that their are now new features in the game mechanic that they can play with. Achievements could be linked to quests if you plan on putting a quest system into the game....all dependent on how much story you want to add. :)

Keep up the work, I'm looking forward to playing around with this as you get it closer to completion. :)


rsalsman said...

The idea of achievements unlocking other achievements is a fantastic idea! It's a great compromise between having completely hidden achievements and having no hidden achievements. With that system if a player was striving to obtain all of their achievements they would naturally unlock every achievement in the game.

I'd be wary of unlocking achievements within the game, unless the action is specifically tied to the achievement. This could lead to achievements that never get unlocked, and could frustrate someone that wanted to get 100% achievements.

I do plan on having quests, but that system has not been hammered out completely. There will certainly by achievements tied to quests however.

The idea of achievements unlocking content is interesting, but I think that would couple the system too greatly. There is no reason killing a powerful creature within the game could not unlock content. If there just so happens to be an achievement tied to defeating that creature then so be it. Think of it as a silent nudge that killing the creature is very important within the game.

joshuasmyth: The SDK I'm using supports player profiles. So that system already exists within the game.