第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年10月11日 更新
    1. ダイソーで1100円のノイキャンイヤフォン「TWS009」を試す 騒音カットの効果は実感も電池持ちに課題か (2026年10月09日)
    2. 資産3000万円以上が対象 MUFG「エムット」最上位サービスと“年会費無料”アメックス・プラチナの魅力とは (2026年10月08日)
    3. スマホの「実質価格」高騰の恐れ、iPhone 18 Proは2倍高く? 総務省の残価設定ルール厳格化は“誰のため”か (2026年10月10日)
    4. 10月1日から楽天モバイルの「au 4G LTEエリアローミング」が縮小も意外と残っている件 (2026年10月10日)
    5. ダイソーで1100円の「GaN USB充電器」は折り畳みプラグで外出用に持ち歩きやすい 45W出力対応でPCでも使える (2026年10月10日)
    6. 「iPhone 18 Pro Max」を試して分かった進化と課題 想像以上に“使えた”可変絞り搭載カメラ (2026年10月09日)
    7. ドコモが「Google Pixel 10a(256GB)」を11万6930円に値上げ 2年7万円台に (2026年10月09日)
    8. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
    9. 楽天グループ、1億件超の会員情報流出説を否定 「情報漏えいが発生したという事実は確認されておりません」 (2026年10月09日)
    10. 「iPhone Duo」は閉じても開いても迷わず使える Appleが提示するUIの設計思想 (2026年10月10日)
    最新トピックスPR

    過去記事カレンダー