2014年6月28日土曜日

GAEで作るWebランキングサービス

自前でサーバーの準備管理運用云々をやると大変面倒なので
GAEで簡単にWebランキングサ―ビスを実現する方法を紹介してみようと思う
著者もサンプルや資料を継ぎ接ぎしたレベルで実装しているので、改善点等ご意見頂ければ幸いである。

1.前準備

此方のサイトで解説されているので、そちらを参照頂きたい。
GAEの登録とEclipse+PyDevの環境構築まで出来ればOKである。
http://libro.tuyano.com/index2?id=50

2.アプリケーションの作成

最低限必要なファイルは以下の通り。

app.yaml ※applicationの値はGAEで作成したアプリケーション名と合わせること。
application: hogehoge-application
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /crossdomain.xml
  mime_type: text/xml
  static_files: crossdomain.xml
  upload: crossdomain.xml
- url: /simple_db
  script: simple_db.app
crossdomain.xml
simple_db.py
crossdomain.xml ※セキュリティ設定は最も緩くしているので、必要に応じて設定すること。
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
<!-- Most restrictive policy: -->
<!--
    <site-control permitted-cross-domain-policies="none"/>
-->
<!-- Least restrictive policy: -->
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" to-ports="*" secure="false"/>
    <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
<!--
  If you host a crossdomain.xml file with allow-access-from domain=“*”    
  and don’t understand all of the points described here, you probably      
  have a nasty security vulnerability. ~ simon willison
-->
</cross-domain-policy>
 この設定ファイルは此方のForumの投稿からお借りしたものです。
 http://stackoverflow.com/questions/11823025/what-does-this-crossdomain-xml-imply

simple_db.py
from google.appengine.ext import db
import webapp2
class SimpleDB(db.Model):
    name = db.StringProperty(required=True)
    data = db.StringProperty(required=False)
    create_time = db.DateTimeProperty(auto_now_add=True)
    update_time = db.DateTimeProperty(auto_now=True)
class SimpleDBHandler(webapp2.RequestHandler):
       
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        if self.request.get('name'):    
            rank = 1        
            for record in SimpleDB.all().order('-data').fetch(10, 0):
                self.response.out.write(str(rank)+'. '+record.data+'\r\n')
                rank = rank + 1      
        else:                
            self.response.out.write("access denied.")
       
    def post(self):
        if self.request.get('name') and self.request.get('data'):
            data = SimpleDB(name=self.request.get('name'), data=self.request.get('data'))
            data.save()
        else:
            self.response.out.write("access denied.")
           
app = webapp2.WSGIApplication([('/simple_db', SimpleDBHandler)], debug=True)
あとはGAEにデプロイするだけである。

3.使ってみる

UnityからWebランキングサ―ビスを使用する簡単なサンプルを用意したのでご覧頂きたい。
多分動く筈である。
https://github.com/soyliquid/GAETest

2014年6月23日月曜日

1週間げーむじゃむ2014/06 3週目

Landmassっぽさを追求した。
提出作品:BattleUnion
http://unityroom.com/game/000080

プレイヤーの操作性にはかなり気を使ったが、それ以外の部分が犠牲になっている
システムが固まってからのゲーム性の調整にはもっと時間を掛けるべきだろう。

2014年6月16日月曜日

UnityとAsset規約周りについての理解

非常にふわっとした理解で利用していたUnityのAssetについて
法的にどうなっているのか気にする必要を感じたので調べてみた
既に他サイトで同様の話題を取り上げて下さっているので、是非そちらもご覧頂きたい。

テラシュールウェア様の記事:
http://terasur.blog.fc2.com/blog-entry-244.html


以下に自分なりの理解を記述する。

Q.AssetストアからImportしたAssetを含むUnityプロジェクトを公開目的でGitHubとかにアップしていい?
A.基本的に不可。完成品の一部に組み込まれる形として、あるいはバックアップ目的以外での再配布は許可されない。
 ImportしたAssetが再配布を許可するライセンスを適用していた場合は可。
参考:
"Can I publish my game with the CC license?"
http://answers.unity3d.com/questions/703686/can-i-publish-my-game-with-the-cc-license.html

Q.Assetストアで購入したAssetを返品したい。
A.以下の条件を満たす場合は可。
  1.購入したAssetがプレビュー可能な画像等ではなく、プレビュー不可なソフトウェアの類である
  2.Asset購入後、2週間以内である
 
 返品の流れは以下のようになると思われる。

  Asset購入者がAsset提供者へ連絡→Asset提供者が返品に合意した場合、Asset提供者がUnityに連絡→返金?
参考:
"Asset Store Refund Policy":
http://answers.unity3d.com/questions/144729/asset-store-refund-policy.html
"Asset Store Provider Agreement: 4.6 Special Refund Requirements":
http://unity3d.com/company/legal/as_provider

Q.Assetストアで購入したAssetを他PCでも使いたい。
A.デフォルトのライセンスが適用されているAssetはone-per-personなので、一人で使用する分には可。
参考:
"Can you use assets from the asset store on multiple computers?"
http://answers.unity3d.com/questions/141692/can-you-use-assets-from-the-asset-store-on-multipl.html

尚、この記事の内容は記述時点のものであり
下記URLのEURAが更新されることで陳腐化する事が想定される為
各自に於かれましては都度最新の情報をご確認頂くよう願う次第。
http://unity3d.com/company/legal/as_terms

私自身法的文書を読解することに非常に不慣れな為、誤読や誤解があるかもしれない
間違いがあればご指摘頂ければ幸いです。

2014年6月9日月曜日

1週間げーむじゃむ初参加

こちらの企画に参加させて頂きました。アウトプット鍛える良い訓練になりそう
http://www54.atpages.jp/~unitylib/forum/viewforum.php?f=35

提出作品:Ball on Slope
http://unityroom.com/game/000040

こういう活動が活発になるとすごい面白くなる気がするのでもっと流行るべき