포럼: Open Discussion (Thread #25529)

技術情報交換 (2010-02-25 00:53 by hryksbt #48892)

Androidでオンラインゲームを作るにあたり、分野外、未経験の事も多々あると思います。
そこで、技術情報を交換できるスレを作りました。(自分が一番質問しそうですが(苦笑)。。)

RE: 技術情報交換 (2010-02-25 21:33 by taka848 #48913)

Androidのリアルタイムゲームの開発についての動画です
参考にするのにはいいかと思います。
http://www.youtube.com/watch?v=5mTJ9X4910E
Reply to #48892

RE: 技術情報交換 (2010-02-25 22:44 by chulton #48914)

全部見てきました。
所々にテクニックが紹介されてて良かったです。
Reply to #48913

RE: 技術情報交換 (2010-02-26 02:27 by hryksbt #48920)

SVNにアップしてある2つのプロジェクトですが、PracticeAndroidのソースのうち、

startSubActivity(intent, 0);

の行で、

"メソッド startSubActivity(Intent, int) は型 PracticeAndroid で未定義です"

と表示されており、そのメソッドを作成します、とありますが、書籍(GoogleAndroid入門)サンプルコードにはそのようなメソッドの記述はないんです。

このアプリは、PracticeAndroidのEditTextに記入した内容が、もう1つのプロジェクトであるTestChildAppに引き渡されて表示され、TestChildAppの終了を押すとPracticeAndroidに戻ると言う単純なアプリなはずなんです。

ちなみに、TestChildAppですが、import android.content.Intent;も抜けてましたか???
Reply to #48892

RE: 技術情報交換 (2010-02-26 09:00 by (del#42048) #48922)

ふたぽんです

最近、出られなくてスミマセンデス<(_ _)>

startSubActivity()でなくて
startActivityForResult()ではダメでしょうか

http://groups.google.com/group/android-developers/browse_thread/thread/285f09c791aa5a09
この辺りにSDK0.9でstartSubActivity()がなくなったような記述があります

http://developer.android.com/intl/ja/reference/android/app/Activity.html
Starting Activities and Getting Results辺りが参考になるのではと思います

外していたらすみません
Reply to #48920

RE: 技術情報交換 (2010-02-27 01:33 by hryksbt #48952)

ふたぽんさん

サポート有難うございます。
startActivityForResult()に変更したら、エラーは消えました!
が、入力した文字がTestchildAppに表示されず、PracticeAndroidにも戻れず…
もうちょっと勉強します。。
Reply to #48922

RE: 技術情報交換 (2010-02-27 12:59 by tenki_koda #48958)

入力した文字列はTestChildAppへ反映されていましたよ?
戻りの受け取りに関しては関数定義等が違っているようでしたので、
こちらで修正かけてCommit( Rev.27 )してみました。( 勝手にすみません(汗 )

やりたいことと違っていましたら申し訳ないのですが、
参考になれば幸いです。

そこで気づいたのですが、Commit時のコメント方法 & Commitまでの流れも
何か規約作った方がよいですよね…?
Reply to #48952

RE: 技術情報交換 (2010-03-04 01:18 by hryksbt #49148)

てんきさん
久々に環境いじる事が出来ました。
しかし!!!
折角てんきさんが直して頂いたVer.27を実行しても結果は変わらず、入力された文字がTestChildAppには反映されず、PracticeAndroidにも戻れず…うーん、何ででしょう???
因みに、Android1.6のエミュレータを立ち上げると、Cancel(だったかな?)とWaitを選択するウィンドウがいくつか立ち上がってしまうのですが、自分の環境が何かおかしいのでしょうかね???
皆同じなんだろうか…

Commitの時も何を変更したかは最低限あった方がいいですね^^何行目を変えただけでもいいかもしれないし、内容を書くだけでも良さそうですが、めんどくさくはなりすぎず、程よい更新履歴をちょこっとつけテクノがいいのではないでしょうか。
Reply to #48958

RE: 技術情報交換 (2010-03-04 04:12 by takuodoi #49149)

僕はチェックアウトしたままで動作しましたよ。
ソースを読んでいないので、意図は分かりませんが、以下の手順で実行できました。

1.PracticeAndroidプロジェクトと、TestChildAppプロジェクトをチェックアウト
2.AVD ManagerをEclipseから起動して、作成してあったX10のVirtual Deviceを選択して、Startボタンを押す
3.エミュレータ画面が起動し、しばらくすると、ホーム画面が表示される。
4.Eclipseから、TestChildAppをRun As Android Applicationとして起動
5.エミュレータ上にキャンセルと終了ボタンがあるActivityが表示されるので、終了ボタンを押して、終了
6.Eclipseから、PracticeAndroidプロジェクトをRun As Android Projectとして起動
7.エミュレータ上にテキストボックス、ラジオボタン、起動ボタンがあるActivityが表示される。
8.テキストボックスに適当に文字列を入力して起動
9.5と同様のActivityが起動されるが、上部に8で入力した文字列が表示される。

裕之さんのケースは記述して頂いたものだけだと何とも言えないですが。
何かの参考になれば。
Reply to #49148

RE: 技術情報交換 (2010-03-05 00:52 by hryksbt #49172)

doiさん
有難うございます。
時間が取れた時にまたチェックしてみます。
またうまく行かなかった時、フォローお願いしますね!
Reply to #49149

RE: 技術情報交換 (2010-02-26 09:26 by tenki_koda #48923)

ふたぽんさん、フォローありがとうございます。

こちらでも調べてみましたが、
現状のアンドロイドリファレンスにも「startSubActivity」は存在していませんでした。
(http://developer.android.com/intl/ja/reference/android/app/Activity.html)

"メソッド startSubActivity(Intent, int) は型 PracticeAndroid で未定義です"となり、
「そのメソッドを作成します」となるのは、スーパークラスも含めた[PracticeAndroid]クラス内に、
[startSubActivity]メソッドが無いから新規に作成しますよ、ということだと思います。

私の落としてきた環境では先にRev22があり、
こちらで変更を加えていた状態でRev25にアップデートしたため、
意識せずにマージをしてしまって[startSubActivity]を消していたために発生しなかったようです。

代替案としてはふたぽんさんのご意見が当てはまるのではないかと思います。
Reply to #48920

RE: 技術情報交換 (2010-02-27 01:36 by hryksbt #48953)

てんきさん

フォロー有難うございます。
私が調べたりなかったですね。。。
他のメソッドでももう存在しないものがあったのでそうなのかも、とは思っていたもののGoogle先生には嫌われてしまったみたいです^^;
とりあえず修正済みのソースはなんとなくアップしておきます。
Reply to #48923

Subversive使ってる方いますか? (2010-02-27 22:50 by hryksbt #48977)

またはまってしまいました。。。
EclipseにSubversiveなるプラグインを入れてSVNとパッケージエクスプローラーを連携させようとしたら、プロジェクトを実行できなくなってしまいました。
実行の構成で、プロジェクトを選べないんです…
このやり方で成功している方いますか?

というか、SVNでチェックアウトしたプロジェクトをインポートしたら.svnフォルダのせいでプロジェクトに×がついてしまいエラーと勘違いしているのがそもそもの発端です。

こんなんにはまってる暇ないんですが助けて下さい~~XO
Reply to #48892

RE: Subversive使ってる方いますか? (2010-02-27 22:54 by hryksbt #48979)

と思ったら自己解決しました。
SVNリポジトリからプロジェクトをインポートするんですね。
これは使えるかも!?
Reply to #48977

基礎プログラム開発 (2010-03-12 01:10 by hryksbt #49382)

まさらっきさん、

今回の開発の中で最も基礎となる、端末側からhttpを投げて、それをサーバが処理して端末に返すと言った内容のプログラムを書いて頂く事は可能でしょうか?
その次にサーバ上のDBも絡めた上で、どういった方式がどういった処理においてパフォーマンスが期待できるかと言った事を検証して頂けないかと思いますがいかがでしょうか?
なお、今サーバ構築中です。DBはMySQL5.1.44を予定しています。

ご検討下さい。
Reply to #48892

RE: 基礎プログラム開発 (2010-03-12 17:14 by masarakki #49396)

土日でちょっと弄ってみようと思います
Reply to #49382

RE: 基礎プログラム開発 (2010-03-12 21:56 by hryksbt #49411)

まさらっきさん、
ありがとうございます。よろしくお願いします。
iSTさんにailsで作って頂いたものもありますので、追ってSVNかGitにコミットしていただく予定です。
是非こちらもご活用下さい。
あ、一応サーバサイドはPHP5.2.9で行く予定です。
Reply to #49396

RE: 基礎プログラム開発 (2010-03-12 22:29 by izumist #49415)

Androidの簡単なサンプルをsubversionにコミットしました。
trunk / TransChat

サーバーサイドのRoRと連携する事を想定しています。

※設定しているサーバー側アドレスは週末は(多分)動いていると思います。

何かの足しになれば・・・(なるか?)幸いです。
Reply to #49411

RE: 技術情報交換 (2010-03-13 16:48 by hryksbt #49426)

ゲームのシステムアークテクチャのドキュメントを水上さんが作成されました。
下記URLからダウンロード可能です。
なお、当ドキュメントですが、Confidencialとなっておりましたので、メンバー限定で公開するものとさせて頂きます。

http://sourceforge.jp/projects/sangokushi/docs/?category_id=1054

また、今後こういったドキュメント類はPDFでアップし、編集可能なファイルはSubversionの/trunk/documents以下に保存して行こうと思います。
nonsさんに作成いただいたゲームシステム説明資料の<三国志ラフ.ppt>も子の運用にのせてみました。
Reply to #48892

RE: 技術情報交換 (2010-03-15 06:55 by nonno #49462)


nonです。初期設定画面を作成しようと、土、日、ひたすら試みたのですが、はまりまくってしまいました。
オープンニング画面にまずは「はじめる」ボタンは、設定しようと思ったのですが、それすらもできずに悩んでしまいました(笑)

①単に仮でゲームActivityを作成して、呼び出すクラスと呼び出されるクラスを作成しボタンにすればいいのだろうかとか、もしくは
②onTick()メソッドで、初期化変数をみて、初期化とscene変数に応じた処理を行うソースが必要なのだろうかとか。もしくは、
③HTTP通信でURLのリソースにアクセスするためのボタンなのだろうかとか
④サーバーからのデーターの読み書き(リロード、ユーザー登録)の設定ボタンとか
⑤HT-03AとX10の共通でしたっけ?を考えると座標軸ではなくレイアウトで設定するのかとか。
⑥いろいろ要素を含めるためには、プログラム本体のクラスは何で定義すれば、カバーできるのだろうかとか
諸々、、、

いろいろ思考錯誤して、土、日、ソースを書きまくってたのですが、情けないんですが結局できずじまいでした(涙)初期設定画面ができないと、先に進まず、プロジェクトの進行速度にかかわってしまうので、いったん、どなたかに、初期画面は、ご作成いただけないかと思いましてお願いのPOSTしました。いかがでしょうか。

non




Reply to #48892

RE: 技術情報交換 (2010-03-15 14:40 by hryksbt #49479)

nonさん、

途中まで作業された内容で構いませんので、ソースをコミットして頂けるとどなたかしらからアドバイスを頂けると思いますよ。

と言う訳でですので、

皆さん、たっきさん>
nonさんをヘルプしてあげて下さい~
Reply to #49462

認証の方法について (2010-03-22 12:43 by hryksbt #49643)

昨晩IRCの中で、認証について議論が交わされました。

候補は端末認証、SSO、OpenIDの3つです。

端末認証は制限が多そうでNG,SSOはおこたねこさんが調査中、OpenIDはSDK2.0以降から使用可能と、どれもすんなり実装というわけにはいかなそうです。

また、チャット機能はTwitterに肩代わりしてもらう方向で考えてますので、TwitterのIDか、OpenIDに連動させる必要があります。

これらを踏まえた場合に、どういった実装方法が適切か、皆さんのアドバイスをお願いします。
Reply to #48892

RE: 認証の方法について (2010-03-22 22:34 by hryksbt #49659)

日本Androidの会で、TwitterIDと連動させる事について質問したところ、以下のような回答を頂きました。

-----------------------------------------------------------------------
まず、twitterのapiは以下が参考になると思います。殆どは
REST形式で本家Twitterの操作で出来る事は殆どAPIでもできそうですよね。
  http://apiwiki.twitter.com/Twitter-API-Documentation
以下はrubyですが、BASIC認証→ユーザー情報取得の処理です。
http://d.hatena.ne.jp/d-kami/20090425/1240610922
あと、androidでBASIC認証を通す場合は以下が参考になると
思います。
http://www.androidsnippets.org/snippets/24/
上記サンプルの下記あたりでBASIC認証用のリクエストヘッダを生成してますね。
Map headers = new HashMap();
headers.put("Authorization", "Basic " + new
String(Base64.encodeBase64(authInfo.getBytes())));
的外れの返答でしたらすみません。
以上。
Reply to #49643

RE: 認証の方法について (2010-03-22 22:57 by hryksbt #49660)

以下日本Androidの会へ質問したスレです。

http://groups.google.co.jp/group/android-group-japan/browse_thread/thread/f0341c5fb221e54

TwitterはBASIC認証を廃止する可能性もある為、Oauthを推奨するとのコメントも頂いてます。

参考URL
http://techcrunch.com/2009/12/09/twitter-le-web-2009/
http://apiwiki.twitter.com/OAuth-FAQ
Reply to #49659

ビルド後にエラーが表示される (2010-04-15 10:14 by hryksbt #50081)

昨日、最新のソース(Rev.166)をビルドしたところ、エラーが出るという事象がありました。
ソースを作成した環境がJDK6であるのに対し、エラーが出ている環境はJDK5であった為でした。
開発環境の統一が必要になると感じ、慌てて以下に環境の詳細を記載しましたので、ご確認の上環境を整えて頂きたいと思います。

<@wiki クライアント実行環境>
http://www21.atwiki.jp/sangokushi-android/pages/38.html

ちょっと話が変わりますが、4月17日のセミナー参加される方ってどれだけいらっしゃるのでしょうか???
Reply to #48892

RE: ビルド後にエラーが表示される (2010-04-15 22:16 by kanpaku #50091)

[メッセージ#50081 へのフォロー]
> ちょっと話が変わりますが、4月17日のセミナー参加される方ってどれだけいらっしゃるのでしょうか???

 一昨日、受講票が届きました。
Reply to #50081

RE: ビルド後にエラーが表示される (2010-04-16 09:58 by tenki_koda #50101)

てんきです。

自分にも受講票が届きましたので、参加するつもりです。
Reply to #50081

RE: ビルド後にエラーが表示される (2010-04-16 16:52 by hryksbt #50106)

セミナー終了後にでも、いい機会ですので、参加された方も参加されてない方も、集まれる方通しでオフ会的なものができたらいいなと思ってますが、特に関東方面の方、ご都合いかがでしょうか???
行けるよー!!と言う方は、こちらにレスして頂くか、IRCの#androidでその旨お知らせ頂ければと思います。

因みに私裕之は、遠征はちょっと厳しいですが…
Reply to #50081

Xperiaセミナー会場ですれちがったー (2010-04-17 02:38 by hryksbt #50118)

4月17日に東京、4月24日に大阪でXperiaセミナーがありますね。
その際には、是非すれちがったーを使って下さい。
そこで、運良くすれちがえば、なかなか叶わなかった三国志メンバ通しの顔合わせが実現できますので、是非親交を深めて頂ければと思います。
混雑の中、少しでもお互いわかるように、出来れば音アリがいいですね!!
ご協力、お願いします。

Reply to #50081

Twitterについて (2010-06-12 01:34 by hryksbt #51255)

ご存知、チャットと認証はTwitterをエンジンにしてますが、開発、本番のいずれの鯖も同じConsumer keyとConsumer secretを使ってます。
で、コールバックURLは開発鯖となっています。
そうすると、Twitterで認証を受けて戻ってくるのは開発も本番も、開発鯖ということになったりしませんか?
ちょっと覚えもあり心配です。
本番のaccessログにはちゃんと三国志からのアクセスがあり大丈夫だとは思うのですが。。
このあたりご存知の方教えてください!!

Reply to #48892

RE: Twitterについて (2010-06-12 11:31 by izumist #51258)

コールバックURLはWEBで利用するときに必要なものなので、
今回のようにandroidアプリから遷移する場合は、実質意味を成しません。
なので、問題ありません。
※Twitterからコールバックされたとき、androidのブラウザから三国志アプリが呼ばれる、と言う遷移になります。
Reply to #51255

RE: Twitterについて (2010-06-12 16:26 by hryksbt #51263)

iSTさん
レスありがとうございます。
無問題ということで安心しました。
ブラウザから呼び出す三国志アプリとの事ですが、この呼び出し先を初期登録画面にする事ができれば、流れがひとつスムースになりますね。
(現状だとオープニングまで戻ってしまうが、Twitter認証の次は初期登録をしなければいけないという順序なので、ゲーム開始フローとしては、オープニングに戻る必要はない。)
nonさんヒントになりますか?
Reply to #51258

OpenStreetMapエディタ (2010-06-29 15:45 by hryksbt #51633)

企業にライセンスされてない地図を作るプロジェクト「OpenStreetMap」ですが、GPSを使用したAndroid用のエディタを見つけました。

http://www.moongift.jp/2010/05/osmeditor4android/#more-20982

何かアイデアのネタになりそうだと思ってポストしてみました。
皆で中国行って地図作りますか!?
Reply to #48892

WebsocketとNoSQL (2010-08-30 23:35 by hryksbt #52694)

WebSocket(http://gihyo.jp/dev/feature/01/websocket)と、NoSQL(http://gihyo.jp/dev/serial/01/cassandra)の動向は、このプロジェクト的にも気になるかもと思ってポストしました。
でも、WebSocketって、Android(ブラウザも含めて)使えるのでしょうか???
NoRDBMSはGoogleのBigTableとか有名ですが、やはりここはオープンソースであるCassandraではないでしょうか??
Reply to #48892

[ Mobile IP ] について質問 (2011-02-09 23:42 by hryksbt #55701)

サーバーとクライアント間でソケット通信を行う場合、クライアントが携帯であるという特性上、移動の度にクライアントのIPアドレスが変わってしまい不都合が生じます。

この対策技術としてMobile IP(http://www.atmarkit.co.jp/fnetwork/tokusyuu/15mobileip/mip01.html)という手法が取られていると言う所までは判明しました。

しかし実際これを利用するには、てっきりキャリア側で対応しているのかと思っていましたが、どうもサービス提供者側で実装する必要がありそうです。

そこで、以上に間違いがあればご指摘いただきたいという点と、実際Linuxでどのように実装するについて、詳しい方のアドバイスを頂きたく思います。

いくつかネットでソースなどを見つけはしましたが、全くアップデートされておらずPJ自体が頓挫しているようなものであったり、そもそもPJページが消滅していたりと、なにやら怪しい雰囲気です。

宜しくお願いします。
Reply to #48892