I am interested in using Drupal as the platform for an alternate reality game (ARG), where people are asked to complete narrative-related missions (e.g. completing mobile-phone-aided scavenger hunts, decrypting mysterious notes, creating zany steampunk inventions in answer to a prompt and posting photographs of their work).
In terms of automating the reward/badge systems for large-scale game sites, I see a lot of work done toward rewarding "typical" Drupal site actions; for example, you can link up the user badges module and the voting API and automatically award site users badges for adding to a wiki, commenting on someone's post, or starting a forum thread. What I haven't been able to figure out is how to automate awards for more specific actions such as having a player decrypt a code, then if they provide the site with the correct decryption phrase they automatically receive a badge. I've tried to do this by linking the Quiz module with Rules and User Badges, but as much as this looks like it should work it doesn't (each quiz provides a drop-down menu of actions for the quiz to trigger, but these work regardless of whether the quiz was completed correctly and also only for the author of the quiz, as far as I can tell). The quiz/rules/badges approach is something I could see working for someone with a bit more coding experience/time...
What I'm wondering is if anyone has any ideas about how to automatically award game badges to visitors who provide something like a specific word, phrase, or image that matches the specifications the game-makers have set? Are there any modules or hacking ideas that might help with this sort of behavior?
Thank you for your thoughts!
Comments
I'm a huge fan of ARGs, so be
I'm a huge fan of ARGs, so be sure to let me know when you launch ;)
Anyways, for what you're looking for, you'd likely be looking at custom code - custom integration between your actions and whatever module you end up using. I wrote up an Achievements module a year or so ago (Drupal 6 only) that requires the site admin to develop their own hooks for when to fire a successful achievement, and you'd likely end up having to do the same for your goals - whenever anyone answers /this/ node correctly, do /this/. It's not THAT difficult to do - I've done two or three iterations of such a thing for other (unreleased) sites (defining custom questions in a node, accepting multiple regexps for valid answers, then kicking off a reward or achievement based on it), but I don't know of any canned module that does it.
I'd be happy to share 'em the stuff I've done.
In D7 it could be a
In D7 it could be a module-supplied field type that uses the submit phase to check for the correct answer, then triggers either a win or fail action.
Morbus: You might consider moving Achievements over to git, maybe as a sandbox project.
@Mile23: validate/submit
@Mile23: validate/submit phase is what my existing (unreleased code which I've since sent to him by email) does, yeah. Checks for a answer in validate and, if correct, continues on to the submit phase where Whatever Needs To Happen Happens. As for Achievements/git, I'm in no rush to do so - it's not even in a CVS sandbox, it's just attached to an issue at the moment. I had plans to migrate it to D7 sometime this summer and it'll get a proper repository then.