Achievement System

Summary Add a system keeping track of in-game achievements for players who haven't won yet.
Further information See Mantis issue 1427, SourceForge issue 2091250.
Added by jpeg
Added on 2010-04-26 13:55

Introduction

vandal: As DC:SS is a pretty difficult game, especially for beginners, people might lose motivation in playing it if they won't make it even near Zot, let alone getting the Orb. An achievement system could provide new players with small goals on their way to learn the game but also provide new challenges for experienced players. By the time new players got the bronze medal (see below for more information) they probably got good enough to get some silver medal badges. And by the time they got silver they're probably already addicted to crawl and can't stop playing it anymore.

I thought runes were supposed to do that ? — b0rsuk 2010-05-01 14:16
I've never beaten crawl but am still playing it. I for one don't like the whole achievement idea (getting something as a “reward” for your time spent in our game). I think it works for kids but is addictive for adults (which means bad). — timbermaw 2010-07-23 04:00
Crawl produces its own goals pretty organically - you don't need an explicit acknowledgment to know that reaching the Ecumenical Temple or killing Sigmund or getting a rune is important and commendable. Achievement badges only have a place when there's no intrinsic benefit, but everything worth doing in Crawl already has a reward attached. —pepperfez 2011-6-17 16:12

Achievement system

Because Crawl offers possibilites for billions of achievements, I'd suggest using some sort of “3-Level-System”:

Achievements < Badges < Medals

This means that achievements could be grouped into badges whereas you need to complete all achievements to get the badge. Same goes for medals (certain badges for a medal). This way it'd be easier to implement lots of achievements without having a “list overkill”. This leads me to my next suggestion: Achievements alone shouldn't be displayed on the player overview page for the servers. Only badges and medals should be.

Concerning the medals: I think, while there might be an unlimited number of badges, there only should be like 3 medals (Bronze, Silver and Gold). Bronze should be awarded when all 'easy' (this refers to crawl-easy, not generally easy) badges are achieved, silver for medium and gold the ultimate medal which might be almost impossible to get, even for experienced players.

I am not so much convinced by the Achievements → Badges → Medals approach, but it's not worth quarreling about this right now. What we need is a sane way to track achievements. And good ideas for achievements. — dpeg 2010-04-27 20:18

Rules

Of course there should be some rules regarding the type of achievements. I can't think of many right now though :-) But I bet there are people with some good ideas out there.

  1. Achievements shouldn't require farming/tedious playing.
  2. Achievements/Badges should not affect gameplay.
  3. Achievements should not reward bad playing style. I don't want to encourage players to reach some minimum xp level only to suicide in lava. Death badges are okay, but should be limited to events that are somewhat likely to happen from time to time. (In particular, this means no “collect all possible deaths” achievement.) — jpeg 2010-04-27 16:32
  4. Except for a few special cases (winning Sprint, surviving the tutorial), achievements/badges can only be collected in the main game. Wizard mode, likewise, doesn't count.
Good rules, all of them. (I scrapped the redundant one.) — dpeg 2010-04-27 20:18

Achievement suggestions

I'm giving an example of my proposed Medal/Badge/Achievement system here so everybody gets the image. Of course, if most think the idea is bad, it should be dropped.

Bronze Medal

"The Little Explorer Badge"

  • Enter the Ecumenical Temple
  • Enter the Lair
  • Enter the Orcish Mines
  • Reach D:10
  • Find a secret door

"The Learning from my mistakes badge"

  • Die to Sigmund
  • Succumb to Poison
  • Starve to Death
  • Drown in deep water
  • Die by stepping onto a trap
Note that starvation and drowning are deaths you may not encounter easily. — dpeg 2010-04-27 20:18

"The Identifier Badge"

  • Identify X different scrolls
  • Identify X different potions
  • Identify your first weapon
  • Identify X different wands

"The Jack-of-all-trades Badge"

  • Reached the temple with a fighter
  • Reached the temple with a mage
  • Reached the temple with a reaver
  • etc

Silver Medal

"The Wrath Addict Badge"

  • Renounce Trog and survive for at least XXX turns
  • Renounce Xom and survive for at least XXX turns
  • Renounce Makhleb and survive for at least XXX turns
  • etc.

"The Headhunter Badge"

  • Killed Sigmund
  • Killed Donald
  • Killed Circe
  • etc.

Gold Medal

"Orbs for everyone Badge"

  • Escape with the orb as human
  • Escaped with the orb as mummy
  • Escaped with the orb as ghoul
  • etc.

"Curator of the museum Badge"

  • Escape with glaive of prunes and at least one rune
  • Escaped with Maxwells armor and at least one rune
  • Escaped with Spriggan blade and at least one rune
  • etc.

Alternate achievement system

dpeg suggested a two-tiered system differentiating between automatic achievements you collect as you play normally (most of the above suggested bronze badges fall into this category as well as the Headhunter badge and some generic “got X runes” and “escaped with the Orb” badges) and badges earned for specific challenges the player may choose to accept and try to fulfill over various games. The latter should unlock once the player has reached a certain stage (first rune, maybe, or N normal badges acquired) and are supposed to encourage the player to try unusual character combinations, experiment with some of the more obscure gods or skill sets.

He also suggested displaying achievements in the form of a “brick wall” of differently coloured code names for each badge that are each at most 8 letters long and eventually fill a single screen to be accessed in-game. Each “brick” (or code name) could be accessed and read for a description. Unacquired badges are left blank in the wall, though players could check the corresponding text files (database format) if they want to. In any case, the progress should be visible by the size of the holes in the “wall” and quantified with a single line proclaiming “You collected 4 of 29 badges. Collect them all!” Ideally badges earned new within the corresponding game should be highlighted somehow both on this screen and in the dump.

The following examples first list the code name, followed by the suggested message when the badge is earned, and a preliminary description upon its inspection. dpeg also suggests that the badge message (what you see during gameplay) should be somewhat fancy… e.g. scrolling right through the main screen (tiles and console). This would emphasise that the message/badge is completely separated from in-game messages.

What if any achievement physically adjacent on the brick wall to one already completed was visible? In other words, if one badge is directly to the right of the second, and the first were achieved, the player would be able to see a hint for how to get the second. This would provide a slight reward for getting a badge (the player can then see how more badges are acquired) as well as make “unlockable” badges simply a matter of proximity; if we want badge A to reveal the requirements for badge B, it is only necessary to physically place themselves next to each other. (Disclaimer: This mechanic is stolen from a game called “Kirby Air Ride.”) — nrook 2010-10-17 04:30

Single kills

"The kill"

  • “Starting the rampage.”,
  • “You just killed a monster! I really hope this was an inadvertent accident. Can't be sure with types like you. I am seriously afraid you'll go on a killing spree now. Please understand that monsters have feelings, too.”

"Ogre"

  • “Will you ever learn you don't have to kill them all?”,
  • “Adventurers from nearby and afar have always seen the ogre as a plump, gross, stupid beast. They can be really smart, just wait until you meet Erolcha. Of course, from now on, Ogres are just nice chunks of experience for you.”

"Centaur"

  • “Yes, they always appear that early.”
  • “The dreaded centaur… swift and agile, and always well-munitioned. I wonder how you brought that one down. Not in fair battle, that's for sure. The centaurs will have their revenge, and it will be a gruesome sight!”

"Unseen"

  • “I can't see a thing!?”
  • “Ah, the unseen horror – bane of many promising and unsuspecting young heroes. I am afraid you killed this one when seeing invisible. Let me tell you one thing, young friend: you better learn how to kill them when they're unseen!”

"Troll"

  • “*Plonk*”
  • “It's always a nice and fuzzy feeling when you finally manage to *plonk* one, eh?”

"Hydra"

  • “Labour two, check.” (Herakles' second task was killing the hydra.)
  • “You play too much and read too little. Go and grab a copy of Heracles' adventures right now!”

"Dance"

  • “The last waltz.”
  • “Once upon a time, these sensitive beings used to practise the waltz all day and night. That is, before insensitive clods like you arrived. Congratulations anyway, dispatching a dancing weapon is quite a feat.”

"Red X"

  • “Getting hotter.”
  • “Getting into the hot zone, aren't you? I am quite sure you don't have the slightest clue what you're doing, and fighting berserk orb guardians proves me right. Well, still good you managed to kill it!”
  • alt. name: “Guardian” (because the original doesn't make sense for Tiles)

"Fire Orb"

  • “Is there anything this monster cannot do?”
  • “If you ever wonder what it takes to invent monsters like this – we won't tell you. Be happy the Archorb of Hellfire is not in yet!”

"Toenail"

  • “Wash your feet!”
  • “Ewwww… You actually survived this? That was not intended, please file a bug report.”

"Sigmund"

  • “Scythes belong on farms, not in dungeons!”
  • “Sigmund might have some quirky traits, but he sure knows how to operate a scythe. I am genuinely impressed you got the kill, though I'm pretty sure you cheated.””

"Erolcha"

  • “If the Ogres keep up this arms' race, I quit!”
  • “Erolcha would have loved to show you some more of her tricks. Did you know she can cook a formidable brain stew?”

"Ghost"

  • “The past is the future!”
  • “I am pretty sure you are proud and relieved to have offed this annoying ghost. But someone might be very sad now… Did you ever consider what you'd feel if someone busted your best ghost?”

Multiple kills

"Rats"

  • “Exterminator”
  • “Rats are intelligent, social mammals. In other words, they are like you and me. Well, probably a bit more social than me and quite a bit more intelligent than you. But hey, we're all mammals at least!”
  • (Killing 100 rats over various games.)

"Trinity"

  • “But they are round characters!”
  • “Killed three different uniques so far, interesting. You do realize that each more unique you scalp just increases their capabilities, don't you?”
  • (Killed 3 different uniques over various games.)

"Chilia"

  • “Thousand kills constitute mass murder!”
  • “You may have lost count of the casualties splattered around by your misdeeds. We didn't.”
  • (1000 killed monsters over various games.)

"Dragons"

  • “Soon, here be no dragons anymore.”
  • “Dragon, noun. A rare breed of reptilians, very close to extinction. Mercilessly hunted by humans throughout the ages, mostly in envy of their power and intelligence.”
  • (Killed N dragons over various games.)

"Exorcist"

  • (?)
  • (Killed N ghosts over various games.)

"Myriad"

  • “Serial killer!”
  • “You killed ten thousand monsters! In the time you've spent slaying, more constructive beings would have written a book, conceived several children, or invented a new weapon. Well, at least you didn't break anything.”
  • (10,000 killed monsters over various games.)

"A dozen"

  • “They could have been the twelve apostles!”
  • “We don't assume you're familiar with the deeper meaning of the number 12. Let us just say that everything is completely different from now on.”
  • (Killed 12 different uniques over various games.)
  • alt. name: “Dozen”

"Cubus"

  • “There is strength in numbers!”
  • “If you're not a numeralogist already, now is a good time to start!”
  • (Killed 27 of the same genus in the same game.)

Character growth

"Descent"

  • “It's all going downhill from now!”
  • “I am genuinely surprised you got this far. Just keep going downwards!”
  • (Reached D:2.)

"Progress"

  • “Who can stop you now?”,
  • “Gaining a level, an honoured tradition, is largely overrated. No level will save your sorry character.”
  • (Reached XL 2.)

"Muscle"

  • (?)
  • “What doesn't kill you makes you stronger. Sadly, dying is much more probable.”
  • (Picked Str on level up or got it through mutation.)

"Brain"

  • (?)
  • “Maybe one day you'll be smart enough to realize you cannot win.”
  • (Picked Int on level up or got it through mutation.)

"Sleight"

  • (The above for Dex.)
  • alt. name: “Fingers”, “Nimble”

"Learner"

  • (?)
  • “No matter how much you learn, it'll never be enough.”
  • (Gained a new skill.)

"Temple"

  • “Worshipping gods of wood and stone?”,
  • “The Ecumenical Temple, a safe harbour within a cruel dungeon. If you made it this far, you have a world to win.”
  • (Entered the Temple for the first time.)

"Novice"

  • “Better savor this accomplishment.”
  • “Let's get it straight: both you and me know that only an insane amount of luck let you survive this tutorial. From now on, you'll be on your own. With bigger and better beasts to prey on you. Have a nice trip!”
  • (Survived the tutorial.)

"Spell"

  • “This game contains magic, I am stoked!”
  • “You cast a spell! And it worked!! Where will it end???”
  • (Successfully cast any spell.)

"Genius"

  • “Mediocre spells for mediocre players!”
  • “If you thought that casting this level five spell was in any way a noteworthy feat, you're wrong.”
  • (Successfully cast a level 5 spell.)

"Branched"

  • “There are places more deadly than the Dungeon!?”
  • “You have to be very brave now. Please sit down, take a deep breath. This game is not linear. I repeat that, it is not linear. Bummer, I know.”
  • (Entered a non-Temple branch.)
  • alt. name: “Explorer”

"Faith"

  • “Believe, repent, die.”
  • “I am very glad you found religion. Deus vult!”
  • (Picked up a god.)
  • alt. name: “Worship”, “Baptized”

"Traps!"

  • “If I could just catch the little mischief who planted this…”
  • “Traps are no fun. Traps endanger the life and happiness of millions. It must stop. We appeal in particular to the youth of today. Stop the madness. There are better things in life.”
  • (Encountered a trap, or possibly only found a trap other than by stepping into it.)

Shiny!

  • (?)
  • “How lucky! But will it be enough to get you through your next fight!?”
  • (Found an egoart or artefact, i.e. something glowing/shiny/…)

"Artefact"

  • “I wonder if it is any good?”,
  • “If your new random artefact is less than convincing, don't give up. The world's best piece may be just around the corner. Keep dreaming.”
  • (Identified an artefact.)

"Cowards"

  • “Perhaps there's Godzilla right behind you?”
  • “Don't make jokes about fleeing monsters. How often did you flee, little coward? I won't tell anyone, but you've got me smirking at times.”
  • (Made a monster flee.)

"Spooky"

  • “Yes, this is what you look like once you're dead.”
  • “If you're lucky, the next ghost will be waiting and reciting prose in alterations. But more likely you'll be greeted with contempt, brute force and annoying spells.”
  • (Met player ghost.)

"Moneybag"

  • “Eat the rich!”,
  • “You can't eat gold. You can't kill with gold. Yet you are collecting it religiously. What is left of your ideals?”
  • (Carrying 1000 gold.)

"Company"

  • “A friend in need is a friend indeed.”
  • “You will look after your new friend, won't you?”
  • (Encountered a friendly monster, whether permanent or temporary.)
  • alt. name: “Friend”

"Immortal"

  • “Do you want to live forever?”
  • “Celebrate your three digit Health for a moment. Rest assured that no amount of hit points will save you.”
  • (>= 100 hp.)
  • alt. name: “Hardened”

"Highbrow"

  • “You've got the smarts, but will you survive?”,
  • (?)
  • (>= 50 mp)

"Statue"

  • “They used to be less lethal when they still stood in parks!”
  • “Even the furniture is deadly in this game.”
  • (Encountered living statue.)

"Rosaries"

  • “Welcome back to Divine Warmongers, Inc.!”
  • “I would have put less faith in you. That old fool of a god still had some hope. Must be an occupational disease.”
  • (Got out of penance.)

"Canting"

  • “I've got full piety and I am not afraid to utilise it!”
  • “If you only were as pious in real life.”
  • (Full ** piety.)

"Immortal"

  • “Close shave!”
  • “A truly divine near death experience. Most will turn to a god afterwards, be happy you already had one. A competent god, at that.”
  • (Divine life protection.)
  • alt. name: “Divine”, “Epiphany”, “Whew!”

"Gifted"

  • “I almost got killed from junk falling out of the sky!”
  • “The trading agreements between this god and the dungeon sure leave something to desire these days.”
  • (Got a god gift.)
  • alt. name: “God gift”

"Selfmade"

  • “Hope for the best, expect the worst.”
  • “Acquirements always this bad? Somehow you strongly remind me of an old tale I heard when I was a child…. something about a fisherman and his wife. I don't expect you to make the connection.”
  • (Acquired an item.)
  • alt. name: “Treasure”

"Sing!"

  • “Enjoy the killing karaoke.”
  • “The next version will include a rhyming toothpick.”
    • alt: “I'm not sure your singing voice will endear you to the dungeon populace.”
  • (Identified the Singing sword.)
  • alt. name: “Chorus”, “Duet”

"Hatch"

  • “And no way back!”
  • “On the upside, you could have ended up somewhere even worse. Possibly.”
  • (Used an escape hatch.)
  • alt. name: “Oneway”

"Sticky"

  • (?)
  • “Wow, the monsters must really like you! Or maybe they're just hungry, it's hard to tell.”
  • (Hostile monster follows along staircase.)
  • alt. name: “Escort”, “Stowaway”, “Follower”, “Tailing”

"Expert"

  • “One down, twenty to go!”,
  • “Don't get overexcited about maximising a skill. The opposition has masters, too!”
  • (Maxed a skill.)
  • alt. name: “Geek”, “Wonk”

"Rune"

  • “No, it doesn't do anything!”
  • “Runes don't do anything. Oh, I guess you can count them.”
  • (Picked up first rune.)

"Abyss"

  • “It was about time, wasn't it?”,
  • “Given that the Abyss is infinte, you'd have had better chances to find that needle in the haystack.”
  • (Left the Abyss without Lugonu's help.)
  • alt. name: “Escape”, “Freedom”, “Return”, “Comeback”

"Bazaar"

  • “This shopping mall is open all day.”
  • “Buy, buy, buy. Follow your fit of buying frenzy!”
  • (Entered a bazaar.)

"Purchase"

  • “Buy five, get one for free!”
  • (?)
  • (Bought an item.)

"Maze"

  • “Theseus would have been quicker!”
  • “According to modern terminology, mazes and labyrinths do no longer mean the same thing. Do your homework and compute the minimal age of the developers. Hint: for easier access, send any reports in Latin or Sanskrit.”
  • (Escaped a labyrinth.)
  • alt. name: “Amazing”

"Zotted"

  • “You could have died from this!”
  • “Bored psychiatriasts have been known to spot mental illnesses of the developers of this game, based on the effects of Zot traps noted so far. Some of the mental deficits are _very_ rare, and occasionally hazardous.”
  • (Detected a Zot trap by stepping on it, and survived.)

"The set!"

  • “Now, it's off to Zot for honour and glory!”
  • “Picking up the third rune demands a determined decision: Go for the orb and face a quick death, or rather go for some more runes and face a slow death? Decisions, decisions…”
  • (Got three runes.)
  • alt. name: “Complete”

"Shifter"

  • “It'd be easier if that thing stayed the same for two minutes.”
  • “Shapechangers are hard. You might be interested in the advanced artificial intelligence employed in determining which shape will hurt you the most.”
  • (Seeing a shapeshifter change.)

"Finale"

  • “I wonder if it really is as hard as they always claim it to be.”,
  • “Prepare for the finale battle between Good and Evil! Just to be on the safe side, the Zot:5 population represents the good guys.”
  • (Entering Zot:5.)

"An orb!"

  • “It is so beautiful, I would die for it.”
  • “No one has picked up the orb and managed to die with it on the way back up. So far. I'd be mildly entertained if you were the first.”
  • (Picked up the orb.)
  • alt. name: “The orb”, “Gotcha”

"Boris!!!"

  • “This boy is resentful indeed!”,
  • “By now, Boris is considered to be a prime example of bad education. Try to be a better mum or dad, won't you?”
  • (Encountered Boris the third time in a single game.)

Unfortunate events

"Death"

  • “It happens to all of us!”,
  • “Now would be a great opportunity to start believing in reincarnation.”
  • alt. name: “Dead”

"Moribund"

  • “If you don't stop now, you never will!”
  • “Ten little, hopeful characters send to their graves. Not bad, not bad…”
  • (Died 10 times.)

"Cemetery"

  • “I can't help it, they just keep dying!”
  • “Try some easier combinations. You don't have to impress anyone with ghoulish thieves, you know?”
  • (Died 25 times.)

"Hopeless"

  • “Corpses pave your way!”
  • “For unlimited lives press the following secret code in the starting screen: I, S, U, C, K.”
  • (Died 100 times.)

"Scythed"

  • “You - Sigmund 0:1”
  • “Sigmund is just that good, face it!”
  • (Killed by Sigmund.)

"Busted"

  • (Killed by player ghost.)
  • “I guess you weren't too big a wimp that time around”
  • “Look at the bright side: Your ghost might succeed in killing somebody too!”
  • alt. name: “Haunted”

"Curses!"

  • “Foiled again!”
  • “Cursing that influential role-playing game right now, aren't you?”
  • alt. name: “Curse(d)”

"Hunger"

  • “What about a quick snack now?”
  • “Unless you are doing special diets, we reommend to feed your hero from time to time. Starvation won't get you any brownie points.”

"Sick"

  • “This dungeon ain't no gym workout!”
  • (?)

"Poisoned"

  • “The commercial version comes with an antidote!”
  • “Poison cabinet, poison cup, poison dart, poison fang, poison gas, poison gland, poison ivy, poison sting – it is a dangerous world. Time to start carrying some arsenic!”

"Starving"

  • “Any of beetroot, liver or black pudding would be fine. Really!”
  • “If you starve with something edible in your inventory, you will be mocked for centuries to come.”
  • alt. name: “Famine”

"Glowing"

  • “Eeep! I've turned into a street lamp!”
  • “You're about thirty seconds away from learning why magic isn't a toy for the careless. Be sure to take careful notes if you still have hands when you're done.”
  • (Got contaminated to dangerous levels.)

"Shafted"

  • “Where am I?”,
  • “Some good players never died to a shaft. Strange and unfair, isn't it?”
  • (Fell through an (undetected) shaft.)

"Drained"

  • “I want my level back!”
  • “Don't worry, you're probably going to die soon anyways.”
  • alt. name: “Relapse”

"Genes"

  • “It could have been worse.”
  • “Maybe if you dress very heavily you might still be able to make it in polite company.”
  • Gained a non-DS mutation.
  • alt. name: “Mutant”

"Freak"

  • “You could found a new subspecies!”
  • “You can pretty much forget about your membership in the country club now.”
  • Got 10+ mutations.

"Mummy!"

  • “She's probably not yours.”
  • “Mummies are dangerous even after death. Don't you wish you were that, too?”
  • Experienced a mummy death curse.

"Ouch!"

  • “Getting hit like this decreases your halflife substantially!”,
  • “Sometimes it hurts.”
  • (Taking 50% damage in one hit.)

"Miracle"

  • “Destined for glory!”,
  • “Battered, beaten, poisoned, on the brink of death. But you surived! You will show them!! You are the chosen one!!! Well, maybe your next character is…”
  • (Naturally recovered from poison at 1-2 hp.)

"Packrat"

  • “I demand one more slot!”
  • “Less is more.”
  • (Can't pick up more, full pack.)

"Xom"

  • “He who laughs last, laughs alone.”,
  • “Analogy time! Xom is to you as I am to… hmm, this is harder than I thought.”
  • (Did something Xom considered to be hilarious, not counting death.)
  • alt. name: “Laughter”, “Mockery”

"24h"

  • (?)
  • “A day of your life, wasted just like that.”
  • (Played 24 hours worth in total.)

"Addicted"

  • “Do you ever stop playing?”
  • “It'll take a lot longer than that before you have a chance at winning this game.
  • (Played 100 hours worth in total.)

Basic missions

For the second type of achievements, the player gets offered three random challenges out of a list of possibilities. As soon as one of them is fulfilled, three new ones are chosen. (Some special rules may apply to avoid offering three really hard ones at the same time.)

The first set is unlocked once the player has collected N normal badges, say 15 or so. Examples include the following:

"Hippie"

  • “Treat the monster with some respect, okay?”
  • Task: Reach D:7 without gaining an experience level.
  • alt. name: “Peace!”

"Shy"

  • “I didn't touch nobody!”
  • Task: Gain experience level six without killing anyone.
  • alt. name: “Harmless”, “Innocent”

"Mature"

  • “My colour is always a dud!”
  • Task: Make a Draconian change colours!

"Horns"

  • “In league with the devils!”
  • Task: Get a Demonspawn to the third innate mutation!
  • alt. name: “Ancestry”, “Heritage”

"Literate"

  • “Reading is overrated, but I can do it anyway!”
  • Task: Learn Spellcasting as a new skill!

"Brother"

  • “You'll never walk alone again!”
  • Task: Get a permanent ally and keep it for N turns!
  • alt. name: “Company”

"Morph"

  • “I refuse to stay in the shape that I am in by fate!”
  • Task: Change into another creature!

"Nasty"

  • “Close contact is needlessly hazardous!”
  • Task: Indirectly kill a monster!
  • alt. name: “Ambush”, “Sneaky”, “Sly”

"Combo"

  • “Such is the beauty of efficience…”
  • Task: Kill three monsters in the same turn!
  • alt. name: “Massacre”

"Infight"

  • “Let them sort it out…”
  • Task: Cause one hostile monster to kill another one!

"Mason"

  • “Shouldn't this crumble after an hour or two?”
  • Task: Kill a hostile statue in melee!
  • alt. name: “Demolish”

"Backstab"

  • “See a back. Wield dagger. Smirk.”
  • Task: Stab a <random dangerous beast>!

"Levels"

  • “A coffee and two levels, please.”
  • Task: Gain more than one XP with a single kill!
  • alt. name: “Upstart”, “Achiever”

"Arson"

  • “Pyrotechnics 101 - Don't try this at home!”
  • Task: Set a monster on fire!
  • alt. name: “Igniter”

"Revival"

  • “Some deserve a second chance.”
  • Task: Raise a unique from the dead!

"Altar"

  • “This is not a secular dungeon!”
  • Task: Create an altar! Hint: Nemelex Xobeh.
  • alt. name: “Shrine”

"Hide"

  • “Siegfried had one, Beowulf had one, I want one, too!”
  • Task: Create some dragon armour!

"Barding"

  • “Strange bodies require strange garments.”
  • Task: Wear a barding as a naga or centaur!
  • alt. name: “Scales”

"Weapon"

  • “Forged by nine smiths this weapon shall be!”
  • Task: Enchant a weapon to +9!

"Armour"

  • “Forged by eight armourers this suit shall be!”
  • Task: Enchant a body armour to +8!

"Brand"

  • “Fix the weapon's magic!”
  • Task: Make a temporary weapon branding permanent!
  • alt. name: “Branding”

"Vitrify"

  • “Let the walls become transparent!”
  • Task: Turn rock/stone into glass!

"Revenge"

  • “Turnabout is fair play.”
  • Task: Banish Erolcha to the Abyss!

"Egocubus"

  • “I am in a misanthrophic mood today…”
  • Task: Kill 27 monsters of your own species.

Advanced missions

A few more missions are unlocked depending on certain requirements.

"Stairs"

  • “Find the dozen pieces of this realm!”
  • Task: Find the entrances to 12 branches in the same game!
  • Requirement: Entered a branch other than the Temple.
  • alt. name: “Branched”

"Standing"

  • “No retreat, no remorse.”
  • Task: Kill all the Vault:8 guards without leaving the level!
  • Requirement: Got the silver rune.

"Jelly"

  • “Defeat the slimes and fetch your prize!”
  • Task: Kill the Royal Jelly of the Slime Pits!
  • Requirement: Got a rune.
  • alt. name: “Slime”

"Elf"

  • “Dry the Elves' sources of power!”
  • Task: Drink from the fountain in the Elven Halls!
  • Requirement: Got a rune.
  • alt. name: “Elven”, “Fountain”

"Downward"

  • Task: Reach D:27 without gaining an experience level.
  • Requirement: Reached D:27.

"Geryon"

  • “Blow the horn!”
  • Task: Get the Horn of Geryon and blow it.
  • Requirement: Entered Zot.

"Entombed"

  • “Crush the desiccated shells of the mummies!”
  • Task: Pick up the golden rune!
  • Requirement: Entered Zot.

"Crucible"

  • “Battle the infinite hordes of Pandemonium!”
  • Task: Pick up a Pan rune!
  • Requirement: Entered Zot.

"Hellish"

  • “Conquer Hell!”
  • Task: Pick up a Hell rune!
  • Requirement: Entered Zot.

"Apporb"

  • “Don't touch!”
  • Task: Apportate the Orb to the Zot:5 stairs!
  • Requirement: Entered Zot.

"Messiah"

  • “Prove Orcish superiority!”
  • Task 1: Turn a common orc follower into a warlord, named by Beogh!
  • Task 2: Follow Beogh and walk on the water!
  • Requirement: Picked up a god.

"Peace"

  • “All the arms we need are for hugging.”
  • Task: Pacify ten monsters with Elyvilon!
  • Requirement: Picked up a god.
  • alt. name: “Truce”

"Nemelex" -1-

  • “Become an architect of your own future: stack the decks!”
  • Task: Follow Nemelex Xobeh and stack a legendary deck of Wonders.
  • Requirement: Picked up a god.
  • alt. name: “Cards”

"Nemelex" -2-

  • “The card is mightier than the sword!”
  • Task: Kill a <dangerous monster> using only cards.
  • Requirement: Picked up a god.
  • alt. name: “Cards”

"Corrupt"

  • “Spread corruption and decay, make perdition out of order!”
  • Task: Follow Lugonu and corrupt the Zot:5 orb chamber.
  • Requirement: Entered Zot.

"Daevas"

  • “Lead your righteous army, mighty crusader!”
  • Task: Follow The Shining One and have six daevas at once.
  • Requirement: Picked up a god.

"Good"

  • “Become the glory of good and light!”
  • Task: Get full piety with all good gods in a single game!
  • Requirement: Picked up a god.

"Hurried"

  • Task: Win in less than 81.000 turns!
  • Requirement: Won the game.
  • alt. name: “Rushed”

"Hounded"

  • Task: Win in less than six hours!
  • Requirement: Won the game.

"Heptagon"

  • Task: Win with seven or more runes!
  • Requirement: Won the game.

"Complete"

  • Task: Win with 15 runes!
  • Requirement: Won the game.
  • alt. name: “Allruner”

"Focused"

  • Task: Win with only six skills present!
  • Requirement: Won the game.

"Oddball"

  • Task: Win <odd combo from a premade list>! (TrPr[Y], NaBe, OgVM, SpHu, DEAs)
  • Requirement: Won the game.

"Streaker"

  • Task: Win two games in a row!
  • Requirement: Won the game.

"Fancier"

  • “Prove your versatility!”
  • Task: Win six games, all with different species, class and religion.
  • Requirement: Won the game.
  • alt. name: “Variety”, “Creative”

"Obsessed"

  • “Why fix it if it ain't broken?”
  • Task: Play a class with starting weapon and win never unequipping it.
  • Requirement: Won the game.

"Sinister"

  • “No blood on my hands!”
  • Task: Win the game without ever physically attacking an enemy!
  • Requirement: Won the game.
  • alt. name: “Reserved”, “Distant”

"Bollocks"

  • “Those casters all deserve a kick to the head!”
  • Task: Win the game without ever learning a spell!
  • Requirement: Won the game.
  • alt. name: “Ignorant”, “Brawny”

"Greens"

  • “I am life, which wants to live, amidst of life, which wants to live!”
  • Task: Win without eating meat.
  • Requirement: Won the game.

"Warlock"

  1. Earth: “Shatter the walls that confine you!”
    • Task: Shatter a stone wall.
  2. Conjurations 1: “Fry your foes!”
    • Task: Use Fire Storm and kill 12 monsters.
  3. Conjurations 2: “Let frost bite your foes!”
    • Task: Use Ice Storm and kill 12 monsters.
  4. Summoning: “Nine dragons as friends!”
    • Task: Have nine summoned dragons at once.
  5. Transmutation 1: “Fetch the orb as a mighty dragon!”
    • Task: Dragon Form when picking up orb.
  6. Transmutation 2: “I am lichier than thou!”
    • Task: Kill Boris while in lich form yourself.
  • Requirement: Successfully cast a level 5+ spell.

"Master"

  • Task: Become <maximal skill title from a selection of skills>! (Air Magic, Bows, Crossbows, Evocations, Polearms, Stabbing, Summonings)
  • Requirement: Maxed a skill.

"Jack"

  • “Jack of all trades be thy name!”
  • Task: Get each skill at least to 1 in the same game!
  • Requirement: Got a new skill. (In addition to the normal minimum badges requirement.)
  • alt. name: “Rounded”

Other normal badges

  • Was banished: “Abyss”, “Abyssed”.
  • Was rotted.
  • Reached DL 27.
  • Reached XL 27. (This comes dangerously close to grinding, though.)
  • Performed Zot entrance ritual. (= Entered Zot.)
  • Mistaking a mimic for an item: “Mimic”, “Forgery”, “Deceit”
  • Winning.
  • Killed an oklob plant: “Oklob”
  • Winning with 3 diff. species.
  • Winning with 3 diff. backgrounds.
  • Winning with 3 diff. gods. (Minimum worship turncount.)
  • Got a second rune.
  • Winning Sprint.
  • Conquered a Ziggurat.
  • Reached the Temple with 10 diff. species.
  • Entered 3 diff. types of portal vaults: “Curious”
  • Killed 27 diff. uniques over var. games: “Bounty”
  • Encountered an oklob fortress (?)

Other challenge badges

  • Task: Disarm a blade trap.
    • Requirement: Discovered a blade trap.
    • Not necessarily a blade trap, seeing how the base requirement is still “Got N achievements”. Also, I'd prefer it if the requirements were all achievements in themselves, which might make the comparisons easier and doesn't require them to be hardcoded. — jpeg 2010-04-30 11:06
  • Task: Collect 5 diff. runes over various games.
    • Requirement: Found a rune
  • Task: Kill the Lernean hydra.
    • Requirement: Killed a hydra.
  • Task: Convince a unique to fight for you.
    • Requirement: Found a friend.
  • Task: Stab a hell or fixed pan lord to death.
    • Requirement: Got 3 runes.
  • Task: Ignite the Hive. (Casting Ignite Poison)
    • Requirement: Cast a level 5 spell.
  • Task: Step out of time with Cheibriados.
    • Requirement: Picked up a god.
  • Task: Win as an atheist (never worshipped a god)
    • Requirement: Won the game.

Achievements scores?

It might be an idea to have a seperate highscore list for achievements scores. Single achivements could give 1-9 points, a badge an additional 10-99 points and a medal maybe 250,500 and 1000, all depending on difficulty.

I don't think that achievements should have any gameplay effect at all, and that includes affecting the score. However, badges need to be stored in a file that can be easily accessed on the servers and posted in forums for bragging rights. For the latter, there's no guarantee for correctness, of course, but that's not such a big deal. — jpeg 2010-04-27 16:29
Seconded. No gameplay effects from achievements etc. It might be worth thinking about whether the badges file can be made upgrade stable. (So that players can keep their old badges file for the new version.) — dpeg 2010-04-27 20:18

Implementation thoughts

The achievements can be divided according to their coding complexity:

  • Binary: On various events, check whether the player already has the badge or not.
    • Examples: Killed by Sigmund, killed a hydra, reached the Temple, was banished, got a rune.
    • For some achievements, this requires keeping track of new conducts (vegetarian, never unequipped weapon, never worshipped a god).
  • Numeric: Increase a counter for specific events and hand out the badge once the threshold is reached.
    • Examples: Killed 100 rats, died 10 times, played 24 hours.
    • Some of those need to be saved across several games, others applying only to a single game are likely to already being kept track of for the dump.
  • Vector: Requires keeping track of different types of the same thing, hand out the badge once a threshold is reached.
    • Examples: Killed 3 different uniques, won with 3 different species, collected 5 different runes.
    • Again, some of these are already stored for the dump.
  • Complex: Requires keeping track of several counters at the same time, hand out the rune once one of them reaches the threshold.
    • Example: Kill 27 monsters of the same species. (Requires counters for all monster species at the same time.)
    • This can be done with a vector of vectors, but I'd leave the complicated stuff for last.

The achievement keywords, messages and descriptions, and possibly also requirements, should be stored in the usual database text files. We might be able to adapt the standard format for that:

 %%%%
 Jelly
 
 Defeat the slimes and fetch your prize!
 %%%%
 Jelly task
 
 Kill the Royal Jelly of the Slime Pits!
 %%%%
 Jelly requirement
 
 Rune
 %%%%

This does mean that the keywords need to be hardcoded in whatever achievement structure we end up using, maybe something similar to the Notes system. Either way, we need at least two files to store the achievement information: a binary file keeping track of the progress of all achievements (binary, numeric, vector, as necessary) that is read into the structure on game start or load and written back into the file whenever the game is closed; and a text file listing the badge names (or possibly, keyword + message) that the player can show off and that can be accessed on the server. It's probably easiest if this file is updated along with the binary file is written iff the player earned a new badge in the current session. (A simple boolean should suffice to keep track of that.)

For the mission achievements, it must be possible to mark missions as eligible (respecting their requirement), active, and completed. On the achievement screen, only completed and active missions are shown.

The most difficult part (aside from actually coding all the triggers and checks) is probably making sure that all the necessary checks don't slow down the game. Using nested checks (killed any monster → killed a specific monster, or killed a certain amount of (specific) monsters) might help, as does the fact that only 3 missions are active at a time, which neatly limits the number of checks necessary at a time. It might be possible to use Lua for the checks even if the base structure ends up being coded in C.

Comments/further ideas welcome!

I think all the examples above fit into simple counters:
* How often have you killed a monster of type …
* How often have you collected rune …
* etc
If you want, keep an extra total runes collected counter, but that's probably not necessary.

The counters should be saved across games; we can additionally track them per game if some achievements require that.

Whenever something relevant happens, increment the counters and check if any of the open achievements have their requirements fulfilled. These checks can be filtered on the counter that was just incremented (so no rune checks for monster kills) if it's too expensive otherwise.

Regarding the file format, it has been suggested to store the data in a sqlite db.
rob 2010-04-28 18:25
Logged in as: Anonymous (VIEWER)
dcss/brainstorm/gameplay/achievement_system.txt · Last modified: 2011-12-22 00:28 by XuaXua
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki