Hey, Razor’s ideas were pretty similar to what I ended up going with in Sonny. Completing the game seemed more logical than grinding up levels, though.
I honestly have not checked this thread in a while, and part of the reason is because, again, many of the suggestions in this thread would be impossible to implement. Here’s the process that I go through whenever I create new badges:
Step 1. Figure out what’s possible.
Step 2. Decide out what’s fun/reasonable/logical, then assign it a difficulty.
Step 3. Test to make sure it works by getting an idea of when these statistics report to the Kongregate server.
Step 4. 60% of the time, the stats are not submitted often or reliably enough to create a badge, so the developer is hassled over email or AIM.
Step 5. Grab screenshots and create images.
Step 6. Come up with names.
Step 7. Launch.
So, as you can see, there are 7 steps to creating highly effective badges. And most people here are ignoring Step 1. Every single person reading this thread is capable of doing steps 1, 2, 3, 5, and 6.
“But Greg,” you say. “You’re a super awesome badge programmer with lots of admin tools on Kongregate. If only we had access to whatever you have access to!”
“Quiet!” I harshly reply. "I’m not a programmer, and creating badges on Kongregate doesn’t actually require any technical skills. Additionally, beyond developer email addresses, I hardly have access to any information that normal Kongregate users don’t also have access to! I can change statistics to show up in the high scores list if I want, to get an idea of how well people are playing a game, and whether or not something like a “gamecomplete 1” stat has ever been submitted to us. That’s it.
Try this. Go to a game with our API (green light in chat). Type ?debug_level=3 at the end of the URL. When chat loads, you’ll see a bunch of messages being spammed by a user named “info.” These are all the stats that the game is submitting to us. That’s all of them, right there. All conditions used to create badges on Kongregate are merely high scores — even if they’re not always displayed in the “scores” tab! They will, however, be displayed here.
Please reread that. All badges on Kongregate simply use high scores. That’s it. There’s nothing beyond that. So how do I make a badge like “complete Sonny”? Simple. There’s a high score called “game” that Krin (Armor Games) submits to us. If you don’t beat the game, it doesn’t send anything (sometimes other games will send a 0). When you beat the game, congrats, you got a high score of “1.” So when I go to create a badge for something like that, I set the “high score type” as “game” (short for “game completed”) and set the quota to “1.”
That’s it. That’s all I can do. No, I can’t do “complete Sonny without dying.” There’s no high score for that. I can’t do “complete Fancy Pants without collecting any squiggles.” I can’t do these because they are not high scores. I can’t repeat this enough.
Anyway, once you’ve used ?debug_level=3 to see which stats the game is capable of submitting, play the game a bit. If you don’t see anything else, then oh noes, the API is broken. If, however, you see “info” submitting numbers with high score names attached to them, then this is awesome — it means that the game is sending exactly those stats at exactly that time. You can see exactly what our server sees, and you can even see exactly what I see when I’m testing to make sure that the API is functioning properly. Try using this debug menu while earning badges. You will notice that statistics required for earning a badge are sent from “info” in chat at the exact same time that a badge is awarded. We have a server for testing, but I don’t even use it for testing badges before launching them. Instead, I compulsively play a game over and over with my eyes glued to the messages sent by “info” in chat, making sure that stats are always sent correctly and reliably. If you’ve ever encountered a glitch with not getting a badge before, it’s because this stat was not sent to the Kongregate servers by the “info” message.
Try this: Get a badge idea. Let’s say “collect 10 squiggles in Fancy Pants.” Go to Fancy Pants and put ?debug_level=3 at the end of the URL. Collect 10 squiggles. Nothing is being sent, right? What this means is that your badge might not work! Now try going through a door. Suddenly, “info” will submit the “squigglesget” along with the number that you have collected. What we’ve learned here is that Dr Nero is submitting stats to Kongregate whenever Fancy Pants Man goes through a doorway in the game.
Sometimes I’ll use this method to decide that a submission might technically work, but it’s highly unreliable. For example, what if Amberial submitted “Aces: 22” right when you collect all 22 aces? The API must be working perfectly, right? Wrong. If someone collects all 22 aces before the badge is created, that person is screwed. He will need to restart the entire game. Likewise, if someone collects all 22 aces during a connection blip, he will have essentially “wasted his chance” to have that stat submitted. So what oddgoo very wisely does is submit “Aces: X” (where “X” is the number you’ve collected) every time you load up the level screen. Try going to Amberial: Nebulosa Realms yourself and try it, by entering ?debug_level=3 at the end of the URL and loading up the level select screen. You’ll see lots of juicy stats being submitted to us. This means that the submission process is reliable, and oddgoo is awesome. No API hassling from Greg required.
Anyway, kind of off on a tangent there, but my point is that you guys have way more power to investigate these matters than you seem to think you do. Sometimes if I’m especially busy and don’t want to seem too rude about not replying to people’s whispers in chat, I’ll even design and test badges on a secret non-admin account!
So while I really do appreciate everyone’s suggestions, but please keep the above things in mind. I get tons of emails, whispers and IMs from people suggesting achievement designs, and a very large portion of them would be impossible to implement.