2016-11-28 12 views
1

まずは自明のプログラマー/デベロッパーです。ご迷惑をおかけいたします。このトピックは、プログラミングよりも設計上の問題です。モバイルゲーム用のnode.jsとsocket.ioでシンプルなバックエンドを構築する

私はa.t.mのAndroidゲームをプレイストアでライブしています。私はサードパーティのバックエンドとネットワーキングソリューションを使用しています。今私は自分のシンプルなバックエンドとネットワーキングソリューションを構築したいと思っています。どうして?なぜなら:

  • の自由な新しい機能を追加する機能は、(サーバー側)
  • は、バックエンドの開発について(ないP2Pネットワーキングについて学ぶ
  • を学ぶ
  • クライアントからサーバ側へgamelogicを移動しますサーバー側の開発や技術

の経験を取得するので、何のパンチなし)

  • あなたの情報については、私のゲームはスペードのいくつかの並べ替えです。

    今私の質問:

    私は私のバックエンドシステムを作成するためのNode.js、socket.ioとのMongoDBを使用することを考えています。

    これらは私が何をしたいです:

    ネットワーキング:

    • ちょうど.emit( 'ねえ'
    • io.to(ソケット#ID)をサーバからクライアントに送信し、その逆
    • クライアントへ)(サーバー)
    • socket.Emit( "JoinRoom")サーバーへの(クライアント)

    バックエンド機能:

    • ユーザー認証
    • は、彼らが一緒に
    • など再生することができますので、フレンドリストの登録
    • スコアを毎回更新プレーヤ情報(名前、一意のID、スコア、日付 作成、など)
    • を登録します。私gamelogicは、各部屋のために(ATM私のgamelogicはハッキングや不正行為に非常に脆弱で、ば完全にクライアント側で)何をするか

    • 部屋を作成すると、他の人が参加できるように、10秒間待ちます10秒がベット
    • を選択
    • AIを起動 プロセス
    • ランダム化52デッキのカードを処理する関数を呼び出して、終わった
    • AI選ぶ切り札それはゲームが人々ので部屋を開ける終了するとデータベース
    • 更新のスコアを獲得した
    • が決定次のターンを持って決定する彼のターン
    • AI演奏

    等ままと ゲーム

  • に参加できること、それは、nでこれを作成することが可能ですode.js、socket.io、mongoDB?もしそうなら、node.js、socket.io、mongoDBを使ってそれを行うのは賢明なことですか、それとも別の技術で行うのが良いですか?

    また、ネットワーキング部分にはnode.jsとsocket.ioを使用し、ゲームロジックには別のテクノロジー(例:asp.net)を使用する必要がありますか?私はnode.jsがCPUの重いタスクではうまくいかないと読んでおり、gamelogicの部分はCPUが重いと思います。

    私のシステムがサポートするプレイヤーの数を知りたい人がいますか?まあ私は毎日20 CCU持っているが、私のゲームは3週間の店であり、私は最初に強いバックエンドシステムが必要なので、私は多くを推進していない。私は私のバックエンドが10000 CCUを処理できるようにしたい、おそらく私はそれに到達することはありませんが、それは私の目標です。

    私は自分が何を望んでいるかについてはっきりしていたと思いますが、皆さんが私を助けてくれることを願っています。私がやりたいことが可能で効率的であれば、私は一週間見ました。

  • +0

    非常に広い質問ですが、長い説明にもかかわらず、おそらく詳細が不十分です。ゲームロジックのためにサーバーがCPUに縛られる心配はありますが、その複雑さについてはほとんど詳しく説明していません。また、ほとんどの作業が「ターン」でのみ行われるため、同時ユーザーはおそらくここでは適切な手段ではありません。より良い方法は、期間ごとのターン数です。 – jcaron

    +0

    @jcaronほとんどの重い作業はゲームの始めにあり、AIはゲームをプレイしています。 - 開始時に52枚のカードからなる配列がシャッフルされます(文字列の配列) - AIのトランプゲームでは、最悪の場合4回、AIが1回(最大13枚)デッキをループします。 開始から始まる1ゲームセッション: - 最大4ターン最大10、最も多くのカードを獲得するプレイヤーの間で賭ける - 賭けに当選したプレーヤーはトランプを選ぶので、ここで1回転します。 - その後、ゲームが開始され、各プレイヤーはデッキが終了するまでプレイしなければなりません。 ゲームセッションあたり合計で最大63ターンです。 –

    答えて

    0

    NodeJSは、このタイプのものに適しています。比較的短いバーストで並行IOの数が多い。あなたは、あなたがリストアップしたテクノロジーを使ってスケーラブルなサーバーサイドを作ることは間違いありません。

    ゲームロジックは複雑になるかもしれませんが、カードゲームに実装する必要があるルールやチェックについてCPUスパイクが気付くことはありません。各段階で、5〜10のルールをチェックし、52枚のカードのアレイを2回繰り返すこともできます(2回!)。問題ない。 CPUに縛られたタスクについては、「1000回の反復」(画像処理?)または「数学的計算」(フィボナッチを過剰使用する)と考えてください。

    チャット機能(ゲームルーム通信用)、組み込みタスク(10秒間のタイムアウトとAIターン)、および起動するための素敵なプロジェクト構造を持つノードサーバーとして、actionherojsを指摘します新しいNodeJSアプリをゼロから作成する

    楽しくお楽しみください!

    +0

    あなたの答えとそれが可能であることを確認するために多くの粘土をverryしていただきありがとうございます。今私はあなたの答えを私の解決策と見て、それを受け入れる前に数時間待って、他の人がそうでないと証明するかもしれない。 –

    関連する問題