Моя база данных для геймификации очень проста.У меня есть таблица «Валюта», которая имеет одно поле, имя.У меня есть таблица «UserCurrency», в которой есть идентификатор пользователя, идентификатор валюты, которую они заработали, и целое число от того, сколько они заработали.Конечно, у меня есть таблица User.
И это все.
Я использую Django, поэтому кое-что из этого может не иметь смысла, но в основном у меня есть прослушиватель событий, который прослушивает события набаза данных.Когда пользователь делает что-нибудь , что приводит к попаданию в базу данных, прослушиватель событий прокручивает массив функций, каждая из которых содержит простые критерии на целевом языке для того, когда значок может быть присужден.Если пользователь отвечает этим критериям, значок присуждается.(«Валютой» может быть «количество постов», «количество ответов» или даже «количество тычков». Не принимайте это за денежное значение; это просто подсчет независимо от )это именно то, что вы хотите отслеживать.
Это очень простой и полностью расширяемый учетный механизм для ведения счета, не загромождающий схему вашей базы данных подробностями о конкретных вещах, которые вы отслеживаете. Он полностью независим от других пользователей.детали отслеживания, например, профиль. Если вы хотите добавить новую валюту, что-то новое, для чего вы собираетесь отслеживать, сопоставлять и присваивать значки, вы добавляете его имя в таблицу «Валюта», набор правил для ее присвоения,набор правил для пороговых значений, при которых пользователь получает некоторое подтверждение, и затем вам решать, как показать это пользователю и каковы последствия присуждения.
Кроме того, правила могут коррелировать.Переполнение стека делает это очень (очень!) Хорошо. Когда вы посещаете сайт, например, сработавшее правило даже неподсчитать валюты, но посетили дни, для значка "Энтузиаст".Каждый раз, когда вы получаете репутацию, код обновляет счетчик валюты «легендарный» только на 1, если ваш счет превышает 200, а когда эта валюта достигает 150, другой триггер награждает ваш «Легендарный» значок и так далее.Разъединение и независимость являются мощными инструментами в дизайне геймификации.