アットウィキロゴ

開発日誌(孝和)

2012/4/21

結局画面まわりは、普通のHTML+jQuery UIを使う事に決定。
jQueryUI使う事で、結構きれいな画面になってきたような気がする。

memo
java scriptベースのゲームライブラリ。
http://enchantjs.com/ja/

たった10分でシューティングゲームを作る動画。
http://www.ideaxidea.com/archives/2012/02/enchant_js_shooting_game_10_min.html

2012/1/15

jQuery Mobile、PC(古いブラウザは不可?)からでも見れるっぽいので、HTML5 + jQuery Mobileでいこうかな。
HTML5の対応状況も、割と新しいブラウザなら対応していっているっぽいしなあ。
http://dev.screw-axis.com/doc/jquery_mobile/

  • 全体的な画面デザイン:jQuery Mobile + CSS
  • 画面の動作的な部分 :HTML5 + jQuery
ってところかなあ?

2012/1/15

Paid apps cost a minimum of $2.10/week, and this amount counts toward your resource usage for that week. If you spend more than $2.10 in resources, you will be charged for those resources until your maximum daily budget is exhausted.
「paid app」=最低2.1$/週 + それを超えて使った分(最大課金額は指定できる)

Q: 有料アプリケーションの $9/app/month は手数料なのですか?それとも最低の利用料なのですか?
A: 現在までにいただいたフィードバックによって、$9 を元々は手数料としてアナウンスしていましたが、それを変更し最低利用料として徴収することにしました。言い換えると、アプリケーションをスケールさせるためには依然として月額 $9 をお支払いいただく必要がありますが、毎月の利用料のうちはじめの $9 を別途お支払いいただくことはありません。プレミアムアカウントの $500/アカウント/月 は依然、運用サポートのコストとして計上されます。

Write $0.10 per 100k operations
Read $0.07 per 100k operations
今のところ苦しい料金は上記2つ。
ちなみに無料分は、両方とも50k/日。
$9課金の場合、他が全て$9に収まる範囲とすれば、単純計算で4500kずつR/Wの範囲ならOKということ。1日あたり、150k?

今のアプリの場合、非常にざっくりだが1ユーザーが5~10分ぐらいゲームを行うと、0.2kぐらい使っているっぽい。
毎日20ユーザーがアクセスして、1時間ずつゲームをしたとして、0.2k * 12 * 20ユーザー = 50k程度か??
ということは、とりあえず月$9でかなり使える範囲になりそうだ。


2012/1/12

スマホ向け ⇒ HTML5 + jQuery Mobileが現段階で最強かなあ?
PC向け ⇒ HTML5 + jQuery + CSS3? …ってとこでOKな感じかな~?

サーバー側が落ち着いたら、HTML5に手を出してみるかな~。

2012/1/11

HTML5は、いつの間にか進化している…。
http://news.mynavi.jp/news/2011/12/21/016/index.html

あと、Twitterとの連携とかも可能みたい。面白いなあ…。
メッセージ機能を、Twitterと連携して…というのも面白いかもしれない。

2012/1/3

無料枠へ入れる基本方針はとりあえず以下参照。
http://goo.gl/R99Uj
ソートやフィルタに使用しないプロパティに@Attribute(unindexed=true)を付ける事で、
「Datastore Write Operations」はいくらか少なくなりました。
でも、所持金加算+ログ更新を100回行うと、5%(2500Writes)の使用量なので、まだ大きい。
slim3のmodelにはversionとかが付いてるけど、その辺りがunindexedになってないのか、
そこの更新コストが大きいような気がする。slim3が新料金体系に対応されることを祈る。

http://d.hatena.ne.jp/vvakame/20111006
5つのエンティティグループまで、トランザクション処理が可能ということらしい。
大規模なトランザクションが必要な部分はslim3を使用、それ以外はクロスグループトランザクションで処理…、
みたいな事が可能かなあ?

Datastore.beginGlobalTransaction() じゃなく、フツーのDatastore.beginTransaction() で、Cross-Group Transactionsに対応しているとか。
5 entity groupsまでなら、複数Entity Groupをぶっこんでも、問題なく更新とかできる様になっている筈。
なぬ、まじっすか。slim3の対応力はんぱないな。
…と思ったけど、
https://sites.google.com/site/slim3documentja/documents/slim3-datastore/transactions
High Replication Datastore(HRD)を使用している場合はSlim3はトランザクションをXGトランザクションとして開始します。
あれー、そっちだけっすか。とりあえず様子見ってとこか。

あとは、Datastore Read Operationsを減らすために、memCacheを採用してみようかな。
⇒memCache採用してみました。
 Datastore Read Operationsが大幅減!速度も速くなった気がするし、良いことづくめ!

2012/1/2

いつの間にか、GAEの様相が若干変わってる。
個人的に詰まった事2点。
  • com.google.appengine.repackagedが警告出るように。
JSON関連で使いまくってるので、早いうちに変更が必要だな。
  • 料金体系が変更に。
これはやばい。確認せねば。。。
Datastore Read/Write Operationsとかが、すぐにいっぱいになってしまう。
http://bygzam.seesaa.net/article/225749890.html
http://java.akjava.com/gae/keepfree
http://nikolat.cloudcontrolled.com/web/google-app-engine-fee-scale/
http://d.hatena.ne.jp/a-know/touch/searchdiary?word=*%5BGAE%2FJ%5D
無料運用は厳しい?コードの見直しで何とかなる?

2011/8/4

げ、前回の更新から3カ月以上が経過してる。時間の経つ速さといったら…。
GAEjを使ってみた欠点は、トランザクション処理が難しい(グループを跨ぐトランザクションが作れない)という点。
ちょっと難しい処理を行って、グローバルなトランザクションを行う必要がある。

それを一挙解決してくれるのが、Slim3!
ただ、Lowlevel APIを薄くラッピングしたというSlim3 Datastoreに馴染む必要があるなあ~。
明日さっそく試してみよう!

2011/4/30

Javaサーブレット⇒JavaScript へのデータ受け渡し形式ですが、
JSONというのが、よく使われているっぽい。

ActionScriptとの連携でもよく使われるらしいし、
ちょっとこれは有力。
でも、Ajaxの本来の道筋から行くと「XML」が王道かな?

http://blog.livedoor.jp/eeu/archives/55284613.html
かなり簡単に扱えるみたいだ!

Javaサーブレット側はこれだな~。
http://javatec.blog105.fc2.com/blog-entry-78.html
うーん、もうちょっとシンプルなのが良いなあ。


http://gihyo.jp/dev/feature/01/jquery-ajax/0002?page=1
XMLじゃなくて、JSONってのも主流なのかな?

JSONなら、サーブレット側のフォーマット生成が非常に楽だしライブラリも不要。
よし、JSONで行こうかな!


2011/4/29

Avatar of Ares (略してA2)って題名で習作です。
エンバトっぽいシステムを構築していきたいです。


今のとこの特徴
  • Ajaxを使って、リダイレクト無しの動的なデータ読込み
  • jQueryで、装飾的な動作を付ける。
  • GAEjによる、サーバー管理・フリーサーバーの負荷考慮とかからの開放
  • 開発、アップロードはEclipseから行えるので便利

ってなとこでしょうか。

1番については、「キャラ情報修正」のところで、
IDのみ記載すると、その他の情報を裏でロードしてきて、
入力欄に自動で反映される…というところで確認できます。

特に今回「良い!」と思ってるのは、3番ですかね?
サーバーっていっつも探すのに困りますし、
有料サーバーを借りて使うのも、自分でサーバーを立てるのも、何かと苦労はありますし。。。
その点、GAEjならサーバーは無料!
アクセス数とかに制限はありますが、その制限の範囲でも十分なので、
無料の範囲でもかなりなんとかなってしまう。
(その気になれば、制限を越えた分だけの課金…というのも可能)


逆に、今のとこ気になってるのは以下です
  • Eclipse上で開発していて、jQuery、JavaScriptのデバッグってどうやってやるの??(ステップ実行とかしたい…)
  • Eclipse上で開発していて、jQueryコードの部分は補完機能が働かない??
  • jQuery⇔Javaサーブレット間の通信方法自体は簡単だけど、沢山やりとりを作る必要があるので面倒。
 (I/Fをしっかり決める必要も当然ある)
  • jQueryからJavaサーブレットへ投げる時は、連想配列で投げれるんだが、逆で同じような便利な方法がまだわからない。

こんなところでしょうか。
とりあえず最後の1つから考えてみます。


2011/4/25

調べてみた感じ、jQueryの性能がかなり高そうなので、
クライアント側はGWTではなく、jQuery使用で作っていきたいと思います!

で、さっそくちょこちょこ作ってみます。
とりあえず、エンバトの劣化版からだなあ!



2011/4/21

4/20で紹介した本では、基本的にGWT(Google Web Toolkit)をOFFにして…という説明がされてたのですが、
試しにONでやってみました。
下記は、GWT自動生成のサンプル。


…す、すげえ…。何このダイアログみたいなヤツ…。
ブラウザ上で動作するリッチコンテンツが簡単に作れるんじゃね…?
とりあえず、これを前提にしてブラウザゲーム作ってみるかな!

ちなみにIE6とChromeで動作確認。
Chromeの方が、なんか若干良い感じで表示されてるような気もするけど、
とりあえずブラウザでの「訛り」はGWTで吸収されるらしいです。

それにしても、IE6って8とか9が最新なんだね!気づいたら時代遅れになってたよw


2011/4/20

本に書いてあるサンプルを入力して動きを試すのが面倒…とか思ってたら、
出版社のHPにサンプル置いてあるじゃん…。


検索してみるもんだなぁ。
ちなみに、本は秀和システムの「Google App Engine for Java 実践クラウド・プログラミング」です。
カバーが黒でカッコイイ!(?)


さて、さっそくサンプル試すか~!


そういえば、1ユーザーにつき10個までしかアプリをデプロイ出来ないっぽい。
最初の方のサンプル消さねば。
でも、それぞれ10個ぐらいまでバージョン違いも登録できるみたい…。
あれれ、結局バージョン違いとして登録すれば良いのか…?


IDの入力(5文字)を検知して、裏でデータを取得・更新します。
昔のこういうのって、必ずページ切換あったよな~。
これが技術の進歩なのか。。。

2011/4/16

JSPを使ったサンプルも試してみました。
http://takakazu4test2.appspot.com/

その際に下記のエラーが出てコンパイルが通らない問題がありました。
「Your project must be configured to use a JDK in order to use JSPs」

調べてみると、下記の方法で解決することができました!
http://watawatablog.blogspot.com/2010/05/jrejdkjsp.html


次はGAEの肝となる、BigTableを使用したサンプル!
http://takakazu4test3.appspot.com/

POSTを投げているのに、サーブレット側の関数をdoGetにしていたり
(当然、POSTはdoPostで受けるのです)
web.xmlのURL指定を間違えていたり、と色々ありましたが…。
ネットって便利ですねw

2011/4/14

Android開発に引き続き、開発環境はEclipse。
無料でこれだけの開発環境が揃うのは非常に凄い。

開発の流れは、
1、Eclipseでソースコード編集
2、Eclipseで実行
3、ブラウザで、localhostに対してアクセスすると、内容が閲覧できる!

非常にやりやすく、良いですね!

そして、サーバー上へのアップは、
1、Google上でアプリケーションID、アプリ名を設定
2、Eclipse上のappengine-web.xmlの<application>を設定
3、Eclipse上でデプロイボタンを押下!

たったこれだけで、アップロード完了です。
↓テストプログラム

http://takakazu4test1.appspot.com/
(トップページがHTMLで、guestbookがJavaサーブレットです。どちらもEclipse上で編集可能。)

xmlファイルのオープンが出来ない、という問題もありましたが、
とりあえずテキストエディターで開いて編集しました。
⇒eclipse.exe -clean.cmdの実行でいけました!それにしても、クリーン後のEclipse起動が遅い…。


2011/4/13

備忘録として開発日誌をつける事にします。

  • ネットワーク対戦が出来るゲームを作りたい
  • ってことは、TCP/IPを使ってネット対戦!?
  • いや、もしくはブラウザゲームでも良いんじゃね?
  • …今流行りのクラウド上で動くブラウザゲームなんてどう??

ということで、ここ1週間の興味は、クラウドに向いています!

ここで、キーワードをピックアップ!
○GAEj(Google App Engine for Java)
○Javaサーブレット
○Ajax(わからんけど、XHTML+jQuery(JavaScript))

サーバーサイドは、GAEj上で動くJavaサーブレットを作って、
クライアントサイドはAjaxで動くようなブラウザゲーム、
これがもしやネットワーク対戦として思ってたものに、一番近いものかも知れない。

スタンドアローンのゲーム作成も楽しいが、
昔のブラウザゲームの余韻を噛みしめながら、クラウドブラウザゲームを開発するのもまた一興。

というわけで、エンドレスバトルの第二世代(という名の劣化バージョン)を作ります!

タグ:

+ タグ編集
  • タグ:
最終更新:2012年04月21日 08:36