万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Unity Advent Calendar 2013

    URL: http://qiita.com/advent-calendar/2013/unity

    AIかランキング機能をやろうと思いました。
    しかし、AIはすぐに書けないので、需要ありそうなランキング機能にしますね。
    Mac OS X前提です(^^)

    参考ネタURL: Unifyの記事
    http://wiki.unity3d.com/index.php?title=Server_Side_Highscores

    ちょっとこの参考ネタURLのランキングの仕様の説明。
    実際に動かしてないのでソース見た限り、
    名前だけ、WWW.EscapeURL にして渡している。名前は何が入るかわからないのでエスケープさせているのだ。
    また、ハッシュ化したのもパラメータで渡してマッチしてたらDBに挿入している。
    キーを適当に設定しているがきちんとしたのを入れよう。

    こちらの記事にあるMD5Testのコードは使えないので、こちらのコードを使うようにしてください。
    https://gist.github.com/shinriyo/7856337

    元記事はPHPMySQLでつまらないので、Python 3.x系&MongoDBにします。

    URLのマッピングも欲しいので、Web側のフレームワークはBottleでやります。

    PDOは「PHP Data Objects」の略で、どのDBを使っているかを隠蔽してくれるものですが、これも使いません。

    Bottleのインストールですが、

    pip install bottle

    で入ります。

    今はPython 3を使うのが常識ですね。
    Python 2を使うのは情弱か非ベンチャー的(ventureしない)な会社だけだと思います。

    MongoDBインストール

    brew install mongodb

    でささっとインストールします。

    MongoDBの初期設定

    ln -s /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents/$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 

    MongoDBの起動

    mongo

    だけ。


    スコアの追加用のテストでまず書いてみる。
    ・add_score.py

    中身はこちら
    https://gist.github.com/shinriyo/7856207

    ・実行

    python add_score.py 

    ・結果

    Successfully inserted document: {'_id': ObjectId('52a45565150ecdb664683639'), 'score': '10', 'name': 'shinriyo'}
    

    スコアの表示用のテストでまず書いてみる。

    ・display.py

    中身はこちら
    https://gist.github.com/shinriyo/7856219

    ・実行

    python display.py

    ・結果

    shinriyo
    10
    shinriyo
    10
    shinriyo
    10

    こんな感じになる。

    できたら、こちらから
    https://gist.github.com/shinriyo/7857151
    こちらのC#をとってきて、
    HSController.csで保存。

    ・GUITextを用意

    ・先ほどの「HSController」をコンポーネントとして貼り付ける

    ・結果

    ・実際のスコア登録を行う処理はコチラ
    score.py
    https://gist.github.com/shinriyo/7857609

    my_hash is 9386A8A972C08946C9BB1B05FC8972CA
    real_hash is 9386a8a972c08946c9bb1b05fc8972ca
    となるので、my_hashに対しては、lower()で小文字化する必要はありました。

    URLには、Inspector上で

    Add Score URL
    http://localhost:8080/score/add

    Highscore URL
    http://localhost:8080/score/display

    を忘れないように

    では、実際にUnityから登録をやってみる

    ・登録

    ・結果

    追加されました!

    では次の方!toru_inoueさんですね。