Over the course of developing our latest project with brainCloud, we found ourselves having to create a lot of hacks and workarounds to the native systems provided, and wanted to provide feedback and suggestions to make said systems more robust and allow for better flexibility that would make integrating with them a lot smoother. There's a lot of great systems provided that we'd love to be able to use, but have run into restrictions that have made them unable to fit the needs for our project.
Support for User Item Rewards
One pain point our team has had throughout development is that there isn't very robust support for awarding items in Gamification settings on the design portal. XP level rewards, for instance, can award XP, currency, update user/global stats, but we can't award items. We have had to instead make a global property to hold essentially the same data as the XP Levels rewards map, but with items to award afterwards via post-hook. Even then, we have specific initial item data we want to be able to set for certain level rewards, and I don't believe there's any areas where you can do so in the portal. It would be great to be able to specify item rewards for things like Milestones, Quests, XP Level Rewards, in a designer friendly way, ideally the option to tailor the initial item data for each.
Option to Control Reward Claiming
When we were adding achievements to our game, we had to veto using the native BC achievement and milestone systems because there is no option to be able to disable automatically completing the platform-specific achievements, as well as the previously mentioned issue of not being able to award items. We wanted to be able to let users claim their achievements and daily quests on a specific menu at their own discretion, so we can play UI animations that don't really work in certain contexts. The ability to do so would definitely help us lean towards using the native system in the future, but as of now the API is a bit too opinionated.
Daily Quests / User-Relative Milestone Thresholds
Another area where we had to roll our own system was our daily quests. Milestones are almost the right fit, but there is no ability to be able to do make the completion thresholds relative to the individual user's current statistics (as far as I'm aware). For example, we can't do something like "Complete 3 levels today" with something like a user statistic due to them being absolute values. While our current system gets the job done, it would be great to be able to have the proper back-end support for adding dailies in future games.
Another small suggestion would be to include support for a "lower than" threshold, as I'm sure several games would benefit from being able to have something like a golf or race time threshold. Obviously we can workaround this by inverting the value from a ceiling value, but this feels like something most devs would at least expect support for.
Hopefully these suggestions are useful and possibly some features to be considered for the future of brainCloud. Thank you for reading.