.NET TIPS Visual Studioでの開発をゲーミフィケーションするには?[VS 2010]デジタルアドバンテージ 一色 政彦2012/03/15 |
|
「@IT Smart & Social:ゲーム嫌いも知らないと損するゲーミフィケーション入門(1/3)- @IT」で説明されているように、「ゲーミフィケーション(Gamification)」とは、ユーザーが楽しみながら継続的にアプリやサービスを利用してくれるようになることを狙って、そのアプリ/サービスに「ゲーム的な要素」を取り入れることである。
そして最近、開発ツールであるVisual Studioにも、楽しみながら開発するための「Visual Studio Achievements」という無償のゲーミフィケーションVisual Studio拡張が登場した。そこで、本TIPSではこれについて紹介する。
このVisual Studio Achievementsの内容は、Xbox360でゲームをしたことがある人なら容易に想像が付くだろう。ゲーム内に設定された「実績(Achievements)」をクリア(=Xbox360 ゲーマーの間では「実績解除」と呼ぶ)すると、その実績解除を証明する「バッジ」と「ポイント」が獲得できるというものだ。これと同様の仕組みがVisual Studioでも実現できるというわけである。例えば「5個のVisual Studio拡張(Extension)をインストールする」という実績を解除すれば、「Extensions Junkie(拡張ジャンキー)」というバッジと5ポイントが得られる。
なお、Visual Studio Achievementsは(執筆時点で)Visual Studio 2010にしか対応していない(エディションは Professional以上)。また、コーディング時の実績対象としてはC#とVisual Basicにしか対応していない。
●Visual Studio Achievementsの導入
それではVisual Studio Achievementsをインストールしよう。
インストールの前に、Channel 9へのユーザー登録が必要である(この登録にはWindows Live IDが必要となる)。実際にユーザー登録するには、「Channel 9」(英語)を開き、右上の[Sign In]リンクをクリックする。次に表示される、[Create a Channel 9 Profile to Participate(参加用のプロフィール作成)]ページで[User Name]に英数字で独自のユーザー名を指定し、[Check Availability]ボタンをクリックして、そのユーザー名が利用可能かチェックして、利用可能であれば最後に[Create Profile]ボタンをクリックすれば、ユーザー登録は完了である(次の画面を参照)。
Channel 9へのユーザー登録 |
ユーザー登録が終わったら、下記のサイトを訪れ(そのサイトで[ダウンロード]ボタンをクリックして)、Visual Studio Achievementsのインストーラ(=「Coding4Fun.VSAchievements.Package.vsix」というファイル名のVisual Studio拡張のセットアップ・ファイル)をダウンロードしよう。
ダウンロードした.vsixファイルを実行すると、次の画面のようなウィザードが表示されるので、[インストール]ボタンをクリックしてインストールを開始する。
Visual Studio Achievementsのインストール |
以上でインストールは完了だ。ここでVisual Studioを再起動しよう。
●Visual Studio Achievementsのアカウント設定
Visual Studio Achievements導入後のVisual Studio初回起動時には、[Authentication for Visual Studio Achievements plugin(Visual Studio Achievementsプラグイン向けの認証)]ダイアログが表示されるので、[Sign In]リンクをクリックすると表示されるログイン・ページで、先ほどChannel 9へのユーザー登録で使ったWindows Live IDでサインインする。
サインインすると、次の画面のように[Do you wish to authorize this application?(このアプリケーションを承認しますか?)]と聞かれるので、[Yes! Authorize this!(はい! これを承認します!)]ボタンをクリックする。以上の手順により、Visual Studio Achievementsが使えるようになる。
Visual Studio Achievementsのアカウント設定 |
●Visual Studio Achievementsの利用
アカウント設定以後は、Visual Studioで開発作業を進める中で「実績」が解除されると、各種バッジとポイントが獲得できる。実績解除(ACHIEVEMENT UNLOCKED)時には、獲得したバッジの名前がVisual StudioのIDEの右下にポップアップ表示される。次の画面はその例で、「Extensions Junkie」(5ポイント)と「Install and Register For Visual Studio Achievements」(5ポイント)というバッジがポップアップ表示されている。
実績解除(ACHIEVEMENT UNLOCKED)時のバッジのポップアップ |
獲得した全バッジを確認したい場合には、メニューバーから[ツール]−[Achievements]をクリックすればよい。これにより、次の画面のような[Achievements]ダイアログが表示され、上部に獲得済み(Unlocked)のバッジが、下部に未獲得(Locked)のバッジが一覧表示される。右上のコンボボックスの選択値を「All」から「Unlocked」や「Locked」に切り替えることで、表示内容を絞れる。
獲得した全バッジの一覧 |
また、Web上で獲得した全バッジを確認したいときや、獲得した合計ポイントを知りたいときには、Channel 9サイト(英語)で上部の右上にある([Sign In]リンクでサインインすると表示される)[Profile]リンクをクリックし、そこで表示されるプロフィール・ページの左下にある[Visual Studio Achievements]リンクをクリックすればよい。これにより、次の画面のような[<ユーザー名> - Visual Studio Achievements]ページが表示される。
[<ユーザー名> - Visual Studio Achievements]ページの表示 |
●獲得したバッジの公表
獲得したバッジは、FacebookやTwitterで公表できる。具体的には、先ほどの[<ユーザー名> - Visual Studio Achievements]ページにあるバッジ名をクリックすると、そのバッジ個別のページが開かれるので、次の画面のように、Facebook用の[Share]ボタンや、Twitter用の[Tweet]ボタンをクリックすればよい。
獲得したバッジのFacebook/Twitter共有 |
このほか、ブログに貼り付けられるウィジェットも提供されている。ただし、表示言語は英語である。例えば、
<script src="http://video.ch9.ms/widgets/VSachievements.min.js?user=<ユーザー名>" id="ch9VSachievements" defer="defer"></script>
のようなHTMLコードをブログのHTMLファイル内に記載すると、次の画面のようなウィジェットがWebページ上に表示される。
標準的なウィジェットの表示例 |
ウィジェットはさまざまな表示スタイルが用意されている。詳しい内容は、「Visual Studio Achievements Widget | C9Team | Channel 9(英語)」を参照してほしい。
●獲得ポイントと、順位表(Leaderboard)
ここまでバッジに注目してきたが、獲得した合計ポイントの世界ランキングのページ(=下記のリンク先)も用意されている。
獲得できるポイントは、バッジによって異なる。以下に、各バッジとそれにより得られるポイント(2012年3月15日時点)をまとめた表を示す。なお、[説明]欄に「FxCop使用」と記載されているバッジは、Visual Studio 2010 Premium/Ultimateだけで獲得できるものである(Visual Studio 2010 Professionalでも「FxCop使用」を有効にすれば獲得できるが、その場合は、「FxCop For VS Achievements | C9Team | Channel 9(英語)」の内容をコメント部分のディスカッションまで読んで納得したうえで試してほしい。ただし、パフォーマンスの問題などがあるようなので筆者としてはお勧めしない。また、筆者の場合は64bit版のWindows 7上にインストールしたVisual Studio 2010 Ultimateで試したが、「FxCop使用」と記載されている項目は実績条件をクリアしてもそのバッジを獲得できなかった。この問題と同様の報告もあるようなので、必ずしも全てのバッジを獲得できるとは限らないことに留意してほしい)。
カテゴリ | バッジ | ポイント | 説明 |
Customizing Visual Studio (Visual Studioのカスタマイズ) |
Extensions Junkie (拡張ジャンキー) |
5 |
5個のVisual Studio拡張をインストール。拡張性がイケテルぜ! |
Extensions Junkie Deluxe (拡張ジャンキー・デラックス) |
10 |
10個のVisual Studio拡張をインストール。どうやってメニュー上で項目を見付けているの? | |
Gotta Be Different (人と違うようにならなくちゃ) |
5 |
独自のVisual Studio設定をロード。誓って彼らは、決してデフォルト設定を正しくはしてくれないよ。 | |
Don't Try This At Home (まねしちゃダメ) |
Field Master (フィールド・マスター) |
0 |
単一のクラスに100フィールドがある。かっこ悪い! FxCop使用。 |
Go To Hell (地獄行き) |
0 |
gotoキーワードの使用。ええと、本来ならもはやそうしないようにすることがベスト・プラクティスだったそうです。 | |
Job Security (ジョブ・セキュリティ) |
0 |
一文字のクラス・レベル変数を、ファイル内に20個、記述。謎めいたあなたに称賛を! FxCop使用。 | |
Magic Numbers (マジック・ナンバー) |
0 |
30フィールドを持つ列挙体を記述。言葉があるというのに、誰が数字を必要としますか! FxCop使用。 | |
Overload (オーバーロード) |
5 |
メソッドのオーバーロードが10個以上。それで行けるだろう、もしくはあれで行けるだろう。FxCop使用。 | |
Scroll Bar Wizard (スクロールバーの魔法使い) |
0 |
300文字の長さで1行を書く。改行なんて誰が必要なのか? FxCop使用。 | |
Turtles All The Way Down (永遠に積み重なる亀) |
0 |
10段階も継承しているクラスを書く。いまやそれはいとしい継承さ! FxCop使用。 | |
Good Housekeeping (整理整頓が上手) |
Regional Manager (regionの管理者) |
7 |
クラスに10個のregionを追加。わたしだけが閉じたり開いたりし続ける必要がなかったとしたら、君のコードは可読性が非常に高いよ! |
Using Just What I Need (必要なものだけ使用) |
7 |
50回、[Using の整理]を使った。使われないusingは悪! | |
Just For Fun (お遊び) |
Install and Register For Visual Studio Achievements (Visual Studio Achievementsのインストール&登録) |
5 |
アドインをインストールして、Channel 9に登録。準備完了! |
Lonely (孤独) |
5 |
金曜日か土曜日の夜にコード書き。コーディング? 今夜? あいたた。 | |
Obsessive Compulsive Disorder (OCD) (強迫性障害) |
5 |
10回、[このウィンドウ以外すべて閉じる]メニュー・オプションを実行。まぁ言いたいのは、ところで誰がこんなひどいタブを発明したのよ? | |
Potty Mouth (お口がお下品) |
5 |
ファイル内で5つの異なる汚い言葉を使っている。そんなお口を石けんで洗おう! | |
Save A Tree (ツリーを保存) |
5 |
ソース・コードを印刷。上司がそうしろと言ったの。ホントだよ! | |
Power Coder (パワー・コーダー) |
Complex (複雑) |
10 |
ソリューション内に50個のプロジェクトがある。ある意味、怖いよ。 |
Equal Opportunist (機会均等主義者) |
10 |
publicとprivate、protected、internalメンバーを含むクラスを書く。それはスコープに関する全てだ。FxCop使用。 | |
Localization Guru (ローカライゼーションの達人) |
10 |
1000個のローカライズした値がある。ナイス・ローカライゼーション・ワーク! | |
On The Shoulders of Giants (先人たちの積み重ねの上に) |
10 |
25個のアセンブリを参照。ねぇ、誰かほかの人がすでにやっているのなら、なんでそれを書かなくちゃいけないわけ? | |
Suspicious (不審) |
10 |
5つのプリプロセッサ・ディレクティブを使用。コンパイラ・コマンドさん -- あなたは幻ではなかったのね! | |
Time For An Upgrade (アップグレードのとき) |
10 |
コンパイルに10分以上かかるソリューション。ソリューションが巨大すぎ! | |
Unleashing Visual Studio (Visual Studioの解放) |
Architect (アーキテクト) |
5 |
シーケンス図に10項目を追加。君はただの開発者ではないね。そう、君はアーキテクトだ! |
Casual Observer (無頓着な観察者) |
5 |
10回以上、ステップオーバー([F10]キー)を使ってデバッグ・セッションを開始。毎日、デバッガには感謝している。 | |
Cheater (ずるをする人) |
5 |
10回、IntelliTraceメニューを起動。ツールが全て! | |
Interrupting Cow (いいところでモーモーと邪魔ばかりする牛) |
5 |
ファイル内に10個のブレークポイントがある。あのバグはどこだろう? たぶんここか、あそこか、あちらこちらか! | |
Performance (パフォーマンス) |
5 |
10回、パフォーマンス・ツールを起動。このアプリ、なんでこんなに遅いの? いま分かったよ! | |
Start Me Up (わたしをスタートさせて) |
5 |
3つのスタートアップ・プロジェクトがある。皿にいっぱい載せすぎだろ! | |
Stubby (スタブ派) |
5 |
9回、メソッド・スタブを生成。あなたはTDD(テスト駆動開発)がすごい! | |
The Explorer (探検家) |
5 |
10回以上、ステップイン([F11]キー)を使ってデバッグ・セッションを開始。あぁ、[F11]キーのパワーよ。全てのコーダ−の親友さ。 | |
UML God (UMLの神) |
5 |
10回、UMLクラス図を作成。コードなんて弱者のためのものさ。強者は、モデル! モデル! モデル! | |
バッジとポイントの一覧表(2012年3月15日時点) | |||
説明部分は日本語に翻訳しているが、フランクな英語なのでニュアンスをうまく表現できていない箇所もあるかもしれない。厳密には、原文(Visual Studio Achievements | Achievements | Channel 9)を参照してほしい。 |
上の表を見ると、バッジによっては不名誉な称号もあり、その場合は0ポイントになっている。
●Visual Studio AchievementsのWeb APIについて
Visual Studio Achievementsでは、バッジに関する情報をWeb API経由で取得できる。例えば、あるユーザーの獲得済みバッジの全リストを取得したい場合には、次のようなURLにHTTP GETメソッドでアクセスすれば、JSON形式のデータを取得できる。
http://channel9.msdn.com/niners/<ユーザー名(リンク先は「masa0」の場合)>/achievements/visualstudio?json=true
このほか、JSONPにも対応している。詳しくは「Visual Studio Achievements API | C9Team | Channel 9」を参照してほしい。
カテゴリ:Visual Studio 2010 処理対象:拡張機能 |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|