第7回 ネットワークiアプリのためのサーバサイド活用(2)90Xi専用ゲームiアプリ開発講座(1/4 ページ)

» 2004年11月29日 20時38分 公開
[澤橋辰典・武上将樹,ITmedia]

  • 第8回 90xiアプリのこれから
  • 第7回 ネットワークiアプリのためのサーバサイド活用(2)
  • 第6回 ネットワークiアプリのためのサーバサイド活用(1)
  • 第5回  スクラッチパッドへのデータ保存とダウンロードファイルの処理
  • 第4回 カメラ機能を使ってカードを作ろう
  • 第3回 簡単なゲーム作成の流れを身に付ける
  • 第2回 カードゲームをつくってみよう
  • 第1回 90xiの時代に何を作るか
  •  前回はネットワーク対戦iアプリを実現するために不可欠なサーバ環境の構築から、ダウンロード前のユーザー情報格納の遷移までを解説した(11月22日の記事参照)。今回は、まずアプリとサーバ間のやりとりについて考えていくうえで何が重要となるかについて検討し、それに基づいて、インタフェース部分の設計と、アプリ・サーバそれぞれの実装を行っていく。

    アプリ・サーバ間通信で重要なこと

     確かに現状の900iユーザーは、非常に割安なプランでパケットを使っている。そのため多少のパケット数の増加を厭わないかもしれない。しかし、手頃なレンタルサーバなどでネットワーク対戦アプリを運用したいと考えている開発者にとっては、転送量の増加は非常に深刻な問題だろう。あまりパケット数が増えすぎると、安価なサーバでは負荷に耐えられなくなってしまう可能性がある。そこで、通信量・通信回数は必要最小限に絞らなくてはならない。

     また、携帯電話の場合、ユーザーが突然電波の届きにくい場所に入ってしまうこともよくある。アプリ使用中に電波が届かなくなったユーザーをどう処理するかも念頭に置いておかなければならない。この点に関して今回は、通信の戻り時間に制限を設けることで、電波が届かなくなり、一定時間の間に通信が戻ってこなかったユーザーは負けにすることとした。

    アプリとサーバの間のインタフェース設計

     まず必要なものは、複数のアプリのセッション情報を格納するためのデータベースだ。前回作成したUSERテーブルに加えて、対戦を待っているユーザーの情報を格納するWAITINGテーブルと、対戦中のカードの値や、ターン数などを一時的に格納しておく、DUELテーブルを用意する。

     テーブルの構造をSQL文で表すと以下のようになる。

    CREATE TABLE waiting (
        #待合ID
        waiting_id   INTEGER PRIMARY KEY AUTO_INCREMENT,
        #ユーザーID
      user_id      INTEGER ,
        #対戦ID
        duel_id    INTEGER DEFAULT 0,
        #登録時間
        ins_date     TIMESTAMP,
        INDEX(user_id)
    )
    CREATE TABLE duel (
        #対戦ID
        duel_id   INTEGER,
        #ユーザーID
        user_id   INTEGER,
        #ターン番号
        turn      INTEGER DEFAULT 0,
        #カードNO.
        card      INTEGER DEFAULT -1,
        INDEX(user_id)
    );

     また、アプリとサーバの通信は、以下のように流れていく。

    1. 対戦相手検索

    2. ネットワーク対戦

    3. ゲーム終了処理

     上記の流れを踏まえながら、それぞれに応じて、アプリからどのようなデータが送られ、どのように処理を行い、どのような値を返すのかについて、仕様を解説していく。

           1|2|3|4 次のページへ

    Copyright © ITmedia, Inc. All Rights Reserved.

    アクセストップ10

    2026年02月10日 更新
    1. 「iPhoneの調子が悪いです」の文言、なぜアイホンのFAQに? 実はAppleと深く関係 (2026年02月08日)
    2. 総務省有識者会議が「手のひら返し」な我が国への示唆――日本を国際標準から遅れさせたのは自らの愚策のせい (2026年02月08日)
    3. 「東京アプリ」で1.1万円分をゲット、お得な交換先はどこ? dポイント10%増量+楽天ペイ抽選が狙い目か (2026年02月05日)
    4. KDDI、楽天モバイルとの「ローミング重複エリア」を順次終了 松田社長が言及 (2026年02月06日)
    5. 楽天モバイル、1000万回線突破も残る「通信品質」の課題 5G SAの早期導入とKDDIローミング再延長が焦点に (2026年02月07日)
    6. 東京アプリ、PayPayがポイント交換先に追加される可能性は? 広報に確認した (2026年02月05日)
    7. Googleが台湾のPixel開発拠点を公開 「10 Pro Fold」ヒンジ開発の裏側、“7年サポート”を支える耐久テスト (2026年02月09日)
    8. 東京アプリ、PayPayとWAON POINTをポイント交換先に追加 交換時期は「決まり次第案内」 (2026年02月09日)
    9. 「小型iPhone SEを復活させて」──手放せない理由SNSで話題 どこが“ちょうどいい”と評価されるのか (2025年11月29日)
    10. 【ニトリ】1990円の「スマホに付けるカードケース」 マグネット対応でスタンドとしても使える (2026年02月07日)
    最新トピックスPR

    過去記事カレンダー

    2026年