Game Mechanics plugin - your input requested

I am working on a comrehensive plugin that will add game mechanics functionality to Elgg. This has been implemented in a parts and bits in various plugins, but I think it is important that points, badges and gifts come as one integrated plugin. So, here are my thoughts for now:

- Users gain or loose points for:

-- Creating / Editing / Deleting objects (content items, e.g. blogs, pages)

-- Starting a relationship  - reciprocal points, where appropriate (adding a friend or becoming a friend, joining / leaving a group)

-- Adding annotations - reciprocal points, where appropriate (rating someone's content or having your content rated, comments, group topic posts etc)

-- Performing other actions (login, update profile etc)


- Badges are admin defined objects and can be earned (uncovered):

-- After reaching a certain number of points (status / level)

-- After performing a certain set of actions above (a combo of add x blogs + y top level pages + edit z pages)


- Gifts have a cost in points (can be free)


I need some input as to how site admins use similar functionality:

- What would you like to award points for?

- What are the types of combos would like to have available for badges?

  • I have to admit that when I read the title of your topic I expected something else to be discussed. I thought by "game mechanics" you would refer to elements that might be generally useful for implementing games plugins in Elgg that might go a bit farther than the current offered Flash games: playing against other members either 1-1 or multiplayer, top player's lists etc.

    Regarding userpoints, badges, gifts I would say I am of course slightly biased regarding the functionality as I've just released plugins that offer just the points you described. Still, I'm interested if there might be other possible features people are interested in.

  • Wikipedia has a good article about Game Mechanics (it's a somewhat different from gameplay) =

    Oh, I hope I am not offending your feelings by working on an alternative. Your plugins are great, but I am looking for a solution compatible with my hypeJunction plugins, something that I can easily extend and modify in hype contexts and something that implements that framework I've built.

  • @II: off topic... but - can't expect games more sophisticated than the flash games uploaded so far. anything more advanced such as MMO/RPG style games will be quite out of scope because of the ver intensive and hard development work involved and the pre-requisite very heavy technical know-how to code such games.

  • @Isayil: no prob. :)

    @Dhrup: I haven't had MMO/rpg in mind. For example a chess game or card games like poker "could" be less advanced. For example a chess game that only offers the option to play against other humans/site members might be even easier to develop than a game that allows human vs. AI. Still, it is surely not a trivial task to develop the user interface and the embedding in an Elgg site.

  • @II - the main technical issue is the interactive nature of these games - even a simple game of chess borders on the server/client communications interface as soon as you have 2 players connected thru the site to play a game. I've been looking at coding an interactive TicTacToe game for 2 players - to get the basics of the communications protocol/s code and tested. All other 1-player games are trivial to develop.


  • @Ismayil K - Points could be issued for verifying other users as being genuine.

    EDIT - That could be an add-on for your excellent star rating plugin

  • @Burgs, the mechanism I have chosen is registering event handlers based on a set of rules. It should be quite easy to define new rules using plugin_hooks. Verification would most certainly require that you create a new action, you would then need to register a handler to award points.

    Update on the progress:

    - I have a working points system with some 70 actions defined

    - Number of points to be awarded / deducted on each action is customizable via plugin settings

    - I have created a rule system, which is relatively easy to adapt via plugin hooks - for now it works with event_handlers only, but I will extend that to plugin hooks in the future

    - Working on badges now. I am creating 4 types of badges: status (they define user level), experience (they define user activity), purchase (they are exchanged for points), surprise (invisible to the user at first)

    - Badges will be awarded when a certain criteria is met - you can define up to 10 rules and specify how many times each rule needs to be fulfilled, you can set a minimum number of points before the badge can be awarded, you can set a number of points (cost) to uncover the badge, and specify what other badges are required before the badge in question can be uncovered

  • @Ismayil  Some features I would suggest are:

    -  Displaying the user's points in the owner block on the profile page.

    - Displaying the user's points on the members page under or beside the user icon both in list and gallery mode.

    -  Listing members with highest points (and their badges).

    -  A user widget on the profile page that show ths current badge and earned points.

    -  Admin should be able to upload badges' images to overwrite the default images.



  • @Shrek (makes me chuckle every time I write to you :),

    Thanks for the input. I've had all of these in mind. As for admin interface, there will be no defaul badges - it's all up to admin to set them up.

  • :-) this sounds great, can't wait to see your next excellent plugin!