第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年05月12日 更新
    1. 「Pixel 10/10a/9a」どれを買う? 4キャリア6ブランドの価格を比較 2年24円や一括4.5万円も (2026年05月11日)
    2. KDDIローミングを切られた楽天モバイルエリアは大丈夫なのか――大型連休のオススメスポット「イオンモール津田沼サウス」に行ってきた (2026年05月10日)
    3. ソフトバンク、売上高7兆円突破で過去最高更新 “ホッピング抑制”の構造改革と「AIインフラ」への大転換 (2026年05月11日)
    4. なぜドコモは「値上げ」に踏み切れないのか? 背景にある通信品質、5G設備投資の遅れが足かせに (2026年05月09日)
    5. Suica、JRE POINTのキャンペーンまとめ【5月9日最新版】 ポイント3倍や2万ポイント還元あり (2026年05月09日)
    6. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
    7. なぜスマホの身分証写真アップロードで画像エラー? iPhoneの“HEIC形式”やサイズ制限で困らないためには (2026年05月11日)
    8. イオンモバイルの2025年通信速度を公表 平日のドコモ回線が苦戦、下り1Mbps付近の時間帯が増加 (2026年05月11日)
    9. iPhone 14/15がiPhone SE(第3世代)に次いで人気 Back Marketのリファービッシュスマホランキング(4月) (2026年05月11日)
    10. Google検索がサーバーエラーで不安定に 「ググれない……」との声相次ぐ  (2026年05月12日)
    最新トピックスPR

    過去記事カレンダー

    2026年