Stendhal Achievement Development: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Madmetzger No edit summary |
imported>Madmetzger |
||
| (29 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
{{Navigation for Stendhal Contributors}} |
{{Navigation for Stendhal Contributors}} |
||
{{Stendhal Achievements}} |
{{Stendhal Achievements}} |
||
== How to add achievements to the game? == |
|||
| ⚫ | |||
{{TODO|describe the steps towards adding new achievements |
|||
* Conditions |
|||
* Tracked data |
|||
* How to check for new reached achievements? |
|||
** Quests needs manual work |
|||
** item looting, zone changes trigger automatically achievement checks}} |
|||
== Development Idea Collection == |
|||
Within this section you find ideas and concepts on initial development of achievements. |
|||
| ⚫ | |||
* collect more achievement ideas and nice titles at [[Stendhal Achievement Ideas]] |
* collect more achievement ideas and nice titles at [[Stendhal Achievement Ideas]] |
||
** gives hints for further design decisions |
** gives hints for further design decisions |
||
| Line 8: | Line 19: | ||
* should fulfilling an achievement be rewarded? |
* should fulfilling an achievement be rewarded? |
||
== Client and Website == |
=== Client and Website === |
||
* Should achievements be visible within the game? (low prio) |
* 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 |
** look action on player could be extended by a title based on the amount of fullfilled achievements |
||
| Line 20: | Line 31: | ||
* Have a audio notice when someone reaches an achievement? |
* Have a audio notice when someone reaches an achievement? |
||
== Design Ideas == |
=== Design Ideas === |
||
There are several things to consider when developing the achievements handling. |
There are several things to consider when developing the achievements handling. |
||
=== Database and Class Model === |
==== Database and Class Model ==== |
||
* database table(s) to display achievements on website |
* 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 achievment types? maybe not needed, strings could be applied in the reached achievements table |
||
| Line 44: | Line 55: | ||
PRIMARY KEY(id) |
PRIMARY KEY(id) |
||
) |
) |
||
=== Ingame tracking and checking === |
==== Ingame tracking and checking ==== |
||
* check if player has fulfilled an achievement |
* check if player has fulfilled an achievement |
||
** <del>"polling" every x turns via TurnListener, but could be a bad idea as checking might be expensive</del> approach discarded --[[User:Madmetzger|Madmetzger]] 07:20, 29 July 2010 (UTC) |
** <del>"polling" every x turns via TurnListener, but could be a bad idea as checking might be expensive</del> approach discarded --[[User:Madmetzger|Madmetzger]] 07:20, 29 July 2010 (UTC) |
||
| Line 57: | Line 68: | ||
** <del>building block system using existing ChatConditions</del> Achievements use the ChatConditions for checking stuff |
** <del>building block system using existing ChatConditions</del> Achievements use the ChatConditions for checking stuff |
||
*** <del>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</del> already implemented by categorizing achievements and checking only the right category at each event |
*** <del>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</del> already implemented by categorizing achievements and checking only the right category at each event |
||
==== Quest Achievements ==== |
===== Quest Achievements ===== |
||
* number of finished quests already tracked |
* number of finished quests already tracked |
||
* repeatable quests should all count the completions of a player |
* repeatable quests should all count the completions of a player |
||
* <del>missing counting: Elf Princess Quest</del> (more missing?) |
* <del>missing counting: Elf Princess Quest</del> (more missing?) |
||
* <del>finished x times a quest</del> already implemented |
* <del>finished x times a quest</del> already implemented |
||
==== Item Achievements ==== |
===== Item Achievements ===== |
||
* looted items should be tracked in a map for each player with key item name and value number of loots |
|||
* looting items (not yet tracked) |
* looting items (not yet tracked) |
||
* putting items into bank (not yet tracked) |
* putting items into bank (not yet tracked) |
||
* collected x items |
* collected x items |
||
* looted certain collection of items |
* looted certain collection of items |
||
==== Fighting Achievements ==== |
===== Fighting Achievements ===== |
||
* <del>killed creatures</del> already tracked |
* <del>killed creatures</del> already tracked |
||
* killed creature without a weapon |
* killed creature without a weapon |
||
* <del>killed x creatures</del> already implemented |
* <del>killed x creatures</del> already implemented |
||
* <del>killed x of y different creatures --> is extension of existing condition possible?</del> |
* <del>killed x of y different creatures --> is extension of existing condition possible?</del> |
||
==== Zone Achievements ==== |
===== Zone Achievements ===== |
||
* for zone visit achievements, how to check them: |
* for zone visit achievements, how to check them: |
||
** <del>hardcoded list of zones to visit for the achievement</del> hardcoded zone name lists don't seem to be maintainable |
** <del>hardcoded list of zones to visit for the achievement</del> hardcoded zone name lists don't seem to be maintainable |
||