Stendhal Achievement Development

From Arianne
Revision as of 07:18, 23 July 2010 by imported>Madmetzger (Client and Website)
Jump to navigation Jump to search


Collecting Ideas

  • collect more achievement ideas and nice titles at Stendhal Achievement Ideas
    • gives hints for further design decisions
    • can help structuring achievements into categories
  • should fulfilling an achievement be rewarded?

Client and Website

  • Should achievements be visible within the game? (low prio)
    • look action on player could be extended by a title based on the amount of fullfilled achievements
  • Website should be extended with a hall of fame section on achievements
    • calculate a score on difficulty of an achievement (killing x rats gets less points than reaching max xp for example)
      • basic score for each achievement
      • actual score for each reached achievement = basic score / number of players having reached that achievement
    • display medals on character pages; different colours or design in relation to the calculate point
  • Have a log about recently reached achievements on the website? (i.e. player has reached Junior Explorer achievement)

Design Ideas

  • database table(s) to display achievements on website
    • table for achievment types? maybe not needed, strings could be applied in the reached achievements table
    • table for player has reached achievement
    • possible class model draft and a corresponding table draft

CREATE TABLE achievement IF NOT EXISTS (
    id INTEGER AUTO_INCREMENT NOT NULL,
    identifier VARCHAR,
    title VARCHAR,
    category VARCHAR,
    description VARCHAR,
    PRIMARY KEY(id)
)
CREATE TABLE reached_achievement IF NOT EXISTS (
    id INTEGER AUTO_INCREMENT NOT NULL,
    charname VARCHAR,
    timedate TIMESTAMP default CURRENT_TIMESTAMP,
    achievement_id INTEGER,
    PRIMARY KEY(id)
)
  • check if player has fulfilled an achievement
    • "polling" every x turns via TurnListener, but could be a bad idea as checking might be expensive
    • "telling" when to check, similar to tutorial events or when raising game events (we have possibly the type here)?
    • store reached achievements as string set in player object: load reached achievements from database on login into a volatile set in player object
    • how to store progress for a certain achievement?
      • using a map?
      • key = achievement name, value progress value?
  • find a way to conveniently add new achievements
    • loading system for achievements like stendhal quest system?
    • building block system similar to ChatConditions?
      • killed x creatures
      • killed x of y different creatures
      • collected x items
      • finished x quests
      • killed creature without a weapon
      • looted certain collection of items
      • categorized by type of event to determine what to check, i.e. killed x creatures of type y condition should only be checked when having killed a creature but not on looting an item