雪降って地固まる

Dota 2に関する内容を中心に扱います

Dota 2 Game State Integrationで遊んでみよう #2 準備編

Game State Integration(GSI)とはどのようなものなのか、どんなことが可能なのかについては#1をご覧ください。

この記事では、Node.jsとdota2-gsiを使用することにしました。

始めるために

前提として、Node.jsとnpmがインストールされている必要があります。

  1. steamapps\common\dota 2 beta\game\dota\cfg\gamestate_integration フォルダを作り、そのフォルダ内に gamestate_integration_*.cfg ファイル(*は任意の名前で置き換える)を以下の内容で作成する。

    "dota2-gsi Configuration"
    {
        "uri"               "http://localhost:3000/"
        "timeout"           "5.0"
        "buffer"            "0.1"
        "throttle"          "0.1"
        "heartbeat"         "30.0"
        "data"
        {
            "provider"      "1"
            "map"           "1"
            "player"        "1"
            "hero"          "1"
            "abilities"     "1"
            "items"         "1"
        }
        "auth"
        {
            "token"         "hello1234"
        }
    }
    
    • 認証を必要としない場合 "auth" { ... } を削除する必要がある。
    • 認証を必要とする場合、tokenを書き換えることを忘れないこと
    • "url" はGSIデータを受信するサーバーのアドレスで、異なるマシンでもリモートネットワーク上のマシンでも良い(Raspberry Piで動作確認済み)
  2. npm install dota2-gsiで必要なライブラリをインストールする

  3. (任意) 動作を確認する。以下のスクリプトでGSIを受信するサーバーを実行し、Demo heroを開始し、client connectedと表示されれば、正常に動作していることが確認できる

    "use strict"
    
    let d2gsi = require('dota2-gsi');
    let server = new d2gsi({
        // uncomment and modify if you use any port other than 3000
        // port: 3000,
        // uncomment and modify if you use token(s) and authentication
        // tokens: 'hello1234'
    });
    
    server.events.on('newclient', function(client) {
        console.log('client connected');
    });
    

注意事項

  • cfgファイルを書き換えた場合、変更を反映するには再起動する必要がある。

次の記事では、Dota 2 GSIを使って実際に私が作ったものを紹介したいと思います。