Azureミステリーマンションの製作


私がOutlookを開いて、ゆっくりと過去をスクロールしているメッセージを見たとき、それは7月の晴れた、熱い朝でした.ミーティング、ミーティング、ミーティング.そして、要求!私の同僚、クリス・ノリングは、数ヶ月前に打ち上げられた革新的なコード・チャレンジ・プロジェクトについてのメッセージをくれた.それは、開発者に従事し、開発者を支援する教育モジュールのリポジトリは、Azure、マイクロソフトのクラウド提供について学ぶために開発者を従事し、意識を高めるパワー動物クイズを巻き込んだ.
どうやら、パワーアニマルクイズはヒットだったし、ハントは開発者に従事するための新しいクールなプロジェクトのためだった.「彼らは、魅力的な内容と楽しい挑戦でものすごいキャンペーンを構築しています」と、クリスが書きました.私は好奇心旺盛で、すぐにこれらのようなパズルは、Googlereveal the date of Google I/O . 我々は開発者のためのオンラインパズルを作成できますか?この動画はお気に入りから削除されています.どのように見えるでしょうか?
次の数週間、クリスは、ゲーム開発の学位を持っています.そして、私たちが作ることができるプロジェクトのタイプについて考え始めました.スカベンジャーハント?“あなた自身の冒険”Clickableゲームを選択しますか?我々は、我々が我々が中学校で遊ぶために使用した古い学校ゲームのような何かを進めるために完全にクリック可能であるテキストベースのゲームに定住しましたRaaka-Tu . 前提は、オブジェクトを拾って、道に沿ってパズルを解く古い家をさまようだろう.最初のプロトタイプはlibrary I discovered on GitHub 同様に、アートはインターネットから借りた.次のようになります.

プロジェクトが進行して、ハロウィンが近づいたので、我々はプロジェクトとその全体的な雰囲気に関係していた人々とわずかに両方ともピボットしました.“Azureミステリーマンション”(私は最近、ビートルズの歌詞でやってきた作品)は、プロジェクトは、カスタムアートと新しいパズルを統合し始めたと呼ばれる

クリスが他のプロジェクトに彼の注意を向けたので、新しいチームメンバーは加えられました.Em Lazer-Walker , テキストベースのゲームの専門家だけでなく、他の革新的なゲーム体験.このプロジェクトの理想的なチームメンバーは、プロジェクトに新しいアーキテクチャを導入しましたTwine , 「インタラクティブな、非線形物語を伝えるためのオープンソースツール」.私は確かに私は自分でこのプロジェクトを発見したことはありませんが、それを使って働いて、それはビルドするための超方法ですthis type of game , ゾーイQuinnのうつ病クエストなどの他のよく知られているテキストゲームを構築するために使用されています.あなたはそれを試してみる必要があります!

双子を用いたテキストベースゲームの構築


あなたが双子をためしたことがないならば、あなたはそうすることができますdownload it for free . Twine 2を使用すると、グラフィカルなインターフェイスを与えられているあなたのユーザーの経路をクラフト.例えば、前部のポーチから、人はホワイエに入ることができますユーザーは、ライブラリ、サロン、ダイニングルーム、または寝室に二階に移動することができます.

あなたは、基本的なCSSを使用してアプリケーションをスタイルすることができますし、マークアップ形式で来るいくつかの可能なゲームエンジンのいずれかであなたのロジックを記述します.私たちはHarloweを使いました.
(set: $inventory to (a:))
(set: $chest to (a: 'a shield', 'a suit of armor'))
(set: $chestOpen to false)

:: inventory [header]
You are currently carrying: 
<!-- if the inventory contains nothing, show "nothing" -->\
(if: $inventory's length is 0)[\
    nothing.
](else:)[\
    <!-- we iterate over the array and print each item -->\
    (for: each _item, ...$inventory)[\
        _item (unless: $inventory's last is _item)[, ]\
    ].
]
このサンプルでは、インベントリ配列が初期化され、チェスト内の項目が割り当てられます.その後、在庫は印刷されます.
ゲームで進行するには、物語を記述し、配列、変数、マクロを強化します.
You find yourself inside a small room. In the corner, you see a sword, and decide to pick it up.

(set: $inventory to it + (a: 'a sword'))\
[[Continue|hallway]]

:: hallway
You see a chest here in the hallway.  \
(unless: $chestOpen)[\
    Do you want to open it?

    {
    (link: 'Open the chest.')[
        <!-- adding to arrays together can also be done with the + operator -->
        (set: $inventory to it + $chest)
        (set: $chestOpen to true)
        (goto: 'chest')
    ]
    }
](else:)[\
    It's open, and there's nothing inside.
]\

[[Move on.|dart trap]]

上の例では、スペースを探索し、アイテムを拾い上げ、その内容を表示するために胸を開くなどのタスクを実行します.
双子を使用して、我々は人々が隠し場所を開くために古いロータリー電話にコードを入力するように、人々が各部屋で問題を解決することができます不気味なミステリーマンションの経験を作成しました.Twinは全体のゲームを平らなHTMLファイルにエクスポートしますAzure Pipelines CI/CDプロセスを完了し、ゲームのウェブサイトを構築する.

PlayFabでゲーム解析


あなたはブロックバスターゲームを書いているかもしれませんが、あなたのユーザーとそのパスを表示するためにそれの背後に解析学を持っていない限り、それはあなたに良いことをしないでしょう.我々はラッキーマイクロソフトのゲームプラットフォームを持っていると呼ばれるPlayFab それは堅牢で簡単に構成し、ゲームのパスを管理します.PlayFabは大規模なオンラインマルチプレイヤーゲームのためのスケーラブルなバックエンドを提供することができます.それは、これらの機能のいずれかを使用していない非常に小さいゲームだが、ミステリーマンションのバックエンドを提供します.我々は、訪問者の数を測って、プレーヤーがしている方法に関する若干の基本的な分析データを集めるためにそれを使用しています

我々は基本的なPlayFabのログインを使用して、我々が持っているどのように多くの毎日のユーザーを追跡し、世界のどこから来ている.また、リアルタイムを使用しているPlayStream events API プレイヤーがパズルを解くようなものをするたびにログを記録するために、我々はゲームに費やすどのくらいの時間の人々のような質問の明確な感覚を得ることができる、プレイヤーの割合は、それを打つと、パズルは人々を突破している.私たちの双子ゲームにPlayFabを統合するだけで数分かかった!

プレイする勇気がある!


あなたはAzureミステリーマンションに行為をしたいですか?パズルを解く、部屋の8つのキーを収集し、あなたの賞の屋根裏部屋に登る.次に、あなたの経験についてつぶやき単語を広めるために!
Click here to enter the Mystery Mansion!