討論區: 公開討論 (Thread #25498)

サーバサイド開発 (2010-02-21 14:50 by hryksbt #48795)

インフラ構築スレッドでサーバ開発の話題が盛んになってきましたので別スレを立てました。

RE: サーバサイド開発 (2010-02-22 17:26 by chulton #48832)

どうも、ちゅるとんです。
本当にざっくりですが、こんなサンプルアプリの作成できますか?

適当なデータベースを作成し、クライアントからの要求を受け取り、データを返す。
項目はid(6)、name(16)とこれぐらいでいいかも?です。
で、インフラ構築で議題にあがっていた複数の方式を作る。
サーバ環境に関しては一番楽なものでよいと思います。

クライアントの方はid入力の箱と通信開始のボタン。nameの表示領域ぐらいです。
そして、これをソース管理にあげて、ちょっとずつでも、増やしていく感じで。

「こんなの簡単だよ!」と思ってる方もいるはずです。が、わからない人もいると
思いますので、サンプルアプリケーションがあったらいいな。と、思いました。

サーバを立てる人、サーバ側、クライアント側と必要になると思います。
私自身はソケット通信とかそんなにやったことないので、詳しい仕様は..。

誰が適任なのかは、ある程度わかっt(ry

それでは!
回覆: #48795

RE: サーバサイド開発 (2010-02-23 00:46 by (del#42048) #48846)

ふたぽんです
(やっぱり名前書かないと、変な感じがする・・・)

ちゅるとんさん
どーもです

Android - サーバサービス - インフラで連携して作成する練習?にもなりそうですね。
回覆: #48832

RE: サーバサイド開発 (2010-02-27 02:25 by hryksbt #48954)

ふたぽんさん、サーバ側の言語どうしましょうか?
決まったら、メンバーリストのスキル項目に追加しようかと考えてます。
まずはスクリプト系にしていずれCなどに、と話してましたがますがPHPとかRubyあたりがムフフですか???
回覆: #48795

RE: サーバサイド開発 (2010-02-27 23:33 by (del#42048) #48980)

ふたぽんです

サーバ側での言語ですけどPHPで行こうかと思ってます。いや、もうほとんど気分はPHPです。

3つ重要な点があると認識してます。

1.A3までに間に合うようにする
2.処理速度を可能な限り速くする
3.移植性を顧慮する

1.みなさんのプロフィールを見ているとPHPでの開発出来る方が多数おられるので開発スピードはこれが一番速いかなと思えます。ただ、CやC++の経験者もおられるのでCでも割と出来るんじゃないの?と最初思ったりもしたのですが、CGIをCで書いている方がどれだけおられるのか分からないので、Cは止めておこうと思います。PHPでの速度に問題がでたらその処理の部分をCで書くといったときにお願いするかもしれません。(ただPHPからシェルで呼び出すとかいった処理だと速度的なうまみがあるのか疑問です・・・)
A3でどのような見せ方をするのか分かりませんが、どんなタイプのゲームになるかによりますけど、PHPでも数十人規模での実行なら耐えられるような気もしてます。あとはハード次第でもあったりしますが・・・これはインフラ側ですね

2.スクリプト言語ですので当然、Cには遠く及びませんが、PHPでも速度向上の面では、PHPアクセラレータによる中間コードでの実行や、環境(インフラで提案させてもらいます)によりますがPHPをC++にコンバートして実行する「HipHop for php」もありますので、速度面での向上でまったく手が出ないとい分けではないです。
あとは作成面で、フレームワークを使用しない、pearライブラリも極力控える、多少のコードの可読性やメンテナンス性に目をつぶって、実行時の読み込みファイル数を減らすなど、少しでも速度向上につながることであれば、開発の中でも考えられることはやっていこうと思います。(フレームワークを使わない、pearライブラリも控えるは移植性にもつながります)

3.今回、オープンソースで開発するにあたって、これらの成果物を多くの人に使ってもらうには、移植性も考えておいたほうがいいのかなと思います。
といいますのも、サクッと自前環境構築して数人の仲間内で使いたいのであればPHPのままでもいいのだと思います。少人数でサーバを自前で建ててではなく、裕之さんが最初の実行環境にといっていたGoogle App Engine上で動かしたいというのであればJAVAへの移植のが必要になるでしょうし、大規模なゲームでの運用を考えたいがPHPでは遅いというのであればCに移植する。
基本的に多言語への移植性はCが優れていると思うのですが、WEB系での移植性を考えると親しみのある?PHPがいいのかなと思えます。

あとA3後からの開発でやはりCだね!となっても開発のスタイルはPHPでサクッと機能動作の実証コードを書いて動きを確認して、Cで本格的に実装するような運用でも十分にPHPは有用と思えます。

どうでしょうか(・vv・)?いらんこと考えすぎかとも思ったりしますけど・・・
回覆: #48954

RE: サーバサイド開発 (2010-02-28 00:01 by hryksbt #48983)

ふたぽんさん、コメント有難うございます。
はじめにGoogleAppEngineですが、話題性を呼べるだろうという点と、お金なしでは解決できないハードウェアリソースがなかった場合で考えていただけですので、みずかみさんとRyuさんがご提供可能になった今は、PHPやC,C++でOKだと思います。
一部JAVAとかPythonで動かしたいところがあれば半ば趣味でGAEを使ってみてもいいかもしれませんが、調子こくと課金されますので要注意ですね。
と言う理由でとりあえずは移植性は考慮しなくてもいいかなと思っています。

実証コードで動きを確認し、本格開発するという2段体制はみずかみさんからもご提案頂いており、その方向で進めようと思っています。
実際、クライアント開発では、Androidのご経験が豊富なまさらっきさんとRyuさん(まだご本人達とは直接お話をしてないですが)に実証実験をしてもらって開発へ投げてもらうと言うような事を考えてます。

みずかみさん>どうでしょう?OKでしたらPHPでGoですね!
回覆: #48980

RE: サーバサイド開発 (2010-02-28 00:31 by kanpaku #48987)

 水上です。
お疲れ様です。

 サーバ実装についての件ですが、例えば以下のような形がある、という前置き
をさせていただいた上で、お話しします。

 サーバ上のモジュールを3つに分けて考えます。

1. コネクター(CNR)

 端末からのアクセスを直接受け付ける。セッション管理もここが行う。
コネクターは、2. のゲームルームマネージャとデータのやりとりを行う。

2. ゲームルームマネージャ(GRM)

 ロビーやゲームルームを管理する。
マッチングサービスが必要な場合、ここがそれを行う。
振り分けられたロビーやゲームルーム先に応じて、任意の 3. ゲームサーバマネ
ージャとデータのやりとりを行う。
ゲームサーバマネージャは複数個存在できる事とし、設定ファイルなどで振り分
けがいつでも変更できるようになっている事(*1)。

3. ゲームサーバマネージャ(GSM)

 ゲームサーバプログラムとくっついて、ゲーム - GRM 間のデータのやりとりを
行う。

*1: ここが実際の負荷分散処理を行います。

 ゲームルームやマッチングがいらない、という事なら GRM はいらないかも知れ
ません。

 3つが別々のサーバで動作する必要はありません。
最初は一台で、先々スケールアウトしていく、というのも手です。
# ゲームサーバが複数になる場合、最終的に DB の部分でシリアライズし、
# 相互のデータに矛盾が出ないようにします。

 で、サーバ監視ですが、プログラムが落ちる事も考慮し、クライアントの bot
(ログイン+何かのコマンド送るくらいでいいので)を作って cron で時々立ち
上げ、落ちてたら管理者にメールを送るようにした方がいいでしょうね。
回覆: #48795

RE: サーバサイド開発 (2010-02-28 15:08 by (del#42048) #49006)

ふたぽんです

ゲームのロビーとかルームとか「ハテ(・vv・)?なんだろうと」いった状態です

ゲームロビーというのは、待ち合わせ場所と考えていいですか?
その待ち合わせ場所も複数箇所存在することができる
ロケット広場に集合(東京なら渋谷ハチ公前?)とか・・・名古屋はどこ?だろう

ゲームルームというのは、集合したロビーからみんなで遊びにいく場所(カラオケとかゲーセンとか)でいいでしょうか
そしてロビーはルームを管理するといったイメージになりますでしょうか

ゲームサーバマネージャ(GSM)の役割のイメージがつかめないのですが、上記の内容から考えて、ゲームサーバプログラムとはゲーム本体のことで、このゲームサーバプログラムはゲームルームごとにゲームの種類が違ったり、同じゲームでもルームに入れる人数制限とか、何らかの制約(18禁とか)があり、それぞれ違いがある

このためGSMはゲームサーバプログラムの種類ごとに存在し、GRMのロビーやルームに対しては、ゲームサーバプログラムの情報を渡し、ゲームサーバプログラムに対しては、ユーザの情報等を渡す役割をする

と考えたのですが合ってますでしょうか(・vv・)? 質問ばかりでスミマセン


回覆: #48987

RE: サーバサイド開発 (2010-02-28 15:15 by chulton #49007)

ちゅるとんです。

http://games.yahoo.co.jp/games/login.html?page=go
こんな感じの話だと思いますが、実装するのか?などそれ以前の問題があったりします。

この手の最大人数が決まってるオンラインゲームの場合はまずルームありますね。
逆に人数制限がない場合は、それがサーバーの役割になってると思います。
回覆: #49006

RE: サーバサイド開発 (2010-02-28 15:53 by (del#42048) #49011)

ふたぽんです

ちゅるとんさん、どうもです。
[アンケート]ゲームの基幹部分について[~2/21]にも投稿しましたけど、ゲームの全体像が分からないと、やっぱり実装が必要かとかも不明ですよね。

なんとなくですが、初期の仕様を決める段階では、週1でも時間を決めてちゃんと話する場がないとムリがあるのじゃないかなと思ったりしてます。
回覆: #49007

RE: サーバサイド開発 (2010-02-28 16:33 by hryksbt #49015)

確かに、こういった分散プロジェクトの成功の鍵はコミュニケーションだと思っています。
ちょっと忙しくてコメントが遅れたりして申し訳ないです。
少なくとも私が出来るだけコミュニケーションできる為の対策として、eeepcを常に鞄に潜ませ、通勤・帰宅中にもレスできる体制を来週中に構築します。
具体的には、Docomoのパケ・ホーダイダブルの128k通信を利用します。
そうすると、5,985円+500円(プロバイダ代)以上かからないという裏技があることを知りました。(常識?)
必要に応じてe-mobileにアップグレードします。

それから、ロビーについてですが、今GoogleMapが使用出来ないかもしれないという事態なので、野戦なしの攻城戦のみをまずは作る事になると思います。
その場合はその戦争に参加する元の拠点(城)がロビーになります。
なお、野戦は今後実装していきたいと思います。

逆に、GoogleMapを使用出来るなら、移動も野戦もGoogleMap上で行おうと考えていますので、その場合はロビーはなしです。
攻城戦は今回の仕様からは割愛し今後の実装としたいと思います。

基礎部分の大幅の使用に関わると思いますが、これに関しては、クライアント開発リーダーとして三顧の礼を以って迎えたたっきさんや、Android実証実験チームのまさらっきさん、Ryuさんと少し相談してから決めたいと思いますので、明日一杯くらいまで回答をお待ちいただけますか?すみません。。。
回覆: #49011

RE: サーバサイド開発 (2010-02-28 17:37 by (del#42048) #49020)

ふたぽんです

アワワワ~
裕之さんスミマセンです。

普段の開発での感覚と違うので「う~ん」と思ったりしただけですので、OSSでの開発はこんなものってことでしたら別段、今のままでもOKですよ。ゲームシステム構築の中で考える事や試してみることは他にもありますし <(_ _)>
回覆: #49015

RE: サーバサイド開発 (2010-02-28 17:51 by hryksbt #49021)

2人で謝ってますね^^;日本人のいいところじゃないですか!^^
自分はeeepc持ってるくせにMobile端末がなかったので、外で使う理由が欲しかったという事もあったりします(笑)
また、自分のレスポンスはこのプロジェクトのスピードに関わると思ってますので必須アイテムだと信じ込んでます、はい!

普段のお仕事での開発と違い、やいのやいの言われる事もなく全員が楽しむことが最大の目的ですから、違和感はそれはどうしてもありますよね。
回覆: #49020

RE: サーバサイド開発 (2010-02-28 18:01 by taka848 #49022)

GoogleMapの件は今晩もう少し調査してみます
SDKを入れた状態ではエラーになりエミュレータいません
環境変えてエミュレータまでいっても実行時にエラーになります。
回覆: #49015

RE: サーバサイド開発 (2010-02-28 18:12 by hryksbt #49023)

さっきAndroid1.5と、ちょっと古めの書籍立ち読みからの情報ですが、GoogleMapAPIの使用には、AndroidのSDKではなくGoogleから提供されているAndroidAPIを使う必要があるとの事でしたが、つまりこれはX10では無理って事ですね???
であれば、GoogleMapは使用しない方針に切り替えますがどうなんでしょうか?なにぶん無知なもので済みませんorz
回覆: #49022

RE: サーバサイド開発 (2010-02-28 19:57 by chulton #49030)

ちゅるとんです。

リアルタイムな雑談場所&放置しててもログ残る。=IRCなイメージなので、チャンネルだけは
作っときました。
マシン自体は24時間動かしてるので、多分います。

サーバー名: irc.friend-chat.jp (Friend Chat)
チャンネル名: #android です。

IRCについては、http://limechat.net/ これを使えば、あっという間に導入出来ます。


回覆: #49015

RE: サーバサイド開発 (2010-02-28 17:20 by hryksbt #49018)

水上さん

コメント有難うございます。
ゲームルームを使うか使わないかは、GoogleMapを使用出来るか出来ないかで決めようと思っています。
今のところ、使用出来ないという可能性が高そうです。
その場合は、戦争に参加する際に、戦争におけるどの武将の戦闘に参戦するかでルームを分けようと思います。
追ってサーバがこけた際の対応方法や人、運用方法を検討しなければいけませんね。
いずれはお金の話も検討しなければならないと思っています。
回覆: #48987

RE: サーバサイド開発 (2010-03-01 01:01 by taka848 #49039)

普段MacOSXを使用しているのですが
Windowsの環境で同様にGoogleMapのテストをしてみました
Google APIで作成しXperiaのエミュレータで実行 ×
XperiaSDKで作成はエラーが出てエミュレータまで行けません
XperiaSDK改(maps.jarを追加)でエミュレータで実行 ×
GoogleMapは現在不能です

今は別の事の集中して、時間ができたら再度調査します。
回覆: #49018

RE: サーバサイド開発 (2010-03-01 08:33 by nonno #49043)

裕之さん、たっきさん

nonです。昨日のお2人のGoogleMapのやりとりを拝見し、私も、eclipsにX10をいれて(Google APIsを使って)試してみたのですが、エミュレーター起動がうまく、いきませんでした。。。

(実は、私も、たっきさんと同じソニー・エリクソンのセミナーの13時の会に参加しました(どなたか、わかればご挨拶できたのですが、すいません笑)X10の実機でのストリートビューなどはタッチパネルで結構、高機能でしたね)
回覆: #49039

RE: サーバサイド開発 (2010-03-01 09:18 by chulton #49045)

前半部分についてのいままでのまとめ
・X10用のSDKは自分で落とさないとダメ
 http://developer.sonyericsson.com/cws/devworld/downloads?cc=gb&lc=enX10
 こっから「android」選んで上から3番目
 SDKを入れてるフォルダの「add-on」に解凍したものをコピー
・起動&動作ともに非常に重い
・X10用のアプリが入っているわけではない
・エミュレータはeclipseからの直接起動で「NullPointerException」が発生
・Android AVD Managerから起動し、プログラム実行
・ソニエリのSDK単体ではGoogleAPIは使用不可
・SDK+GoogleAPIのjarで作成→失敗(たっきさん)
回覆: #49043

RE: サーバサイド開発 (2010-03-01 15:00 by masarakki #49053)

上で報告されているGoogleMapAPIが使えないというのは

http://developer.android.com/intl/ja/resources/tutorials/views/hello-mapview.html
このアクティビティが使えないということで合ってますか?
回覆: #49045

RE: サーバサイド開発 (2010-03-01 16:17 by chulton #49054)

ちゅるとんです。

あぁ、このページみて理解できました...。

Because the Maps library is not a part of the standard Android library,
you must declare it in the Android Manifest. Open the AndroidManifest.xml file
and add the following as a child of the <application> element:

これっすね...。多分、解決するでしょう。
サーバー開発と全く関係ない話題+androidの初歩的なミス。
いろんな所でjavaと違ってるんですね。
回覆: #49053

RE: サーバサイド開発 (2010-03-01 16:36 by hryksbt #49055)

思わずサーバサイド開発スレで盛り上がってしまいましたが、試してみて問題がなければ、後はそういった使用の仕方をGoogleがOKしている事が前提になります。
ライセンス条項があれば、使用許諾の部分について目を通しておかなければなりませんね。
いずれも問題なければ、GoogleMapでGoしましょう!
回覆: #49054

RE: サーバサイド開発 (2010-03-01 17:23 by chulton #49056)

ちゅるとんです。

ひとまず、これはGoogle Map Viewなど、外部ライブラリをandroidで使う場合は
「uses-library」を自分で追加してください。って話です。

なぜこれを使うのか?そこを明確にしないと、ダメだと思います。
@wikiにあがってるgifファイルでも十分ですし、これで出てくるのは現在の中国
および、全世界が出てきます。
Overlayを使えば、android.graphics.Canvasを重ねることが出来ますが、地図の
縮尺ごとに用意しなければならないと思います。
Web版MapAPIのポリゴンクラスあれば、なんとかなりそうですけどね。

このライブラリで出来ることは地図の表示、縮尺変更、移動、ユーザが用意した
描画を重ね合わせる。これぐらいです。
このうち、自分たちに必要そうなのは地図の表示ぐらいじゃないでしょうか?
その地図が欲しい地図なら良いとは思いますが、それも違ってます。
マッチしているライブラリはどんどん使うのが好ましいですが、これはちょっと
使わないほうがいいと思います。
回覆: #49055

RE: サーバサイド開発 (2010-03-01 17:51 by taka848 #49057)


仕事中ですが
会社のPCの私的利用は禁止されているのでちと打ちにくいですが
今回指摘されていることはちゃんとやっていますを追加しないとエラーになるので
今晩時間が取れたらプロジェクトをあっぷします。
回覆: #49056

RE: サーバサイド開発 (2010-03-01 23:56 by taka848 #49074)

まず第一にX10のSDKにmaps.jarが入っていないのです
なので、今回話をされているuses-libraryを追加してもエラーは消えません。
そこでmaps.jarを追加するとエラーは表示されなくなるのでが、今度はエミュレータにpkgを追加できないのです。

SDKをGoogle APIs 1.6でプロジェクトを作成してpkgを作成します。
これで通常のエミュレータで実行出来ることを確認、その後pkgをX10のエミュレータにインストールして実行しようとするとエラーが発生しています。

こんな感じで現状ではGoogleMapがX10のエミュレータで表示出来ない状態となっています。
サンプルのコードをあげたいのですがさて方法がわからないw
回覆: #49056

RE: サーバサイド開発 (2010-03-02 00:11 by hryksbt #49077)

つまり、動かせるのはSDK1.6までで、X10では無理ということですね。
了解です。
では、GoogleMap案は一旦しまって、ゲームのMマップは、SVNの以下のパスにあげてあるファイルを使いましょうか。

https://svn.sourceforge.jp/svnroot/sangokushi/trunk/images/map_gun_white_l.gif

戦闘用のマップは別途用意が必要ですね。とりあえずは有名な戦場をいくつか用意することは当然ですが、戦場のデータをサーバ側、クライアント側でどのように実装するかを検討していきましょう。
回覆: #49074

RE: サーバサイド開発 (2010-03-02 00:21 by taka848 #49079)

X10のエミュレータでテストが出来ないというのが問題になりそうです
Google APIs 1.6で開発して後で、X10で動かないでは本末転倒なので今は少しGoogleMAPは放置して開発を進めるのがいいのかなと思っている感じです。
多分、今のエミュレータもαとかβ版の位置付けなのかなとも思います。
本当は開発についての質問先が分かれば聞いたり出来るのですけどね
回覆: #49077

RE: サーバサイド開発 (2010-03-02 09:21 by hryksbt #49087)

聞けるとしたらX10エミュレータを落とすソニエリのデベロッパーサイトか、Androidの会とかになりますね。
今回はGoogleMapは無しで行きましょう。
回覆: #49079

RE: サーバサイド開発 (2010-03-02 09:25 by hryksbt #49088)

@wikiのゲームシステムは、GoogleMap無し路線に修正します。
出来るだけ今晩中に実施します。
回覆: #49087

RE: サーバサイド開発 (2010-03-02 10:15 by chulton #49091)

ちゅるとんです。

すいません。はやとちり&大間違いしてました。
調べてみましたが、X10のエミュレータって微妙ですね。
標準以外のテストは実機がないと無理なんですね。

3/13に名古屋でもタッチ&トライやるみたいなので、そこらを聞いてみよう。

ソースはsourceforgeに上げるもよし、zipで固めて@wikiでもいいかも?
回覆: #49074

RE: サーバサイド開発 (2010-03-03 00:03 by (del#42048) #49118)

ふたぽんです

一応、こういうのを試してみました。
X10のADVとgoogle APIのADVを起動して比較してみると、system/frameworkの配下にcom.google.android.maps.jarがありませんでしたので、
X10のandroidイメージの中にcom.google.android.maps.jarを入れてみました。

X10のADV起動後
コンソールから
>adb shell
# cd system/framework
# mount
ここでsystemにマウントしているブロックが表示されるはずですのでそのブロックを覚えておきます。
たぶんというよりX10の環境なら、systemはmtdblock0にマウントされていると思います。

# mount -o rw,remount /dev/block/mtdblock0 /system
# exit

C:\Program Files\android-sdk-windows\add-ons\google_apis-4-r01\libsにあるmaps.jarをcom.google.android.maps.jarに変名

>adb push "C:\Program Files\android-sdk-windows\add-ons\google_apis-4-r01\libs\com.google.android.maps.jar" /system/framework/

>adb shell

system/frameworkにcom.google.android.maps.jarがあるか確認します。


mapDemoのプロジェクトをgoogle APIで作成して起動しているX10のADVに接続すると・・・


androidに怒られました(ToT)

INSTALL_FAILED_MISSING_SHARED_LIBRARYってなことなのでおそらくcom.google.android.maps.jarを入れてファイルが存在するようにしても
<uses-library android:name="com.google.android.maps" />
を読んだ時にcom.google.android.mapsを使用する許可がないのでダメーって言われてるんでしょね_(_ _;)
回覆: #49074

RE: サーバサイド開発 (2010-03-03 00:49 by taka848 #49121)

私もそこまで確認しています
ここから先はソニー・エリクソンに対応してもらわないとどうにもならなのです
なのでここは華麗にスルーして先に進んでいます。
回覆: #49118

RE: サーバサイド開発 (2010-03-01 23:48 by hryksbt #49072)

さすが、一瞬で斬りましたね!
有難うございます。
回覆: #49053

RE: サーバサイド開発 (2010-03-01 23:56 by hryksbt #49073)

nonさんも検証有難うございました。
自分にもう少し開発の知識があればいいのですが、このように皆さんに任せきりです…
がんばらなきゃいけませんね!
回覆: #49043

RE: サーバサイド開発 (2010-03-02 08:01 by nonno #49086)

裕之さん

ありがとうございました。
開発知識が乏しく、あまりできることがなくて本当にすいません。

いつも、みなさんのレスは拝見させていただいており、自分にできることがあれば、積極的に参加させていただければと思っています。

どうぞ、宜しくお願いいたします。

回覆: #49073

RE: サーバサイド開発 (2010-03-01 18:19 by hryksbt #49058)

@wikiのゲームシステムでゲームの概要をご確認頂けるとおり、それをそのまま作った状態では何の変哲もない一昔前のゲームとなってしまいそうです。
かといって壮大で複雑なゲームをつくりには時間もなく、結成したばかりのチームには時期尚早な気がしていますので、アピール要素を1つは持たせたいと考えているのが1つです。
GoogleMapを使用しないのであれば、例えば検討に上がったGPS利用など、1つは何か面白そうと思わせられる機能は欲しいところです。

それから、地図開発が不要になり、座標のみの計算でMap機能を使えれば開発効率がいいかも知れない、という理由があります。
これを使用しない場合、gifの中国全土の画像以外にも、戦闘用のMapもいくつか必要です。
GoogleMapの拡大倍率は、非戦闘時と戦闘時の2パターン固定でOKです。
地名、国道名は表示されたままでも問題ないと思っています。
プレーヤーが移動可能な座標を制限する事により、中国以外の関係のない国には行けないような作りにすることは難しそうでしょうか?

絶対にGoogleMapでなければならないと考えている訳ではありませんので、今は効率重視という見方でアドバイスをお願いします。
回覆: #48795

RE: サーバサイド開発 (2010-03-02 00:33 by (del#42048) #49080)

ふたぽんです

サーバ側の開発ですが、PHPでの開発としますね。
CentOS5.4は未だに5.1どまりでこのバージョンは使いたくはありませんので・・・

PHPのバージョンを5.2か5.3に決めるたいと思います。
どちらのバージョンにしてもCentOSにはソースからコンパイルして入れるので、導入コストは変わらないです
(野良リポジトリから、とてくればというのはなしです)

5.3なら6の機能を先取りしているので6にバージョンアップしやすい
5.2ならすでに5.2.9まできてますので、ほぼ枯れた状態で安定っぽい

5.2.9のほうがいいかなと思うのですが、どうでしょうか(・vv・)?
回覆: #48795

RE: サーバサイド開発 (2010-03-02 13:24 by hryksbt #49104)

ふたぽんさん、PHPですね。了解です。
@wikiのメンバーリストにPHPの項目を追加しました。
http://www21.atwiki.jp/sangokushi-android/pages/14.html

バージョンは私は詳しくないのでお任せします。
私個人の趣味ですが、悩んだ場合は新しいものを選ぶ事が多いです。
回覆: #49080

RE: サーバサイド開発 (2010-03-03 00:10 by (del#42048) #49119)

ふたぽんです

私も自分用のやつは、迷ったら最新のをいれますデス。

とりあえず5.2.9にしますね
5.3系が5.3.6ぐらいになったら入れ替えるとかでいいと思います。
回覆: #49104

サーバサイド開発メンバー急募!!! (2010-03-10 00:13 by hryksbt #49322)

現状サーバー開発メンバーが不足している状況です。。
日本Andoroidの開を通じてお声が消させていただいていますので当然と言えば当然かもしれませんが。。。

そこで、サーバーサイドやってもいいよという方を募集します!
一旦PHPで行く事にに決まりましたが、とりあえずは忘れて下さい。
Andoroid開発でなくてもOKという方は是非、この書き込みにレスを頂けますでしょうか?
また、メンバーリストの役割欄に記載のない方に、私から直接メールを出させて頂くかもしれませんが、立候補に勝るものはありませんので、是非是非お待ちしてます!!!
回覆: #48795

RE: サーバサイド開発メンバー急募!!! (2010-03-10 20:40 by (del#42001) #49341)

muraです。

メンバーが不足されているということで
サーバサイド開発メンバーに立候補してみます。
(PHPの経験がないので、あまり力になれないかもしれませんが。。。)

ウィキの方も更新しました。
回覆: #49322

RE: サーバサイド開発メンバー急募!!! (2010-03-10 21:32 by hryksbt #49342)

muraさん、有難うございます!!!
よろしくお願いします^^/
PHP未経験との事ですが、muraさんがサーバサイド開発をされるならどの言語を選択されますか?
また、得意な言語についてもお聞かせ頂けますか?
一旦はPHPに決めましたが、再考の余地はあるかなとも考えています。

回覆: #49341

RE: サーバサイド開発メンバー急募!!! (2010-03-10 23:26 by (del#42001) #49354)

裕之さん

残念ながら、私は普段Web系のアプリ開発に携わっていないため
サーバーサイドをどの言語でというのは、ちょっと答えられません。

得意な言語というのもVBとかになってしまいます。
CとかJavaは基本的なことができるレベルです。

申し訳ないです。

勉強できたらという気持ちで参加していますので
役割については特にこだわりはありませんので
人手不足なところがあれば言っていただければと思います。
(力になれるかどうか分かりませんが。。。)

サーバーサイド開発リーダー(代行?)の方をアサインして
その方とサーバーサイドの言語を再考、というのはいかがでしょうか。

回覆: #49342

RE: サーバサイド開発メンバー急募!!! (2010-03-11 08:18 by hryksbt #49361)

muraさん

了解しました。
順番的には設計が先になりますし、言語の事はちょっと先送りにしましょうか。
今上げられているゲーム構成の中でサーバサイドの部分のどちらを開発してみたいと言ったご希望を上げて見て頂くのもOKですので、護ご検討下さい。
回覆: #49354

RE: サーバサイド開発メンバー急募!!! (2010-03-12 01:30 by taka848 #49383)

色々考えて国際化を考えてもいいかなと思ってきています
そこでサーバサイドでチャットの自動翻訳を組み込んでみても良いのではないかと思ってます。
基本はgoogle翻訳を上手く使えるのではないかなと
誰かサーバサイドでチャレンジしてみませんか?
クライアント側もローカライズを考えないといけないですが
回覆: #49361

RE: サーバサイド開発メンバー急募!!! (2010-03-12 10:11 by hryksbt #49389)

ローカライズを後で実装できる用に予め作っておくといいですね。
やるとしたらまずは中国語、英語対応でしょうか。
その後はアジア各国語対応、と進めて行きたいですね。
回覆: #49383

RE: サーバサイド開発メンバー急募!!! (2010-03-12 17:34 by izumist #49397)

たっきさんのご提案の自動翻訳がちょうど手持ちの業務にちかかったので、ちょっと作ってみました。
ついでに
http://sourceforge.jp/forum/message.php?msg_id=49382
にある
>端末側からhttpを投げて、それをサーバが処理して端末に返すと言った内容のプログラムを書いて頂く事は可能でしょうか?
と言う部分も作ってみました。

androidから日本語をPOSTとして、サーバーでgoogle翻訳に投げて、翻訳結果をandroidで表示

と言う流れです。

サーバー側は手持ちの業務の関係でRailsになってます。
(サーバーサイド言語が固まってないのでとりあえずいいですよね)

androidのソースはsubversionにアップしようと思いますが、サーバーサイドはどうしたらいいでしょう?
現在は手元のマシンで動いていますが、動的IPなのと、実務でも使ってるマシンなので、ずっと動かしていると言うわけにもいかず・・・。
とりあえずrailsのソースでもよければアップしますが、いかがでしょうか。

回覆: #49383

RE: サーバサイド開発メンバー急募!!! (2010-03-12 17:40 by izumist #49398)

あっ
たっきさんは「チャット」と仰ってますが、チャットにはなってません(^^;
たんなるエコーサーバー
回覆: #49397

RE: サーバサイド開発メンバー急募!!! (2010-03-12 21:42 by taka848 #49408)

iSTさん
素早い開発有難う御座います。

今回の翻訳の機能はサーバがチャットを配信先に送る前に相手の言語にあわせて翻訳して送る形になります。

ちなみにここでチャットについて私が考えている内容を話ししたいと思います。
基本的な考え方はFF11に近いです

まずチャットにはモードが有ります
1)Shout
これは、戦場にいるプレーヤー全員にメッセージを送ります
2)Tell
個人に対してメッセージを送ります
3)書簡
これは指定した城や本国にいる全員にメッセージを送ります
こちらについてはメッセージの配信まで、距離に応じて遅延があるように考えています。

また戦闘中にキーボードを操作してメッセージを送るのは大変だと思うので定型の文章を遅れる機能を用意したいと思っています。


回覆: #49398

RE: サーバサイド開発メンバー急募!!! (2010-03-12 21:59 by taka848 #49412)

ぬ、ひとつ忘れてました

4)Party
戦場にいる味方にメッセージを送ります

これを忘れるとは・・・引退するしかないか・・・orz
回覆: #49408

RE: サーバサイド開発メンバー急募!!! (2010-03-12 22:33 by izumist #49416)

たっきさん

先ほどコミットしたサーバーRoR、Androidソースチャットではないんですが、
想定しているチャット機能は、少なくとも1)、2)に関してはsocket通信、と言う理解でいいでしょうか?

回覆: #49408

RE: サーバサイド開発メンバー急募!!! (2010-03-14 22:29 by hryksbt #49450)

すみません。

ちょっとこの部分に関し、整理させてください。
http通信のやり取り+翻訳機能をiSTさんがRailsで開発され、コードもコミットして頂きました。
そして、それが実行できるサーバー環境をおこたねこさんが準備されてます。
また、まさらっきさんにもhttp通信の部品作成を依頼中です。
同時に、水上さんに作成いただいた、システムのアーキテクチャ資料の“gs概要”と、現在たっきさんが修正中の“三国志ラフ”という資料がございます。

これらをうまく活用しなるべく効率的に進めたいと思いますが、どのようにすべきか話し合いませんか?
今手を動かそうとされているまさらっきさんから以下のような質問も頂いています。

-----------------------------------
今ちょこっと触っているところですが
この感じからすると
・認証のやりとり
・セッション情報のやりとり
なんかが必要になってきそうですか?

単純にhttpで飛ばして結果を(文字列で)受け取るのなら簡単なクラスが使えそうですが、(URLConnectionとか)
複雑なことをやろうとすると細かいクラス使っていかないといけなそうです (DefaultHttpClientとか)

サーバがどんな感じになるのかイメージがないと選べないです
やりとりするデータの想定も決めないと
まさかhtmlを受け取ってそのままレンダリング?とか
-----------------------------------

たっきさんが認証部分をどなたか~と仰ってましたので、machupichucaさんにもお願いしてます。(お忙しい様でまだお返事いただいて無いですが、、)

今はなるべく重複しないで作業して頂いた方が良いと思いますのでご協力をお願いします。
回覆: #49416

RE: サーバサイド開発メンバー急募!!! (2010-03-14 22:46 by taka848 #49451)

そうです、
クライアントとサーバ間の通信のイメージはメッセンジャーの用な感じになると思います。
クライアントからデータを送る場合もあるし、
逆にサーバからデータがくる場合もあります。
データのフォーマットはXMLかJSON形式で行うのが良いのかなと思ったりしてます。
柔軟なフォーマットだから
一度すりあわせをしないとですね
回覆: #49450

RE: サーバサイド開発メンバー急募!!! (2010-03-14 23:27 by hryksbt #49454)

たっきさんに今ご修正いただいている“三国志ラフ”ですが、こちらを元に画面イメージについて可能な限り全員で打ち合わせをしたいと思います。
顔を合わせる事もなかなか難しいと思いますので、ちゅるとんさんにご用意頂いたIRCの#androidのチャンネル内で、皆で時間を合わせて会議形式で各自“三国志ラフ”の資料を見ながら検討をしていきたいと思います。
また、同形式にて、システムアーキテクチャについてもすりあわせを行う打ち合わせを催したいと思います。
回覆: #49451

RE: サーバサイド開発メンバー急募!!! (2010-03-15 01:46 by masarakki #49459)

双方向で通信するなら完璧にsocket叩く方向になりそうですね
回覆: #49451

RE: サーバサイド開発メンバー急募!!! (2010-03-15 10:30 by kanpaku #49464)

 水上です。
おはようございます。

[メッセージ#49451 へのフォロー]
> クライアントからデータを送る場合もあるし、
> 逆にサーバからデータがくる場合もあります。

 双方向の通信は難度高いですよ?
それが通信仕様として必要なゲーム仕様であればそれはそれですけど、
途中で無線区間もありますし、通信は必ずしもスムーズに行かない事も
計算に入れないと。

 ちなみに先日書いた "gs概要" は、http を使い、クライアントが
随時サーバに問い合わせる形で情報更新を行う想定で設計しています。
回覆: #49451

RE: サーバサイド開発メンバー急募!!! (2010-03-15 22:19 by hryksbt #49490)

私はこの分野でのノウハウは0ですのでどちらがいい言った判断は詳しい方にお任せしたいのですが、例えば時間的制約上や、無線通信の品質上厳しいといった、どうしてもダメな理由が無い限り、趣味であったり、一度試してみたかったといった理由での双方向通信の採用も有りと言う基準でいいと思っています。
それこそが、こういったプロジェクトの醍醐味じゃないかと思うのです。
必要不要での判断も大事ですが、面白そう、やってみたいというモチベーションの方が重要だと思っています。
回覆: #49464

RE: サーバサイド開発メンバー急募!!! (2010-03-15 22:46 by taka848 #49492)

ゲームとしてはオンライン仕様なのでリアルタイム系に入るかと思っています。
クライアントから逐次HTTPでアクセスするとした場合、マルチ送信、マルチ応答にする必要が出てくると思います。
例えば
クライアントから
位置変更、戦闘コマンド、チャット送信
等の情報を一度に送信する場合があります。
クライアントからは問い合わせとして情報要求を送ることもあります。(この場合は)

サーバから
位置変更、戦闘情報、各種情報、チャットデータ等の情報が一度に送られてきます

と、資料をいてたら思ったので提案をしました。
それと、一番気にしているのはバッテリーの、保ち時間です。
送信量は少ないですが受信量はかなりになると思っています、とすると一気に減ってしまう可能性も
回覆: #49490

サンプルコード (2010-03-18 23:14 by izumist #49582)

色々とご検討されている中で、勝手で申し訳ありませんが、いくつかソースをアップしちゃいました。
(サンプルと呼ぶにはお恥ずかしいですが・・・)


先日アップしたサーバー側に
・Twitterから「android」で検索したつぶやきを取得
・上記「つぶやき」をgoogle翻訳
・JSONで返却
の処理を追加しました。

あわせて、上記JSONを30秒毎に自動取得して表示するクライアントも追加しました。
クライアントはバッテリー状態と取得byte(stringをbyte変換しgetBytes()した値)の表示もつけました。
リスト行は
上段:元つぶやき
下段:翻訳後つぶやき
としていますが、en→ja固定で翻訳してますので、元が他言語の場合はうまく翻訳できてません。


注意
※サーバー側
 ・Twitterに頻繁にアクセスすると(150回/h ?だったかな)怒られるので、一応DBに保存するようにしてます。
 ・Twitterアカウント情報はenviroment.rbに適宜記載
 ・gemでtwitter4rをインストール
 ・ソースは前回の「/ trunk / server_rails」を更新

※クライアント側
 ・サーバーアドレスをTwitterClient.javaに記載
 ・ソースは新しく、/trunk/TranslationTwitterに。


何かの足しになれば幸いです。
回覆: #49492

RE: サンプルコード (2010-03-19 21:19 by hryksbt #49602)

ゲームとTwitterが連動すると、
・プレイしていない時でも、自分宛のメッセージをTwitterで見れる
・逆にゲーム中に、ふつうのTwitterが見れる
みたいな利用法がありますね。
他にもいろいろありそうですね。
で、更に翻訳もついてる。

折角なのでA3に出してみてはいかがですか?^o^ < iSTさん
回覆: #49582

RE: サーバサイド開発メンバー急募!!! (2010-03-12 19:09 by okotaneko #49401)

iSTさん

おこたねこといいます。
サーバの方の開発をしようと思ってます。
今後ともよろしくお願いします。

作られたアプリで、サーバ側に投げられるPOST部分は、どんな感じに
なりますか?
それと、裕之さんから、インフラ構築のお手伝いも仰せつかりまして、使われているRailsのバージョンを、教えていただけますでしょうか

よろしくお願いします。

回覆: #49397

RE: サーバサイド開発メンバー急募!!! (2010-03-12 19:32 by izumist #49404)

おこたねこさん

今は至極単純でというか、やっつけで
パラメータとして
local:元言語のコード(jaとかenとか)
str:変換前の文字列
をpostで投げてるだけです。

jaの場合はenに変換(固定)し、ja以外の場合はjaに変換して返してます。
返却は変換後の文字列のみ。

クライアント側は、TelephonyManagerからgetSimCountryIso()をとって元言語としてます。
これはユーザー設定で指定したほうがいいのでしょうけど。

railsは2.2.2です。

サーバー側もandroid側もやっつけなので、お恥ずかしいかぎりですが、色々突っ込み下さい。
回覆: #49401

RE: サーバサイド開発メンバー急募!!! (2010-03-17 09:14 by hryksbt #49526)

おこたねこさん、
昨日のIRCにてiSTさんのコードが実行されるところを見せて頂きありがとうございました。
今は開発機のサービスを止めてますが、上げっ放しにしておいて皆さんに見て頂けるようにしませんか?
Androidの方も作って頂いてますし、少しでも遊べる環境があった方が更に活気付くと思います。
回覆: #49401

RE: サーバサイド開発メンバー急募!!! (2010-03-17 18:30 by okotaneko #49545)

おこたねこです。

ログのローテションをまだ入れてないので、その設定をしたら起動するようにします。

回覆: #49526

RE: サーバサイド開発メンバー急募!!! (2010-03-12 21:41 by hryksbt #49407)

iSTさん

メチャメチャ早いですね^^;
ありがとうございます!

翻訳の部分とクラ-サバ間の受け渡しの部分は部品化されてますね?
今、後者の部分のパフォーマンス評価をまさらっきさんにお願いしてまして、iSTさんが作って頂いたものを活用して頂くといいですね!
ソースはSubversionでも、Gitでもどちらでも構いません。
Railsでも全く問題ありませんので是非コミットして下さい!
Androidのソースと言っても、何もコミットしてないと寂しいと言う理由で私がちょっと練習に使ったものを置いてるだけですから、、、
まさらっきさんにも活用して頂きたいのでGitの方がいいかもしれません。

それからサーバですが、今週末にでも開発機を構築したいと思ってます。
実行環境はPHP以外にも、評価用にRubyやJAVA、各種コンパイラなんかを入れておくといいかも知れないですね。
回覆: #49397

RE: サーバサイド開発メンバー急募!!! (2010-03-12 19:18 by okotaneko #49402)

muraさん

初めまして
おこたねこです。

私もサーバ開発やります。
今後ともよろしくお願いします。
回覆: #49354

RE: サーバサイド開発メンバー急募!!! (2010-03-12 10:40 by hryksbt #49390)

sujangさん、
サーバーサイド開発をお願いできないでしょうか?
メンバーリストや、過去にコメント頂いています内容からsujangさんにお願いできないかと思いました。
もちろん、クライアントサイドの方を希望されるのであればそれもOKです。
ご検討下さい^^/
回覆: #49322

RE: サーバサイド開発メンバー急募!!! (2010-03-12 18:18 by sujang #49399)

色々経験してみたいので、全然構いません!
ただ、あまり時間を多く取れないので迷惑をかけることになるかもしれませんが、精一杯やりますのでお願いします。

言語はPHPは経験がありますが、上述の通り色々経験してみたいので何でもやりたいです。
回覆: #49390

RE: サーバサイド開発メンバー急募!!! (2010-03-12 19:21 by okotaneko #49403)

sujangさん

初めまして
おこたねこといいます。
私もサーバ開発やります。

今後ともよろしくお願いします。
回覆: #49399

RE: サーバサイド開発メンバー急募!!! (2010-03-12 21:47 by hryksbt #49409)

sujangさん
ありがとうございます!
サーバー開発も豪華なメンバが揃いましたね!
今後ともよろしくお願いします^^/
回覆: #49399

RE: サーバサイド開発 (2010-03-12 18:52 by okotaneko #49400)

おこたねこです。

私もサーバの開発やります。
(たいしたことは出来ませんが・・・)

よろしくお願いします。

スレッドの流れから見て、サーバ側の開発はphpとRubyの2本だての開発になりますか?
回覆: #48795

RE: サーバサイド開発 (2010-03-12 21:52 by hryksbt #49410)

おこたねこさん、

一旦はPHPに決まりましたが、メンバーが少なかったため他の言語であればメンバーも揃う可能性があると考え一度再考してもいいかなと思いましたが、今はこの通り豪華なメンバーが揃ってます。
PHPで行きましょう。
開発機には評価用に色々な実行環境はあってもいいかなと思っています。
回覆: #49400

RE: サーバサイド開発 (2010-03-12 23:25 by okotaneko #49418)

おこたねこです

まずはPHPとRubyですね
実行環境を複数用意するのでしたら、lighttpdのVirtualhostの設定が必要ですね
と書きつつlighttpdは良くわかっていないのですけど・・・

この辺りかな
http://redmine.lighttpd.net/wiki/lighttpd/Docs:Configuration#conditional-configuration
回覆: #49410

なんちゃって翻訳サイト (2010-03-12 22:25 by izumist #49414)

Google翻訳を利用した翻訳サイトのソースをsubversionにコミットしました。
/trunk/server_rails/trans

rails2.2.2です。
#gem install ruby-json
#gem install httpclient
が必要

RAILS_ROOT/app/helpers/google_translation.rb
が翻訳処理です。

Stringクラスにメソッド追加してますので、

"こんにちは".to_en
で「Hello」が帰ってきます。

その他はほぼ何にもしていません・・・。
(Viewすらも作ってないんです、すいません)

参考になれば幸いです。
回覆: #48795

RE: なんちゃって翻訳サイト (2010-03-12 23:30 by okotaneko #49419)

おこたねこです。

iSTさんありがとうございます。
サーバ側で実行出来るようにしますね。

あとPHPのコードを書くときの参考にさせてもらいます。(^-^;
回覆: #49414

RE: サーバサイド開発 (2010-03-12 23:11 by hy-gogg #49417)


juliaです。
自分もサーバサイド開発大丈夫です!
PHPはなんとかなる。Rubyはやってみたい!といったレベルですが。。。
今更でごめんなさい。。。
ようやく時間が取れそうになってきたので、みなさんに
追いつけるようにがんばります。

一応Wikiを修正しておきます。
今更鯖側いらないよ!ということでしたら教えて下さい>裕之さん

回覆: #48795

RE: サーバサイド開発 (2010-03-13 10:57 by hryksbt #49423)

juliaさん、こんにちは。
メンバー表をみて、juliaさんにもお声掛けしようと一瞬思ったのですが、担当が蔵開、となってましたので踏みとどまってました。
どちらが余っているという事も無いですし、多ければ多いほどいいものが出来ると信じてます。
ご希望される方で構いませんよ^^
iSTさんやまさらっきさんのように、蔵鯖の橋渡しとなる部分の開発も重要です。
一度鯖開でお願いして、その後ご希望があれば他の部分もという事にしましょうか^^/
やりたい事をやって頂ければそれでOKです!
よろしくお願いします!!!
回覆: #49417

RE: サーバサイド開発 (2010-03-15 12:03 by okotaneko #49472)

juliaさん
はじめまして

おこたねこです。

よろしくお願いします。(・vv・)/
回覆: #49417

Rubyの採用について (2010-03-22 16:16 by hryksbt #49648)

サーバーサイド開発の皆さん、

ご存知のとおり、iSTさんが積極的にRubyでTwitterや翻訳機能などの実証コードをコミットされてます。
現在は、おこたねこさんと並行で認証部分をご調査頂いている状況なのですが、この際ですので、Rubyも正式採用しても良いかと思いますがいかがでしょうか。
ご意見お願いします。
回覆: #48795

IRC #sabakai オープン (2010-03-29 11:36 by hryksbt #49785)

IRCに鯖開チーム用ルームを作りました。

サーバー名は#androidと同じ:irc.friend-chat.jp (Friend Chat)
チャンネル名:#sabakai

鯖開チーム内のみで完結するような議論は、こちらで進めて頂ければと思います。
今、蔵開チームリーダーのたっきさんが、鯖開リーダー代理を務めつつ、DBの設計をされてます。
今鯖開では、DB開発やAI設計を行っていただける方を募集してます!
回覆: #48795

Cassandra (2010-10-25 00:12 by hryksbt #53584)

最近話題になりつつあるNoSQLのDBですが、Open三国志でも導入を検討してみたいと思います。

http://gihyo.jp/dev/serial/01/cassandra/

Open三国志の鯖は、今はみずかみさんの環境に置かせて頂いていますが、いずれは自前のノートPC複数台でクラスタ&分散構成を実現したいと思っていて、それを支えるコア技術になると思っています。

TwitterやFacebookもCassandraの採用を決定した様で、これから注目が集まる可能性大です。
この技術をし模索しながら実践する鯖開発にご興味のある方、このスレに返信ください!!
回覆: #48795