Announcing Visual Studio Achievements Beta
- Posted: Jan 18, 2012 at 8:06 AM
- 86,557 Views
- 79 Comments
Bring Some Game To Your Code!
A software engineer's glory so often goes unnoticed. Attention seems to come either when there are bugs or when the final project ships. But rarely is a developer appreciated for all the nuances and subtleties of a piece of code--and all the heroics it took to write it. With Visual Studio Achievements Beta, your talents are recognized as you perform various coding feats, unlock achievements and earn badges.
Learn More About Visual Studio
Visual Studio is a powerful tool with tons of features, many of which you may not know about. Earning some of the badges may result in learning about features you didn’t even know existed!
Download It
How It Works
With the Visual Studio Achievements Extension, achievements are unlocked based on your activity. Your code is analyzed on a background thread each time you compile. In addition, the extension listens for certain events and actions that you may perform in Visual Studio, reporting progress on these events to the server.
When you unlock an achievement, Visual Studio lets you know visually with a pop-up:
Figure 1 - Unlocking An Achievement
In addition, your Channel 9 profile is updated with any achievements you earn, recalculating your position on the leaderboard:
Figure 2 - The Visual Studio Achievements Leaderboard
Some examples of individual achievements include Regional Manager (have more than 10 regions in a single class), Close To The Metal (use 5 preprocessor directives), Stubby (generate method stubs 10 times) or Interrupting Cow (have 10 breakpoints in a file). All in all, there are 32 achievements awaiting to be unlocked, all of which are listed here. Here's what the 6 different badges look like:
The Six Categories of Achievements | ||
![]() | ![]() | ![]() |
| Customizing Visual Studio | Don't Try This At Home | Good Housekeeping |
![]() | ![]() | ![]() |
| Just For Fun | Power Coder | Unleashing Visual Studio |
Share Your Flair
Each time you earn a badge, a unique page is created with your profile picture, the badge and a description. You can tweet about achievements you earn and/or share them on Facebook:
Figure 3 - Share A Page
Or, you can show a list of achievements on your blog using the Visual Studio Achievements Widget which is as simple as adding one line of script to your page. After all, those badges look so shiny and nice! Here's an example of the widget on a blog:
Figure 4 - The Visual Studio Achievements Widget On A Blog
The widget uses our Visual Studio Achievements public API, which you are welcome to access to create your own mashups and apps.
Genesis
We have to give props to the blog While True, whose blog post What If Visual Studio Had Achievements inspired us to go build this. That post spawned a reddit post that is the thread which started it all!
Feedback
We're just getting started with Visual Studio Achievements and are hoping to release more in the future. If you have ideas for additional achievements, we'd love to hear about them. Please use the Q&A section of the achievements extension to make suggestions for future achievements. And if you have suggestions, concerns, issues or problems, again, use the Q&A section of the achievements gallery page. Give a read to the FAQ as well as your question may already be answered.
Comment on the Post
Already have a Channel 9 account? Please sign in






Follow the Discussion
First to comment on this post:- achivements++
I love how people joked about this and it's definitely a reality. I'm stunned this is awesome :)
You could also check out a tiny little application I made in a day using Visual Studio Achievements API:
It's called VS Achievement checker. fairly basic - enter username and it fetches achievements and total points. Give it a go (it's free)
http://www.windowsphone.com/en-US/apps/431c078f-d4fd-4085-8f89-766b0a6d53a0
There is the open source implementation of a Windows Phone application for the achievements:
http://vsa.codeplex.com/
Pre-compiled XAP can be downloaded here (latest) [dev-unlocked phone required]:
http://dennisdel.com/blog/visual-studio-achievements-for-windows-phone-beta-ndash-build-01012012-update
Although it's definately not new, it looks very cool!
The pagination doesn't work on this page because the last user's name on the bottom right covers the pagination links
http://channel9.msdn.com/achievements/visualstudio/leaderboard
What browser are you using? I am not repro ing this on any of the browsers I have tested with
-Edit-
Ah there it is. I will get a fix up for this soon
Could these be related to your XBOX Live Acheivements too? More gamer points for developing!!
This should be fixed now.
Thanks for the heads up
Looks awesome, but doesn't build the url for the page
/niners/[displayname]/achievements/visualstudio?json=true
correctly with an underscore in the display name, so I cannot use it. Looking forward to trying it though.
Look forward to the fix D_K and I need to be able to use VS Achievements
I am unable to get achievements or view achievements as the url that is used only included my first name (before the underscore (_))
http://channel9.msdn.com/niners/<username>/achievements/visualstudio?json=true
This is also using my user name not my display name as i have tried chanign my display name and still no luck.
Look forward to the fix
Duncan
Awesome, I had a conversation with a co-worker last year about this and how I thought it would be fun to have.
@Duncan_McGregor is correct, it is an underscore in the username, not the display name.
Pretty cool... I wish the achievements would show up on our XBOX Live avatars. It would also be cool if there were achievements for using ReSharper.
@D_K: @Duncan_McGregor: Hey folks, we are looking into this issue right now, so hopefully we'll get it resolved in the near future.
@Duncanma:Excellent!
@Duncanma: Cheers
When this extension is enabled, I get errors building a solution (and these errors go away when the extension is disabled):
It's a fun idea, but honestly, some of those achievements should remove points from your total. 'Turtles All The Way Down'? 'Overload'? For shame!
Very cool! But it sort of kind of half works. Sometimes when I do "Close All But This" it doesn't count it. I've done it about 15 times but it says 8. Same with "Organize Usings".
And yes, you should be able to earn "bad" achievements
awesome!
Cool!
Excellent idea, but some of the achievements don't really looks like achievements, but rather bad coding practices. It would be great if the points collected actually indicated you level of coding proficiency.
@JiggleBop: One thing to note is that for 'progress' based achievements (like the 'close all but this' example) we only count a maximum of one per minute, no matter how many you actually do. If you are performing the action(s) as a normal part of your work with Visual Studio I suspect you'll just unlock the achievement naturally in time.
If you are having trouble with your user name and achievements, check the registry at; HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\VSAchievements if your username is properly url decoded.
How does this work with code I share with colleagues in source control? I don't want badges based on other peoples code and vice versa...
@Maddus Mattus: Thanks, that fixed it for me
That's the stupidest thing I have ever heard of...
@k4gdw: yes! resharper achievements++
@Dan: it places badges on you ch9 account, not on your code
@Maddus Mattus:Worked for me too. This is pretty sweet.
can someone explain to me whether you want to be off the leaderboard or at the top? i am unclear on the concept ;-)
also i suggest that an award be given for exceeding a given number of errors. call this the "Vice President" achievement. Some of the old COBOL compilers had that "feature".
I predict this become the Coder's Version of Farmville. (ie; must people will not two hoots, as to what achievement you've gained)
Visual Studio's will be forever tarnished, cometh the day when it is a requirement in a job vacancy.
I got an error with the extension and an error trying to report the error here in the site nice: here is the exception that makes VS crash
[Window Title] devenv.exe - Assert Failure
[Main Instruction] devenv.exe - Assert Failure
[Content] Expression: [mscorlib recursive resource lookup bug] Description: Infinite recursion during resource lookup within mscorlib. This may be a bug in mscorlib, or potentially in certain extensibility points such as assembly resolve events or CultureInfo names. Resource name: Security_Generic
[Expanded Information] Stack Trace: at System.Environment.ResourceHelper.GetResourceStringCode(Object userDataIn) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Environment.ResourceHelper.GetResourceString(String key, CultureInfo culture) at System.Environment.ResourceHelper.GetResourceString(String key) at System.Environment.GetResourceStringLocal(String key) at System.Environment.GetResourceFromDefault(String key) at System.Security.FrameSecurityDescriptor.CheckDemand2(CodeAccessPermission demand, PermissionToken permToken, RuntimeMethodHandleInternal rmh, Boolean fDeclarative) at System.Security.SecurityRuntime.FrameDescHelper(FrameSecurityDescriptor secDesc, IPermission demandIn, PermissionToken permToken, RuntimeMethodHandleInternal rmh) at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) at System.Security.CodeAccessPermission.Demand() at System.IO.File.InternalExistsHelper(String path, Boolean checkHost) at Microsoft.VisualStudio.Platform.VsAppDomainManager.InnerResolveHandler(String name) at Microsoft.VisualStudio.Platform.VsAppDomainManager.ResolveHandler(Object sender, ResolveEventArgs args) at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName) at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalGetSatelliteAssembly(String name, CultureInfo culture, Version version, Boolean throwOnFileNotFound, StackCrawlMark& stackMark) at System.Resources.ManifestBasedResourceGroveler.GetSatelliteAssembly(CultureInfo lookForCulture, StackCrawlMark& stackMark) at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark) at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark) at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) at System.Resources.ResourceManager.GetString(String name, CultureInfo culture) at System.Environment.ResourceHelper.GetResourceStringCode(Object userDataIn) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Environment.ResourceHelper.GetResourceString(String key, CultureInfo culture) at System.Environment.ResourceHelper.GetResourceString(String key) at System.Environment.GetResourceStringLocal(String key) at System.Environment.GetResourceFromDefault(String key) at System.Security.FrameSecurityDescriptor.CheckDemand2(CodeAccessPermission demand, PermissionToken permToken, RuntimeMethodHandleInternal rmh, Boolean fDeclarative) at System.Security.SecurityRuntime.FrameDescHelper(FrameSecurityDescriptor secDesc, IPermission demandIn, PermissionToken permToken, RuntimeMethodHandleInternal rmh) at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) at System
mmm, uninstalling now.
After 5 minutes i get the exception again
I don't understand whats the fun in this? Have I become so old! Or maybe because I am an FPS guy, so these mystery games are off my genre.
프린터가 용지가 있으나 오류발생
How about a c++ version?
@JuanZamudio -- Thanks for reporting this. We've logged the issue and are currently investigating.
Pleae give us C++ support :)
@Maddus Mattus: Thanks for the help, thought the username might be hiding in the registry
could not compile any project any more after installing this plugin
The idea is fun but the actual achievements are terrible. Why would you create so many achievements for terrible development practices?
This is a terrible idea, almost idiotic! Most of the achievements are promoting bad practices; decent idea, terrible execution. You really should come up with better achievements.
I love the idea. If nothing else it will help break up some of the same ole monotony of getting stuck in the same rut everyday. I look forward to sharing this with my coworkers too. I bet theyll get a kick out of it. The idea could potentially be used to promote good programming habits for new programmers as well!
@Maddus Mattus:Thanks, that was my problem. Now to collect achievements!
Job Requirement:
- demonstrates capability of using Visual Studio by unlocking minimum 10 achievements.
After receiving an Acheviement the TFS Connection wont work anymore. It alwys tells me i would not have enough permissions.
Is there a limit in FxCop command-line length?
FxCop never returns (process is stuck) from my Visual Studio 2010. Process Explorer says there is a 8895 characters long command line.
erm.... seriously.... you guys *really* think this is a good idea.
Sheeesh
I'm really hoping they come out with Steam integration.
I actually think it a fun idea, that provided it does not mess with the development environment then its fine.For some out there it appears to interfere with their development environments that's a shame but not unlike a number of other extensions out there. The folks who don't like it then don't install it then...
I totally agree with this! I like the idea, but I fear that we can just be incentivized in collecting achievements, even if it can mean writing worse code.
I just happened to read a good post about how achievements can be another driver for the adoption for code inspection and analysis tools.
Some ideas in there are worth implementing, in my opinion (in particular the one about focusing on positive change)
@Duncanma:I am really looking forward to this fix. Please sign me up!
We just released version 1.1 of the Visual Studio Achievements Extension which addresses the issue of users with an underscore in their Channel9 username. If your username doesn't have an underscore, there is no need to upgrade.
If you installed version 1.0 of the extension and registered with a username that had an underscore, you will need to take the following steps.
1. Go to Tools --> Extension Manager...
2. Click Updates and update the Visual Studio Achievements Extension
3. Restart Visual Studio
4. Go to Tools --> Options --> VS Achievements and click the Change User button
5. Log in and authorize the app
Follow these steps in this exact order and you should be good to go!
Error 184 Unable to copy file "obj\Debug\ModuleSettings.dll" to "bin\Debug\ModuleSettings.dll". The requested operation cannot be performed on a file with a user-mapped section open.
Error 185 Unable to copy file "Z:\SBpromo\Lib\Utils.dll" to "bin\Debug\Utils.dll". The requested operation cannot be performed on a file with a user-mapped section open.
and so on
More Achievements? I need more... hehehe...
Update to 1.1 fails because the signature is incorrect... had to uninstall 1.0 before I could install 1.1.
Got an error... "Achievement Files Have Been Tampered With." and I didn't tampered the files... !
http://pastebin.com/Mc3ibEsW
Thanks!
On my side with 20000 characters long it stuck. Any news about this performance issue?
I am also getting the "Unable to copy file "obj\Debug\xxx.dll" to "bin\xxx.dll". The requested operation cannot be performed on a file with a user-mapped section open." error with the extension enabled. I think the extension is great, please fix so that I can re-enable!
Still very bugged... ex: http://channel9.msdn.com/niners/Tanielian/achievements/visualstudio/CloseAllButThis10Achievement
12/10 ?! oO
But its nice...
(I want more. There are very few to get. hehehe)
None of my achievements get really unlocked/completed. Every time I start up VS2010, it tells me that Achievement XY is unlocked but taking a look at Tools>Achievements, none is unlocked. Same in my profile (like Tanielian).
Same problem here. Interesting thing is that we have two machines with Achivements (pretty much the same setup) and in just one of them the error occurs. Had to disable the extension.
Yes, we've logged this but about the locked files and are currently investigating...
@DavidGardiner:seeing same thing here. disabled.
I'm not getting the achievements logged, they pop up when I open Visual Studio but nothing logged. Using version 1.1, have no funny characters in my username.
I am sat on a network behind a proxy, does achievements use the proxy settings from the system?
I don't get any achievements logged anymore. I'm not getting any pop ups and no action is logged. I used fiddler to check if achievements is calling home, and it's not. I logged in, relogged in, changed user, uninstalled, installed again, removed registry keys, reinstalled again. Nothing works. As you can see, there is no underscore in my username.
Help?
Hi,
Loving the extension but it seems to be bugged for me. Any achievements i earn are not credited. But for some reason the achievements in progress are still being added up for example I've got some sat in the started list with with a progress of 20/10, but they are also not being moved to completed. Cheers
Version 1.2 (uploaded 2/2/2012) should address the experience where you were able to install the extension and VS notified you that you earned achievements, but then your profile was never updated on Channel9.There's no reason to upgrade to this build otherwise. We believe many people reporting issues with proxies will be fixed by this build.
In specific, some proxies were sending a Expect: 100-Continue header from the HttpWebRequest class, which the server wasn't prepared to handle. The fix was to set the static System.Net.ServicePointManager.Expect100Continue property to false.
Also, when you upgrade your extension, if you get a certificate mismatch error, install this hotfix: http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=38654, which will address updating this extension and any other extensions. If you don't want to install the hot fix, you can manually uninstall the extension and then reinstall with the new version.If you are still having issues with your proxy server and this build doesn't solve your problems, please post here and we will continue to investigate the proxy problem.
It just hit me.
I am a professor of Computer science and I am giving a course in .net programming (yes my colleagues have ostracized me for cohorting with the devil)
I am thinking of using this platform for grading my students,
Not for the final project which will be more traditional, but to make sure they are making solid progress.
Are there any suggestions people have about using this project in that way? Any pitfalls you can think of?
It just hit me.
I am a professor of Computer science and I am giving a course in .net programming (yes my colleagues have ostracized me for cohorting with the devil)
I am thinking of using this platform for grading my students,
Not for the final project which will be more traditional, but to make sure they are making solid progress.
Are there any suggestions people have about using this project in that way? Any pitfalls you can think of?
Hi guys!
This is a really cool extension!! Thanks for bringing this to VS2010! However, after the last update I started getting an error every time an want to recompile a solution. The first compilation runs ok, but after the first I keep getting an error that VS2010 cannot overwrite certain project DLL because the file is lock (that is not the exact message but is what is happening), and the FxCop that the extension is instantiating in the background is the process locking the files. Unfortunately, I had to disable the extension to be able to work. Just thought of reporting this to you!!
Cheers,
Enric
Hi!
I've unlocked a couple of achivements this evening (saying complete) but neither is this updated locally or online!
I have updated to the latest extension.
Enjoy,
Samad
Great extension, can't tell work from home apart now ^^.
However, looks like VS Achievement and Resharper aren't meant to start together,
I have to disable/re-enable one the two when I load a project or VS freeze...
Got the "The requested operation cannot be performed on a file with a user-mapped section open" error too, had to remove the extension
Cannot think of anything more stupid. Some of the achievements encourage bad practices!!!
This could have been excellent but you made all the achievements be terrible. It's a cosmic shame.
Got the "The requested operation cannot be performed on a file with a user-mapped section open" error too. Any word on a fix for this. I also agree that some of these achievments should have a negative score and more positive coding practices should be included.
Overall its just something fun to take your mind off the bug that your are beating your head against...
Remove this comment
Remove this thread
close