(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159666
(43)【公開日】2023-11-01
(54)【発明の名称】プログラム、情報処理システム、および情報処理方法
(51)【国際特許分類】
H04L 65/1069 20220101AFI20231025BHJP
A63F 13/71 20140101ALI20231025BHJP
A63F 13/53 20140101ALI20231025BHJP
H04L 67/141 20220101ALI20231025BHJP
H04L 65/1108 20220101ALI20231025BHJP
【FI】
H04L65/1069
A63F13/71
A63F13/53
H04L67/141
H04L65/1108
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022069512
(22)【出願日】2022-04-20
(11)【特許番号】
(45)【特許公報発行日】2023-04-25
(71)【出願人】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100135666
【弁理士】
【氏名又は名称】原 弘晃
(74)【代理人】
【識別番号】100131680
【弁理士】
【氏名又は名称】竹内 健一
(72)【発明者】
【氏名】▲高▼野 祐輝
(72)【発明者】
【氏名】中田 健介
(72)【発明者】
【氏名】元橋 智紀
(72)【発明者】
【氏名】森 信虎
(72)【発明者】
【氏名】菅野 幸典
(72)【発明者】
【氏名】佐藤 有一郎
(57)【要約】
【課題】通信の不具合を解消する際の利便性を向上させたプログラム、情報処理システム、およびプログラムを提供する。
【解決手段】プレーヤ端末とサーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、プレーヤ端末においてエラー通知を行いつつ設定変更入力およびリトライ入力を受付可能とする入力インターフェースである特殊ダイアログボックスを表示可能とし、設定変更入力が行われたことに基づいて、サーバーとの通信に関連付けられた通信設定情報を変更し、リトライ入力が行われたことに基づいて、通信設定情報に従ってサーバーと通信接続を確立するための処理を行う。
【選択図】
図27
【特許請求の範囲】
【請求項1】
プレーヤ端末とサーバーとの間で通信を行うゲームのためのプログラムであって、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部として、
コンピュータを機能させるプログラム。
【請求項2】
請求項1において、
前記通信制御部が、
プレーヤアカウントのログインに関する通信においては第1の通信プロトコルを使用し、プレーヤ同士が対戦する対戦ゲームの進行に関する所定の通信においては第2の通信プロトコルを使用するプログラム。
【請求項3】
請求項2において、
前記入力受付部が、
前記第2の通信プロトコルを使用した前記サーバーとの通信において、特定のエラーを検知した場合に前記入力インターフェースを提供可能とし、当該特定のエラー以外のエラーを検知した場合には、前記通信設定情報を変更できない他の入力インターフェースを提供するプログラム。
【請求項4】
プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理システムであって、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部と、
を含む情報処理システム。
【請求項5】
プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理方法であって、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付ステップと、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更ステップと、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御ステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレーヤ端末とサーバーとの間で通信を行うゲームのためのプログラム、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来から、通信回線で接続された端末を利用してプレーヤ同士が対戦を行う対戦機能を実装したゲームを実行するプログラムが知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような通信回線を通じてプレーヤ同士の対戦を行わせるゲームでは、サーバーを経由した通信が必要となることが多く、サーバーとの通信の不具合が発生することによってゲーム進行が滞る場合がある。
【0005】
特に端末とサーバーとの通信の不具合が端末側の通信環境に関係するものである場合、通信技術の知識に乏しいプレーヤには不具合の解消を行うことが容易ではなく、またサーバーの管理者側で個別対応することは過大な負担が発生する。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的は、通信の不具合を解消する際の利便性を向上させたプログラム、情報処理システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、プレーヤ端末とサーバーとの間で通信を行うゲームのためのプログラムであって、前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部として、コンピュータを機能させるプログラムに関するものである。
【0008】
(2)本発明のプログラムでは、前記通信制御部が、プレーヤアカウントのログインに関する通信においては第1の通信プロトコルを使用し、プレーヤ同士が対戦する対戦ゲームの進行に関する所定の通信においては第2の通信プロトコルを使用してもよい。
【0009】
(3)本発明のプログラムでは、前記入力受付部が、前記第2の通信プロトコルを使用した前記サーバーとの通信において、特定のエラーを検知した場合に前記入力インターフェースを提供可能とし、当該特定のエラー以外のエラーを検知した場合には、前記通信設定情報を変更できない他の入力インターフェースを提供してもよい。
【0010】
(4)本発明は、プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理システムであって、前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部と、を含む情報処理システムに関するものである。
【0011】
(5)本発明は、プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理方法であって、前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付ステップと、前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更ステップと、前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御ステップと、を含む情報処理方法に関するものである。
【0012】
上記のプログラム、情報処理システム、および情報処理方法では、プレーヤ端末とサーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供し、この入力インターフェースを介して通信設定情報を変更してサーバーとの再接続を試行することができるようにしたので、サーバーとの通信の不具合の解消に関する利便性を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1】情報処理システムの全体構成を示す図である。
【
図2】情報処理システムにおけるサーバーの機能に関連するブロック図である。
【
図3】情報処理システムにおけるプレーヤ端末の機能に関連するブロック図である。
【
図4】情報処理システムにおいて実行される処理の一例を示すフローチャートである。
【
図5】プレーヤ端末で表示される対戦モード選択画面の一例を示す図である。
【
図6】プレーヤ端末で表示される開催/参加選択画面の一例を示す図である。
【
図7】プレーヤ端末で表示される大会情報設定画面の一例を示す図である。
【
図8】大会情報について設定可能な項目の一例を示す図である。
【
図9】プレーヤ端末で表示される大会登録完了画面の一例を示す図である。
【
図10】プレーヤ端末で表示される大会トップ画面の一例を示す図である。
【
図11】プレーヤ端末で表示される対戦モード選択画面の一例を示す図である。
【
図12】プレーヤ端末で表示される対戦モード選択画面の一例を示す図である。
【
図13】情報処理システムにおいて実行される処理の一例を示すフローチャートである。
【
図14】プレーヤ端末で表示される大会検索画面の一例を示す図である。
【
図15】プレーヤ端末で表示される大会検索画面の一例を示す図である。
【
図16】プレーヤ端末で表示される大会参加確認画面の一例を示す図である。
【
図17】プレーヤ端末で表示される検索エラー画面の一例を示す図である。
【
図18】プレーヤ端末で表示されるデッキ登録画面の一例を示す図である。
【
図19】プレーヤ端末で表示される登録確認ダイアログボックスの一例を示す図である。
【
図20】情報処理システムにおいて実行される処理の一例を示すフローチャートである。
【
図21】プレーヤ端末で表示される大会トップ画面の一例を示す図である。
【
図22】プレーヤ端末で表示される大会トップ画面の一例を示す図である。
【
図23】プレーヤ端末で表示される対戦中ゲーム画面の一例を示す図である。
【
図24】情報処理システムにおいて実行される処理の一例を示すフローチャートである。
【
図25】プレーヤ端末で表示される大会トップ画面の一例を示す図である。
【
図26】プレーヤ端末で表示される観戦画面の一例を示す図である。
【
図27】プレーヤ端末において実行される処理の一例を示すフローチャートである。
【
図28】通信エラーの発生時にプレーヤ端末で表示される通常ダイアログボックスの一例を示す図である。
【
図29】通信エラーの発生時にプレーヤ端末で表示される特殊ダイアログボックスの一例を示す図である。
【
図30】通信エラーの発生時にプレーヤ端末で表示される特殊ダイアログボックスの一例を示す図である。
【
図31】プレーヤ端末で表示される設定メニューダイアログボックスの一例を示す図である。
【発明を実施するための形態】
【0014】
以下では、本発明の実施形態について説明する。なお以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0015】
1.情報処理システムの構成
図1は、本実施形態の情報処理システム10の全体構成を示す図である。
図1に示すように情報処理システム10では、サーバー20と複数のプレーヤ端末40が、インターネット、携帯電話網、LAN、WANなどのネットワーク30により接続されており、いわゆるクライアント・サーバー方式の通信システムが構成されている。そして複数のプレーヤ端末40のそれぞれは、ネットワーク30を介してサーバー20と互いに通信を行って種々の情報を送受信する。また複数のプレーヤ端末40のそれぞれは、ネットワーク30およびサーバー20を介して他のプレーヤ端末40と互いに通信を行って種々の情報を送受信する。
【0016】
サーバー20は、CPU等のプロセッサーからなる制御部21と、ROMやRAM等の主記憶装置、およびHDDやSSD等の補助記憶装置からなる記憶部22と、通信モジュールや通信インターフェースからなる通信部23とを含む。サーバー20は、制御部21が記憶部22に記憶されているプログラムに従って各種の処理を実行する。またサーバー20は、通信部23によってプレーヤ端末40から情報を受信し、制御部21が実行した処理の結果に関する情報等をプレーヤ端末40に送信する。
【0017】
プレーヤ端末40は、スマートフォン、タブレット、パーソナルコンピューター、携帯ゲーム機、店舗や家庭に設置される据え置きゲーム機等である。プレーヤ端末40は、CPU等のプロセッサーからなる制御部41と、ROMやRAM等の主記憶装置、およびフラッシュメモリ、HDD、SDD等の補助記憶装置からなる記憶部42と、タッチパネルやキーボード、マイク等からなる操作・入力部43と、液晶ディスプレイや有機ELディスプレイ等からなる表示部44と、通信モジュールや通信インターフェースからなる通信部45とを含む。プレーヤ端末40も、記憶部42に記憶されているプログラムに従って各種の処理を実行する。またプレーヤ端末40は、通信部45によってサーバー20からの情報を受信し、サーバー40や他のプレーヤ端末40に情報を送信する。
【0018】
図2は、サーバー20の主要な機能を示す機能ブロック図である。本実施形態では、プレーヤのアカウントを管理するアカウント管理機能、任意のプレーヤを主催者として複数のプレーヤが登録された対戦グループを作成し、対戦グループに所属するプレーヤ同士でカードを模したゲーム媒体を使用して対戦を行い、対戦結果に基づくランキングを競い合う「ユーザー大会」を開催する対戦機能を有しており、これらの機能がサーバー20を主体として実現される場合を説明する。ただし、先に述べた機能が、プレーヤ端末40を主体として実現されてもよいし、サーバー20とプレーヤ端末40とにおいて分担されて実現されてもよい。そしてサーバー20では、
図2に示すように、サーバーデータ記憶部50と、サーバーゲーム実行部60とが協働して上記機能が実現される。
【0019】
サーバーデータ記憶部50は、サーバーゲーム実行部60が各種の処理を行うためのデータを記憶するものであり、主として記憶部22により実現される。またサーバーデータ記憶部50は、プレーヤ管理データベース51と、対戦情報データベース52とを含む。
【0020】
プレーヤ管理データベース51には、プレーヤのアカウントに関する各種の情報が記憶される。例えば、プレーヤIDに紐付けてプレーヤ名、ゲーム進行状況、所持ゲーム媒体などがアカウント情報として記憶される。
【0021】
対戦情報データベース52には、対戦グループに関するデータが記憶される。例えば、「ユーザー大会」を識別するための大会ID、主催者のプレーヤID、参加者のプレーヤID、対戦ルール(試合方式、フォーマット)、対戦グループの有効期間(「ユーザー大会」の開始時間や開催期間)、参加可能なプレーヤの上限数、観戦権限の設定内容、主催者および参加者のコメント履歴、プレーヤ同士の対戦の履歴等が記憶される。
【0022】
サーバーゲーム実行部60は、プレーヤIDによってプレーヤのアカウントを管理する処理、プレーヤ端末40からの要求に応じて処理を実行し、処理結果をプレーヤ端末40に返す処理などを行い、主として制御部21および通信部23により実現される。またサーバーゲーム実行部60は、プレーヤのアカウントへのログインを許可する処理、対戦グループを作成するための処理、対戦グループに参加希望のプレーヤを登録する処理、対戦グループにおける観戦権限を設定するための処理、プレーヤ同士の対戦を行わせる処理、プレーヤ同士の対戦を観戦させる処理も行い、ログイン機能提供部61と、対戦機能提供部62とを含む。
【0023】
ログイン機能提供部61は、プレーヤのアカウントを認証してログインを許可する処理を行う。本実施形態では、プレーヤ端末40でのアプリケーション起動に伴い、プレーヤ端末40からサーバー20に対してプレーヤIDを含むログイン要求が送信される。ログイン機能提供部61は、受信したログイン要求に基づいて、プレーヤIDに該当するアカウントを特定する。ログイン機能提供部61は、プレーヤIDに基づいて特定されたアカウントが有効であることに基づいてアカウントを認証してログイン要求の送信元のプレーヤ端末40によるログインを許可する。
【0024】
対戦機能提供部62は、主催者となるプレーヤのプレーヤ端末40からの要求に応答して複数のプレーヤが参加可能な対戦グループを作成する。本実施形態の情報処理システム10では、複数のプレーヤが参加する対戦グループを作成して、対戦グループに所属するプレーヤ同士で対戦を行い競い合う「ユーザー大会」をプレーヤ主催で開催することができる。「ユーザー大会」の主催者となるプレーヤは、自身のプレーヤ端末40において「ユーザー大会」に関する設定内容の入力を行うことができる。そして主催者となるプレーヤのプレーヤ端末40において「ユーザー大会」に関する設定内容の入力を完了して「ユーザー大会」を開催することについての確認入力が行われると、入力した設定内容を含む大会登録要求がプレーヤ端末40からサーバー20に送信される。対戦機能提供部62は、受信した大会登録要求に基づいて、対戦グループを識別するための情報である大会IDを付与し、この大会IDに紐づけて対戦情報データベース52に新たな大会レコードを作成して、作成された大会レコードに主催者となるプレーヤのプレーヤIDを主催者IDとして登録することによって対戦グループを作成する。
【0025】
なお本実施形態では、いずれかの「ユーザー大会」の主催者となったプレーヤは、自ら主催する「ユーザー大会」の開催期間が終了するまで、他の「ユーザー大会」を開催することはできず、また他の「ユーザー大会」に参加者として参加することもできない。ただし、「ユーザー大会」の主催者となったプレーヤが、他の「ユーザー大会」を開催することができるようにしてもよい。また「ユーザー大会」の主催者となったプレーヤが、他の「ユーザー大会」に参加者として参加することができるようにしてもよい。
【0026】
対戦機能提供部62は、主催者以外のプレーヤのプレーヤ端末40からの参加登録要求に応答して、そのプレーヤを対戦グループに登録する。本実施形態では、大会IDに基づく「ユーザー大会」の検索が可能となっており、各プレーヤのプレーヤ端末40において大会IDの検索入力を行うと、対戦機能提供部62は、プレーヤ端末40からの大会ID検索要求に応答して、大会ID検索要求に含まれる大会IDに該当する「ユーザー大会」が存在する場合には、その「ユーザー大会」の大会情報を、大会検索要求を行ったプレーヤ端末40に送信し、大会ID検索要求に含まれる大会IDに該当する「ユーザー大会」が存在しない場合には、その旨をプレーヤ端末40に送信する。そして「ユーザー大会」への参加を希望するプレーヤは、検索した大会IDに該当する「ユーザー大会」が存在していた場合に、自身のプレーヤ端末40において「ユーザー大会」への参加についての確認入力を行うことができる。そしてプレーヤ端末40において「ユーザー大会」への参加についての確認入力が行われると、プレーヤ端末40からサーバー20に大会IDおよび自らのプレーヤIDを含む参加登録要求が送信される。
【0027】
対戦機能提供部62は、受信した参加登録要求に基づいて、大会IDに対応する大会レコードに参加登録要求に含まれるプレーヤIDを格納し、「ユーザー大会」の参加者からなる対戦グループに新たなプレーヤを登録する。なお、本実施形態では、主催者が設定した上限数を超える数のプレーヤの参加を受け付けることができない。このため、対戦グループへの参加を希望するプレーヤが大会IDの検索を行った結果、大会IDに対応する「ユーザー大会」の対戦グループに参加しているプレーヤの人数が上限数に達している場合には、その対戦グループへの参加についての確認入力ができない。
【0028】
なお本実施形態では、いずれかの「ユーザー大会」の参加者となったプレーヤは、参加している「ユーザー大会」の開催期間が終了するまで、他の「ユーザー大会」を開催することはできず、また他の「ユーザー大会」に参加者として参加することもできない。ただし、「ユーザー大会」の参加者となったプレーヤが、他の「ユーザー大会」を開催することができるようにしてもよい。また「ユーザー大会」の参加者となったプレーヤが、他の「ユーザー大会」に参加者として参加することができるようにしてもよい。
【0029】
対戦機能提供部62は、主催者となるプレーヤのプレーヤ端末40からの大会登録要求に基づいて、「ユーザー大会」に関する設定内容を大会情報データベース51に作成された大会レコードに格納する。本実施形態では、対戦機能提供部62が、主催者となったプレーヤのプレーヤ端末40からの大会登録要求に応答して「ユーザー大会」に関する観戦権限を設定する。本実施形態では、観戦権限の設定として、「主催者のみ」、「主催者および全参加者」、「観戦なし」のいずれかを選択することができる。
【0030】
「主催者のみ」は、対戦グループに所属するプレーヤ同士の対戦を、主催者以外の当該対戦を行っていないプレーヤのプレーヤ端末40では観戦できないが、主催者となったプレーヤのプレーヤ端末40を通じて観戦可能とする観戦権限である。
【0031】
「主催者および全参加者」は、対戦グループに所属するプレーヤ同士の対戦を、主催者となったプレーヤのプレーヤ端末40のみならず主催者以外の当該対戦を行っていないプレーヤのプレーヤ端末40からも観戦可能とする観戦権限である。
【0032】
「観戦なし」は、いずれのプレーヤにも観戦権限を与えない設定であり、対戦グループに所属するプレーヤ同士の対戦を、いずれのプレーヤも観戦することができない。
【0033】
なお、「ユーザー大会」を登録する時点では、観戦権限の設定は行わずに、「ユーザー大会」を登録した後に、主催者となったプレーヤのプレーヤ端末40において観戦権限の設定を別途行うことができる入力インターフェースを設けることができる。
【0034】
また「ユーザー大会」に関する設定内容を登録した後に、主催者となったプレーヤのプレーヤ端末40のユーザーインターフェースを利用して観戦権限の設定を変更できるようにしてもよい。なお観戦権限の設定を変更可能とする場合には、「ユーザー大会」の登録がされてから開始時間までの間において観戦権限の設定を変更可能とし、「ユーザー大会」の開催期間中は観戦権限の設定を変更不可能とすることができる。
【0035】
対戦機能提供部62は、対戦グループに所属するプレーヤ同士の対戦を行わせる処理を行う。本実施形態では、対戦グループに所属するプレーヤのプレーヤ端末40から対戦ID作成要求が送信されると、対戦機能提供部62が対戦IDを発行して、対戦IDに紐付く対戦ステータス情報を「受付中」に設定する。対戦IDに紐付く対戦ステータス情報が「受付中」である場合、対戦相手のプレーヤを募集中であることが対戦グループに所属するプレーヤのプレーヤ端末40において確認することができる。対戦グループに所属する他のプレーヤのプレーヤ端末40から対戦申込要求が送信されると、対戦機能提供部62は、対戦を募集したプレーヤと対戦を申し込んだプレーヤとをマッチングして、マッチングされたプレーヤ同士での対戦を行わせる。プレーヤ同士の対戦は、互いのプレーヤ端末40における入力情報をサーバー20経由で送受信し、各自のプレーヤ端末40で互いのプレーヤの入力情報に基づくゲーム演算を実行し、ゲーム演算の結果に基づく対戦画面を各自のプレーヤ端末40の表示部44に表示することで行われる。なおプレーヤ同士の対戦に関するプレーヤのマッチングについては、対戦募集に対して申込を行う形式に限らず、対戦グループ内のプレーヤをランダムに引き合わせてマッチングする形式であってもよい。
【0036】
なお対戦機能の提供の他の態様としては、サーバー20にゲーム演算を行わせて、演算結果を対戦者のプレーヤ端末40に送信し、プレーヤ端末40では受信した演算結果に基づいて対戦画面を生成し、対戦画面を表示部44に表示する態様であってもよい。
【0037】
また対戦機能の提供の他の態様としては、サーバー20にゲーム演算および対戦画面に係る画像の生成を行わせ、対戦画面に係る画像のデータを対戦者のプレーヤ端末40に送信し、プレーヤ端末40では受信した画像のデータに基づいて対戦画面を表示部44に表示する態様であってもよい。
【0038】
対戦機能提供部62は、対戦グループの観戦権限の設定内容に従ってプレーヤ同士の対戦を観戦させるための処理を行う。本実施形態では、観戦権限を有するプレーヤのプレーヤ端末40において、観戦申込の入力が可能となっている。そしてプレーヤ同士の対戦の観戦を希望するプレーヤが観戦申込の入力を行うと、プレーヤ端末40からサーバー20に対して観戦申込要求が送信される。
【0039】
対戦機能提供部62は、観戦権限を有するプレーヤのプレーヤ端末40から受信した観戦申込要求に応答して、そのプレーヤを観戦者として登録し、観戦する対象の対戦を行っている各プレーヤの入力情報等のゲーム演算に必要な情報を、観戦者として登録されたプレーヤのプレーヤ端末40に送信することにより観戦機能を提供する。プレーヤ端末40では、制御部41が、サーバー20から受信した各プレーヤの入力情報等に基づくゲーム演算を行って、観戦画面に係る画像を演算結果に基づいて生成し、プレーヤ端末40の表示部44に観戦画面を表示することでプレーヤ同士の対戦の模様を観戦させることができる。
【0040】
本実施形態では、プレーヤ同士の対戦において、対戦中のプレーヤのプレーヤ端末40では、対戦相手のプレーヤが使用する一部のゲーム媒体の情報について非開示となっており、観戦権限を有するプレーヤのプレーヤ端末40では、対戦中のプレーヤ同士において非開示となっているゲーム媒体の情報を開示した状態でプレーヤ同士の対戦を観戦することができる。
【0041】
対戦機能提供部62は、カードゲームによる対戦機能を提供するに当たって、一方のプレーヤのプレーヤ端末40から取得した手札カードおよび場札カードのカード情報のうち、場札カードについては他方のプレーヤのプレーヤ端末40に正規のカード情報を送信するが、手札カードについては手札カードであることを特定するために共通化されたダミーのカード情報を送信し、カード情報を受信したプレーヤ端末40では、記憶部42に記憶されているカード情報データベースを参照し、正規のカード情報を場札カードとして扱い、ダミーのカード情報を手札カードとして扱ってゲーム演算を行う。このため対戦中のプレーヤ同士は、各々のプレーヤ端末40において対戦相手の手札カードのカード情報を保有しないため、対戦中ゲーム画面において非開示となっている手札カードの種類を把握することはできない。このようにすれば、仮にプレーヤ端末40に対して非正規の手法を利用して解析を行っても、プレーヤ端末40の記憶部42に対戦相手の手札カードのカード情報が存在しないため、そのような不正行為を防止することができる。
【0042】
一方、対戦機能提供部62が、カードゲームにおける対戦を観戦させる際には、対戦中のプレーヤ双方の手札カードおよび場札カードのカード情報を観戦者のプレーヤ端末40に送信する。観戦者は、対戦中のプレーヤ同士においては非開示となっていた手札カードを全て開示した状態でプレーヤ同士の対戦を観戦する。本実施形態では、対戦中の各プレーヤの状況を適格に把握できる環境で、観戦者にプレーヤ同士の対戦を観戦させることができる。
【0043】
なお観戦機能の提供の他の態様としては、現在進行中の対戦を観戦させるものに限らず、過去の対戦履歴から対戦の様子を観戦画面として再現して表示部44に表示する態様であってもよい。
【0044】
図3は、プレーヤ端末40の主要な機能を示す機能ブロック図である。本実施形態では、プレーヤからの各種入力を受け付ける入力インターフェースを提供する機能、サーバーとの通信に関連付けられた通信設定情報を変更する機能、通信設定情報に従ってサーバーと通信接続を確立するための処理を行う機能などを有しており、これらの機能がプレーヤ端末40を主体として実現される場合を説明する。ただし、先に述べた機能が、サーバー20とプレーヤ端末40とにおいて分担されて実現されてもよい。そしてプレーヤ端末40では、
図3に示すように、端末データ記憶部70と、端末ゲーム実行部80とが協働して上記機能が実現される。
【0045】
端末データ記憶部70は、端末ゲーム実行部80が各種の処理を行うためのデータを記憶するものであり、主として記憶部42により実現される。また端末データ記憶部70は、プレーヤ情報記憶部71を含む。
【0046】
プレーヤ情報記憶部71には、プレーヤIDに紐付けられた各種の情報が記憶される。本実施形態では、プレーヤ名、所持ゲーム媒体、デッキ構成などがプレーヤ情報記憶部71に記憶されている。プレーヤ情報記憶部71は、設定情報記憶領域72を含み、設定情報記憶領域72には、サウンド、画面、対戦、通信などに関するプレーヤがカスタマイズすることができる情報が記憶される。特に本実施形態では、サーバー20との通信に関連する設定情報(通信設定情報)をプレーヤがカスタマイズすることが可能となっている。具体的には、対戦機能においてプレーヤ端末40がサーバー20にアクセスする際のインターネットプロトコルとしてIPv4(Internet Protcol ver.4)またはIPv6(Internet Protcol ver.6)のいずれを使用するかをプレーヤの任意で切り替えることが可能であり、その設定情報が設定情報記憶領域72に記憶されている。
【0047】
端末ゲーム実行部80は、ゲーム開始条件が満たされた場合にゲームを開始する処理、複数種類のゲームモードのうち選択されたゲームモードを実行する処理、ゲームを進行させる処理、イベント発生条件が満たされた場合にイベントを発生させる処理、ゲーム結果を演算する処理、およびゲーム終了条件が満たされた場合にゲームを終了する処理などを行い、主として制御部41および通信部45により実現される。また端末ゲーム実行部80は、プレーヤの入力を受け付ける入力インターフェースを提供する入力受付部81と、サーバー20との通信に関連付けられた通信設定情報を変更する設定変更部82と、通信設定情報に従ってサーバーと通信接続を確立するための処理を行う通信制御部83とを含む。
【0048】
入力受付部81は、プレーヤ端末40とサーバー20との間で所定の通信条件下において正常な通信接続が確立できない場合に、エラー通知を行いつつ、インターネットプロトコルを切り替えるための入力(第1入力の一例)、および、サーバー20への再接続を要求するための入力(第2入力の一例)を受付可能とする入力インターフェースを提供する。本実施形態では、対戦機能に関する一部の通信においてサーバー20との間でWebsocket通信を行い、所定回数以上(例えば、2回以上)のタイムアウトエラーが検知された場合に、入力受付部81が、エラーメッセージを表示するとともに、インターネットプロトコルを切り替え可能とするチェックボックスと、サーバー20との再接続を行うためのリトライボタンとを設けた特殊ダイアログボックスを表示する。
【0049】
入力受付部81は、サーバー20とのWebsocket通信において、タイムアウトエラー(特定のエラーの一例)を検知した場合に、インターネットプロトコルの設定を変更することができる特殊ダイアログボックスを表示可能とし、タイムアウトエラー以外のエラー(例えば、DNSエラーなど)を検知した場合には、インターネットプロトコルの設定を変更できない通常ダイアログボックスを表示する。なお本実施形態では、2回目以降のタイムアウトエラーを検知した場合に、特殊ダイアログボックスが表示され、1回目のタイムアウトエラーを検知した場合については、通常ダイアログボックスが表示される。
【0050】
設定変更部82は、既述のチェックボックスおよびリトライボタンが設けられた特殊ダイアログボックスが表示されている状況において、チェックボックスに対するタップ入力が行われたことに基づいて、サーバー20とのWebsocket通信におけるインターネットプロトコルに関する通信設定情報を変更する。本実施形態では、初期設定においてIPv6の設定が有効となっており、特殊ダイアログボックスに設けられたチェックボックスのチェックマークを外すとIPv6の設定が無効となる。そしてIPv6の設定が無効となった結果、IPv4を使用してWebsocket通信を行うように設定が変更される。
【0051】
通信制御部83は、既述のチェックボックスおよびリトライボタンが設けられたダイアログボックスが表示されている状況において、リトライボタンに対するタップ入力が行われたことに基づいて、通信設定情報に従ったインターネットプロトコルを使用してサーバー20とのWebsocket通信による通信接続を確立するための処理を行う。
【0052】
通信制御部83は、プレーヤのアカウントに対するログインのための通信や対戦機能におけるプレーヤ同士のマッチングのための通信においてはHTTP(Hyper Text Transfer Protcol:第1の通信プロトコルの一例)を使用し、対戦機能におけるプレーヤ同士の対戦に関する所定の通信(例えば、プレーヤ同士の対戦を進行させるための通信)においてはWebscoket(第2の通信プロトコルの一例)を使用してサーバー20との通信接続を確立する。本実施形態では、即応性が求められる通信に関してWebsocket通信が用いられ、それ以外の通信に関してHTTP通信が用いられる。
【0053】
2.本実施形態の制御手法
以下では、本実施形態の制御手法を実現するゲームプログラムを、スマートフォンとして設けられたプレーヤ端末40のゲームアプリケーションに適用した場合を例に挙げて詳細に説明する。
【0054】
図4は、主催者となるプレーヤAが、複数のプレーヤの参加する「ユーザー大会」を開催するための対戦グループの作成に関して、サーバー20とプレーヤ端末40との処理の例を示すフローチャートである。
【0055】
まずプレーヤAのプレーヤ端末40において、制御部41が、記憶部42に記憶されたゲームプログラムを起動させ、プレーヤAが所定の入力を行った場合に、
図5に示す対戦モード選択画面100を表示部44に表示させる(ステップS101)。対戦モード選択画面100では、「フリー対戦」のアイコン画像101と、「ユーザー大会」のアイコン画像102とが表示され、プレーヤAがいずれかのアイコン画像にタッチ入力を行うことによって、対戦モードとして「フリー対戦」または「ユーザー大会」のいずれかを選択することができる。「フリー対戦」は、不特定多数のプレーヤの中からマッチングされたプレーヤ同士が対戦を行う対戦モードであり、「ユーザー大会」は、大会用の対戦グループに所属するプレーヤ同士で対戦を行う対戦モードである。
【0056】
対戦モード選択画面100の表示中にプレーヤAが「ユーザー大会」のアイコン画像102に対してタッチ入力をした場合(ステップS102でY)、制御部41は、
図6に示すように、ユーザー大会を開催する、または既存のユーザー大会に参加する、のいずれかを選択するための開催/参加選択画面200を表示部44に表示させる(ステップS103)。開催/参加選択画面200では、「ユーザー大会を開く」のメッセージを伴うアイコン画像201と、「ユーザー大会に参加する」のメッセージを伴うアイコン画像202とが表示され、プレーヤAがいずれかのアイコン画像にタッチ入力を行うことによって、いずれか一方を選択することができる。なお対戦モード選択画面100の表示中に「フリー対戦」のアイコン画像101に対してタッチ入力が行われた場合(ステップS102でN)、本処理は終了し、「フリー対戦」に係る処理を実行する。
【0057】
開催/参加選択画面200の表示中に「ユーザー大会を開く」のアイコン画像201に対してタッチ入力が行われた場合(ステップS104でY)、制御部41は、
図7に示す大会情報設定画面300を表示部44に表示させる(ステップS105)。なお開催/参加選択画面200の表示中に「ユーザー大会に参加する」のアイコン画像202に対してタッチ入力が行われた場合(ステップS104でN)、制御部41は、後述する
図13に示すフローチャートに沿ってステップS114以降の処理を実行する。
【0058】
大会情報設定画面300は、「ユーザー大会」の開催に必要な情報の設定を行うための画面である。本実施形態のゲームアプリケーションは、2名のプレーヤが互いに30枚のカードで構成されたカードデッキを用いてカードを出し合う等して対戦を行うものであり、主催者となるプレーヤAは、大会情報設定画面300を利用して、「試合方式」、「フォーマット」、「上限人数」、「開始時間」、「開催期間」、「観戦設定」、「主催者参加」の各項目に関する設定のための入力を行うことができる。
【0059】
「試合方式」は、対戦の決着条件を設定する項目である。本実施形態では、
図8に示すように、1回戦のみを行っていずれか一方が1回勝利することで決着する「BO1」、最大で5回戦を行っていずれか一方が3回勝利することで決着する「BO3」、最大で9回戦を行っていずれか一方が5回勝利することで決着する「BO5」から選択することができる。
図7に示す例では、表示領域301に表示されているように「BO3」が選択されており、変更ボタン311に対してタッチ入力を行うことによって「試合方式」を変更する入力を行うことができる。
【0060】
「フォーマット」は、対戦に使用するカードデッキに組み込むことができるカードの種類の制限を設定する項目である。本実施形態では、
図8に示すように、「フォーマット」として、「ローテーション」と「アンミリテッド」とが選択可能である。「ローテーション」は予め定められた種類のカードのみをカードデッキに組み込むことが可能であり、「アンリミテッド」は種類の制限無しでカードをカードデッキに組み込むことが可能である。
図7に示す例では、表示領域302に表示されているように「ローテーション」が選択されており、変更ボタン312に対してタッチ入力を行うことによって「フォーマット」を変更する入力を行うことができる。
【0061】
「上限人数」は、対戦グループに参加可能な対戦を行うプレーヤの人数を設定する項目である。本実施形態では、
図8に示すように、「上限人数」を3名~64名の間で設定可能であり、主催者が対戦を行うプレーヤとして参加する場合には、その中に主催者が含まれ、主催者が対戦を行うプレーヤとして参加しない場合には、その中に主催者が含まれない。
図7に示す例では、表示領域303に表示されているように16名に設定されており、変更ボタン313に対してタッチ入力を行うことによって「上限人数」を変更する入力を行うことができる。
【0062】
「開始時間」は、「ユーザー大会」がサーバー20に登録されてから対戦が可能となるまでの時間を設定する項目である。本実施形態では、
図8に示すように、「開始時間」を、1時間後、2時間後、3時間後、4時間後、8時間後、12時間後、24時間後のいずれかに設定することができる。
図7に示す例では、表示領域304に表示されているように4時間後が選択されており、変更ボタン314に対してタッチ入力を行うことによって「開始時間」を変更する入力を行うことができる。
【0063】
「開催期間」は、「ユーザー大会」において対戦の開始受付(対戦募集に対する対戦申込の受付)の有効期間を設定する項目である。本実施形態では、
図8に示すように、「開催期間」を、1時間、2時間、3時間、4時間、8時間、12時間、24時間のいずれかに設定することができる。
図7に示す例では、表示領域305に表示されているように8時間が選択されており、変更ボタン315に対してタッチ入力を行うことによって「開催期間」を変更する入力を行うことができる。
【0064】
「観戦設定」は、「ユーザー大会」におけるプレーヤ同士の対戦をプレーヤ端末40によって観戦可能とする対象についての観戦権限を設定する項目である。本実施形態では、
図8に示すように、「観戦設定」を、「主催者のみ」、「主催者および参加者」、「観戦なし」のいずれかに設定することができる。
図7に示す例では、表示領域306に表示されているように「主催者のみ」が選択されており、変更ボタン316に対してタッチ入力を行うことによって「観戦設定」を変更する入力を行うことができる。
【0065】
「主催者参加」は、主催者となるプレーヤ(本実施形態ではプレーヤA)が、対戦を行う参加者としても参加するか否かを設定する項目である。本実施形態では、
図8に示すように、「オン」または「オフ」のいずれかに設定することができる。「主催者参加」の項目を「オン」に設定した場合には、主催者は参加者としても登録され、「ユーザー大会」においてプレーヤ同士の対戦を行うことができる。また「主催者参加」の項目を「オフ」に設定した場合には、主催者は参加者としては登録されず、「ユーザー大会」においてプレーヤ同士の対戦を行うことができない。
図7に示す例では、「オフ」のチェックボックス308にチェックが入っていることによって「主催者参加」の項目が「オフ」に設定されており、「オン」のチェックボックス307に対してタッチ入力を行うことで「オフ」のチェックボックス308のチェックが外れて「オン」のチェックボックス307にチェックが入り、「主催者参加」の項目に関する設定を切り替えることができる。
【0066】
図6に示す大会情報設定画面300には、キャンセルボタン309と決定ボタン310とが設けられており、決定ボタン310に対してタッチ入力が行われると(ステップS106でY)、制御部41は、サーバー20に対して、主催者となるプレーヤAのプレーヤIDと各設定の項目に関する情報とを含む大会登録要求を送信する(ステップS107)。なおキャンセルボタン309に対してタッチ入力が行われると(ステップS106でN)、ステップS103の処理に戻り、開催/参加選択画面200が表示部44に表示される。
【0067】
サーバー20では、プレーヤ端末40からの大会登録要求を受信すると、制御部21が、受信した大会登録要求に含まれる情報に基づく大会レコードを記憶部22に作成する(ステップS201)。制御部21は、大会レコードを作成する際に、「大会ID」を付与し、「大会ID」に対応づけて、「主催者ID」(主催者となるプレーヤAのプレーヤID)、「試合方式」、「フォーマット」、「上限人数」、「開始時間」、「開催期間」、「観戦設定」、「主催者参加」等を、記憶部22に作成された大会レコードに格納する。
【0068】
制御部21は、大会レコードの作成が完了すると、登録完了応答を主催者となるプレーヤAのプレーヤ端末40に送信する(ステップS202)。プレーヤAのプレーヤ端末40では、サーバー20から登録完了応答を受信すると、制御部41が、
図9に示す大会登録完了画面400を表示部44に表示させる(ステップS108)。
【0069】
大会登録完了画面400では、大会の登録が完了した旨のメッセージが表示される。また大会登録完了画面400には、サーバー20に登録された「ユーザー大会」の基本画面に移行するための画面移行ボタン401が設けられ、画面移行ボタン401に対してタッチ入力が行われると、プレーヤAが開催した「ユーザー大会」の専用の基本画面が表示部44に表示される。
【0070】
図10に示す大会トップ画面500は、基本画面の一例である。大会トップ画面500における表示モードとして、「チャット」、「大会情報」、「大会戦績」、「参加者一覧」が存在する。「チャット」は主催者および参加者がプレーヤ端末40から送信したコメントやサーバー20からの連絡事項などが表示される表示モードであり、「ユーザー大会」における対戦の募集、対戦の申し込み、対戦の観戦は、「チャット」の表示モードを利用して行われる。「大会情報」は、大会レコードに格納されている「大会ID」、「試合方式」、「フォーマット」、「上限人数」、「開始時間」、「開催期間」、「観戦設定」、「主催者参加」等の設定情報を閲覧するための表示モードである。「大会戦績」は、参加者となったプレーヤの対戦履歴に基づくランキング等が表示される表示モードである。「参加者一覧」は、参加者となったプレーヤの一覧が表示される表示モードである。
【0071】
大会トップ画面500には、「チャット」を選択するためのチャットボタン501、「大会情報」を選択するための大会情報ボタン502、「大会戦績」を選択するための大会戦績ボタン503、参加者一覧ボタン504が設けられており、各ボタンに対してタッチ入力が行われると、制御部41が表示モードの切り替えを行う。
【0072】
また
図10に示すように、大会トップ画面500において表示モードが「チャット」である場合、チャット表示領域550に、主催者および参加者がプレーヤ端末40から送信したコメント506やサーバー20からの連絡事項507などが時系列で表示される。主催者および参加者がプレーヤ端末40から送信したコメント506には、コメントを行ったプレーヤIDに紐付いたアイコン画像505が対応づけられる。またコメント506や連絡事項507等の表示内容の履歴は、サーバー20の記憶部22に作成された大会レコードに格納されており、プレーヤ端末40は、サーバー20から表示内容の履歴をダウンロードしてチャット表示領域550に表示させる。また大会トップ画面500のチャット表示領域550にはスクロールバー508が設けられており、スライダーをドラッグしてスライドさせるタッチ入力によりシームレスに表示内容の履歴を閲覧することができる。
【0073】
また大会トップ画面500のチャット表示領域550の下方には、デッキ確認ボタン509、対戦募集ボタン510、コメントボタン511が設けられている。デッキ確認ボタン509は、「ユーザー大会」における対戦で使用するカードデッキの内容を確認するためのボタンである。対戦募集ボタン510は、「ユーザー大会」に参加している参加者に対して対戦の募集を行うためのボタンである。コメントボタン511は、コメントの入力フォームを呼び出すためのボタンである。
【0074】
また「ユーザー大会」をサーバー20に登録した後におけるプレーヤAのプレーヤ端末40では、「ユーザー大会」の開始時間となるまで、
図11に示すように、制御部41が、対戦モード選択画面600において「ユーザー大会」のアイコン画像601に「ユーザー大会」の開始時間までの残り時間を示すカウントダウン画像602を重ねて表示し、時間経過とともにカウントダウン画像602の表示時間を変化させる。このユーザーインターフェースにより「ユーザー大会」の対戦が開始可能となるまでの残り時間を把握することができる。なおプレーヤAが主催する「ユーザー大会」の参加者となったプレーヤのプレーヤ端末40でも同様である。
【0075】
対戦モード選択画面600を表示させる際の「ユーザー大会」の開始時間までの残り時間の情報は、対戦モード選択画面600に移行する入力が行われたことをプレーヤ端末40からサーバー20へ通知した際に、その応答としてプレーヤ端末40がサーバー20から取得する。「ユーザー大会」の開始時間までの残り時間の情報をサーバー20から取得した後はプレーヤ端末40の制御部41が、タイマ処理で計時を行い、対戦モード選択画面600のカウントダウン画像602に反映させる。
【0076】
また「ユーザー大会」の開始時間となった後におけるプレーヤAのプレーヤ端末40では、
図12に示すように、制御部41が、対戦モード選択画面700において「ユーザー大会」のアイコン画像701に「ユーザー大会」の終了時間までの残り時間を示すカウントダウン画像702を重ねて表示し、時間経過とともにカウントダウン画像702の表示時間を変化させる。このユーザーインターフェースにより「ユーザー大会」の対戦の受け付けが終了するまでの残り時間を把握することができる。なおプレーヤAが主催する「ユーザー大会」の参加者となったプレーヤのプレーヤ端末40でも同様である。
【0077】
図13は、プレーヤAが主催する「ユーザー大会」への参加を希望するプレーヤBが、プレーヤAが主催する「ユーザー大会」の対戦グループへ参加者として登録されるまでのサーバー20とプレーヤ端末40との処理の例を示すフローチャートである。
【0078】
まずプレーヤBのプレーヤ端末40において、制御部41が、記憶部42に記憶されたゲームプログラムを起動させ、プレーヤBが所定の入力を行った場合に、
図5に示す対戦モード選択画面100を表示部44に表示させる(ステップS111)。対戦モード選択画面100では、「フリー対戦」のアイコン画像101と、「ユーザー大会」のアイコン画像102とが表示され、プレーヤBがいずれかのアイコン画像にタッチ入力を行うことによって、対戦モードとして「フリー対戦」または「ユーザー大会」のいずれかを選択することができる。
【0079】
対戦モード選択画面100の表示中にプレーヤBが「ユーザー大会」のアイコン画像102に対してタッチ入力をした場合(ステップS112でY)、制御部41は、
図6に示すように、ユーザー大会を開催する、または既存のユーザー大会に参加する、のいずれかを選択するための開催/参加選択画面200を表示部44に表示させる(ステップS113)。なお対戦モード選択画面100の表示中に「フリー対戦」のアイコン画像101に対してタッチ入力が行われた場合(ステップS112でN)、本処理は終了し、「フリー対戦」に係る処理を実行する。
【0080】
開催/参加選択画面200の表示中に「ユーザー大会に参加する」のアイコン画像202に対してタッチ入力が行われた場合(ステップS114でY)、制御部41は、
図14に示す大会検索画面800を表示部44に表示させる(ステップS115)。なお開催/参加選択画面200の表示中に「ユーザー大会を開催する」のアイコン画像201に対してタッチ入力が行われた場合(ステップS114でN)、制御部41は、先に述べた
図4に示すフローチャートに沿ってステップS105以降の処理を実行する。
【0081】
大会検索画面800には、大会ID入力領域801と検索実行ボタン802とが設けられている。プレーヤBは、プレーヤAから直接伝えられたこと、またはインターネット上の掲示板やSNS(ソーシャルネットワークサービス)等でのプレーヤAの告知などを見たことによって大会ID(例えば、123456)を把握し、それを
図15に示すように、大会ID入力領域801に入力することができる。
【0082】
大会検索画面800の表示中に検索実行ボタン801に対してタッチ入力が行われると(ステップS116でY)、制御部41は、サーバー20に対して、大会ID入力領域801への入力内容を含む大会ID検索要求を送信する(ステップS117)。
【0083】
サーバー20では、プレーヤ端末40からの大会ID検索要求を受信すると、制御部21が、受信した大会ID検索要求に含まれる大会IDに対応する大会レコードが記憶部22に存在するか否かを検索し(ステップS211)、検索結果に応じた検索完了応答をプレーヤBのプレーヤ端末40に送信する(ステップS212)。
【0084】
制御部21は、大会ID検索要求に含まれる大会IDに対応する大会レコードが存在している場合、「主催者ID」、「試合形式」、「フォーマット」、「上限人数」、「参加人数」、「開催期間」、「観戦設定」等の大会情報を含む検索完了応答をプレーヤBのプレーヤ端末40に送信する。
【0085】
プレーヤ端末40では、大会情報を含む検索完了応答を受信した場合(ステップS117でY)、制御部41が、
図16に示す大会参加確認画面900を表示部44に表示させる(ステップS118)。大会参加確認画面900では、検索完了応答に含まれる大会情報に基づく内容が表示領域901に表示される。また大会参加確認画面900には、キャンセルボタン902と参加決定ボタン903とが設けられている。大会参加確認画面900の表示中に参加決定ボタン903に対するタッチ入力が行われた場合(ステップS120でY)、制御部41は、サーバー20に対して、プレーヤBのプレーヤIDを含む参加者登録要求を送信する(ステップS121)。なお大会参加確認画面900の表示中にキャンセルボタン902に対するタッチ入力が行われた場合(ステップS120でN)、制御部41は、大会検索画面800を表示部44に表示させる。
【0086】
サーバー20では、プレーヤ端末40から参加者登録要求を受信した場合、参加者登録要求に含まれるプレーヤIDに対応するプレーヤを参加者として追加登録して、プレーヤAが主催する「ユーザー大会」の大会レコードを更新し(ステップS213)、プレーヤBのプレーヤ端末に対して登録完了応答を送信して(ステップS214)、プレーヤAが主催する「ユーザー大会」への参加者としての登録が完了したことを通知する。なお図示省略するが、参加者登録要求を受信した時点で、対象の「ユーザー大会」の大会レコードを参照して、参加者の数が上限数に達している場合や開始時間を過ぎている場合等、要求元のプレーヤを参加者として登録ができない場合には、参加者登録要求の送信元のプレーヤ端末40に対してエラー応答を行う。
【0087】
また制御部21は、大会ID検索要求に含まれる大会IDに対応する大会レコードが存在しない場合、その旨を通知するための検索エラー情報を含む検索完了応答をプレーヤBのプレーヤ端末40に送信する。例えば、大会IDとして「123456」を入力すべきところ、誤って「123457」と入力した場合などが該当する。なお参加者の人数が上限数に到達した「ユーザー大会」は検索対象外として、実在する大会IDについての大会ID検索要求がサーバー20に送信されても、検索エラー情報を含む検索完了応答をプレーヤ端末40に送信するようにしてもよい。
【0088】
プレーヤ端末40では、検索エラー情報を含む検索完了応答を受信した場合(ステップS117でN)、制御部41が、
図17に示す検索エラー画面810を表示部44に表示させる(ステップS119)。検索エラー画面810には、復帰ボタン811が設けられており、復帰ボタン811に対するタッチ入力が行われると、制御部41は、大会検索画面800を表示部44に表示させる。
【0089】
また本実施形態では、「ユーザー大会」に参加するプレーヤは、参加者としての登録完了後に、対戦で使用するカードデッキの登録を行うことが必要となっている。
図18に示すデッキ登録画面1000は、「ユーザー大会」で使用するカードデッキの登録を行うための入力インターフェースの一例である。制御部41は、「ユーザー大会」への参加者としての登録完了に基づいて、デッキ登録画面1000を表示部44に表示させるようにしてもよいし、参加者として登録された「ユーザー大会」の開始時間までに参加者となったプレーヤの任意のタイミングで所定の入力を行うことでデッキ登録画面1000を表示部44に表させるようにしてもよい。
【0090】
図18に示す例では、「ローテーション」の「フォーマット」に対応したカードデッキとして、デッキA、デッキB、デッキC、デッキDがプレーヤによって予め準備されており、デッキ登録画面1000には、デッキAを選択するためのデッキ選択ボタン1001、デッキBを選択するためのデッキ選択ボタン1002、デッキCを選択するためのデッキ選択ボタン1003、デッキDを選択するためのデッキ選択ボタン1004が設けられている。「ユーザー大会」に参加するプレーヤは、いずれかのデッキ選択ボタンに対してタッチ入力することで「ユーザー大会」で使用するカードデッキの選択を行うことができる。
【0091】
デッキ登録画面1000の表示中に、いずれかのデッキ選択ボタンに対してタッチ入力が行われると、プレーヤ端末40の制御部41は、
図19に示す登録確認ダイアログボックス1010を表示部44に表示させる。登録確認ダイアログボックス1010には、登録の確認を問うメッセージが表示され、キャンセルボタン1011と、登録ボタン1012とが設けられている。
【0092】
登録確認ダイアログボックス1010の表示中に、登録ボタン1012に対してタッチ入力が行われた場合、制御部41は、デッキ登録を行う「ユーザー大会」の大会ID、デッキ登録を行うプレーヤのプレーヤID、および選択したカードデッキの情報を含むデッキ登録要求をサーバー20に送信する。サーバー20では、デッキ登録要求を受信すると、制御部21が、デッキ登録要求に含まれる大会IDに該当する大会レコードにカードデッキの情報をプレーヤIDに対応づけて登録して、大会レコードを更新する。なお登録確認ダイアログボックス1010の表示中に、キャンセルボタン1011に対してタッチ入力が行われた場合、制御部41は、デッキ登録要求の送信を行わずに登録確認ダイアログボックス1010を閉じて、デッキ登録画面1000を表示部44に表示させる。
【0093】
図20は、プレーヤAが主催する「ユーザー大会」の開催中にプレーヤ同士の対戦を行わせるまでのサーバー20とプレーヤ端末40との処理の例を示すフローチャートである。以下では、プレーヤAが主催する「ユーザー大会」に参加者として登録されているプレーヤBが、
図10に示す大会トップ画面500の入力インターフェースを利用して対戦募集を行っている状況に対して、同じくプレーヤAが主催する「ユーザー大会」に参加者として登録されているプレーヤCが対戦を申し込む場合について説明する。
【0094】
まずプレーヤCのプレーヤ端末40において、制御部41が、記憶部42に記憶されたゲームプログラムを起動させ、プレーヤCが所定の入力を行った場合に、
図12に示す対戦モード選択画面700を表示部44に表示させる(ステップS131)。対戦モード選択画面700では、「ユーザー大会」のアイコン画像701に参加者として登録されている「ユーザー大会」の終了時間までの残り時間を示すカウントダウン画像702が重ねて表示される。
【0095】
対戦モード選択画面700の表示中にプレーヤCが「ユーザー大会」のアイコン画像701に対してタッチ入力を行った場合(ステップS132でY)、プレーヤ端末40の制御部41は、サーバー20に対して、プレーヤCが参加者として登録されている「ユーザー大会」の大会レコードに格納されている情報を取得するために、「ユーザー大会」の大会IDとプレーヤCのプレーヤIDとを含む大会レコードアクセス要求を送信する(ステップS133)。なお対戦モード選択画面700の表示中に「フリー対戦」のアイコン画像に対してタッチ入力が行われた場合(ステップS132でN)、本処理は終了し、「フリー対戦」に係る処理を実行する。
【0096】
サーバー20では、プレーヤ端末40から大会レコードアクセス要求を受信した場合、大会レコードアクセス要求に含まれる大会IDに基づき大会レコードの検索を行い(ステップS231)、プレーヤAが主催する「ユーザー大会」の大会レコードに格納されている情報を含む大会データ送信応答を、大会レコードアクセス要求に含まれるプレーヤIDに対応するプレーヤCのプレーヤ端末に対して送信する(ステップS232)。
【0097】
サーバー20から大会データ送信応答を受信したプレーヤ端末40では、制御部41が、
図21に示すような大会トップ画面520を表示部44に表示させる(ステップS134)。
【0098】
図21に示す大会トップ画面520では、プレーヤBが対戦受付中であることを示すコメント521が表示されており、コメント521に対戦申込ボタン522が設けられている。本実施形態では、対戦IDが作成されると対戦申込ボタン522を伴うコメント521が投稿される。
【0099】
具体的には、「ユーザー大会」の参加者として登録されているプレーヤがコメント表示領域の下方に設けられた対戦募集ボタンに対してタッチ入力を行うと、プレーヤ端末40の制御部41が、サーバー20に対して対戦ID作成要求を送信する。対戦ID作成要求を受信したサーバー20では、制御部21が、対戦を募集したプレーヤのプレーヤIDと対応づけて対戦IDを発行して大会レコードに格納する。
【0100】
大会レコードには対戦IDに対戦ステータス情報が対応づけられ、対戦IDが作成された段階では対戦ステータス情報は「受付中」に設定される。そしてプレーヤBと他のプレーヤとの対戦が開始されると、対戦IDに対応づけられる対戦ステータス情報は「対戦中」となり、対戦が終了すると対戦IDに対応づけられる対戦ステータス情報は「対戦終了」となる。
【0101】
すなわち大会トップ画面520では、プレーヤBが先に述べた対戦募集ボタンに対するタッチ入力を行った結果、プレーヤBの対戦募集に対して発行された対戦IDに紐づけられた対戦申込ボタン522を伴うコメント521がプレーヤCのプレーヤ端末40の表示部44に表示されている。
【0102】
なおプレーヤAが主催した「ユーザー大会」は、観戦設定が「主催者のみ」に設定されているため、参加者として登録されているプレーヤのプレーヤ端末40では、大会トップ画面520においてコメント521に対戦申込ボタン522しか設けられていないが、仮に観戦設定が「主催者および参加者」に設定されていた場合には、
図22に示すように、大会トップ画面520におけるコメント521に対して、対戦申込ボタン522のみならず観戦申込ボタン523も設けられる。
【0103】
大会トップ画面520の表示中にプレーヤCが対戦申込ボタン522に対してタッチ入力を行った場合(ステップS135でY)、プレーヤ端末40の制御部41は、サーバー20に対して、プレーヤCが参加者として登録されている「ユーザー大会」の大会IDとプレーヤBの対戦募集に対して発行された対戦IDとを含む対戦申込要求を送信する(ステップS136)。
【0104】
サーバー20では、プレーヤ端末40から対戦申込要求を受信した場合、制御部21が、受信した対戦申込要求に含まれる大会IDおよび対戦IDに基づいて、大会レコードを参照して対戦IDに対応づけられた対戦ステータス情報が「受付中」であるか否かを判定する(ステップS233)。
【0105】
対戦申込要求に含まれる対戦IDに対応づけられた対戦ステータス情報が「受付中」であった場合(ステップS233でN)、制御部21は、対戦申込要求に含まれる大会IDに基づく大会レコードにプレーヤCを対戦IDに対応する対戦の対戦者として登録して大会レコードを更新する(ステップS234)。このとき対戦IDに対応づけられた対戦ステータス情報も「受付中」から「対戦中」に変更される。また制御部21は、対戦申込要求に基づくプレーヤCの対戦申込の受付が完了したことを通知する対戦受付完了応答を、プレーヤCのプレーヤ端末40に対して送信する(ステップS235)。なお対戦申込要求に含まれる対戦IDに対応づけられた対戦ステータス情報が「受付中」ではなかった場合(ステップS233でY)、図示を省略するが、制御部21は、プレーヤ端末40に対して対戦申込の受付ができないことを通知する対戦申込エラー応答を送信して本処理を終了する。
【0106】
そしてプレーヤBの対戦募集に対してプレーヤCの対戦申込が受け付けられると、プレーヤBのプレーヤ端末40の制御部41とプレーヤCのプレーヤ端末40の制御部41とが、サーバー20を介して互いの入力情報やカード情報等をやり取りしてカードゲームによる対戦を行う対戦処理(端末側処理:ステップS137、サーバー側処理:ステップS236)が実行される。
【0107】
プレーヤBのプレーヤ端末40では、制御部41が、プレーヤBの入力情報やカード情報等をサーバー20に送信する処理、プレーヤCの入力情報やカード情報等をサーバー20から取得する処理、各プレーヤの入力情報やカード情報等に基づくゲーム演算を行い、演算結果に基づいて対戦中ゲーム画面に係る画像を生成する処理などを端末側処理として行う。
【0108】
プレーヤCのプレーヤ端末40では、制御部41が、プレーヤCの入力情報やカード情報等をサーバー20に送信する処理、プレーヤBの入力情報やカード情報等をサーバー20から取得する処理、各プレーヤの入力情報やカード情報に基づくゲーム演算を行い、演算結果に基づいて対戦中ゲーム画面に係る画像を生成する処理などを端末側処理として行う。
【0109】
サーバー20では、制御部21が、プレーヤBのプレーヤ端末40から受信した入力情報やカード情報等をプレーヤCのプレーヤ端末40へ送信する処理、プレーヤCのプレーヤ端末40から受信した入力情報やカード情報等をプレーヤBのプレーヤ端末40へ送信する処理、対戦の進行を管理する処理などをサーバー側処理として行う。
【0110】
図23は、プレーヤBとプレーヤCとの対戦におけるプレーヤBのプレーヤ端末40の表示部44に表示される対戦中ゲーム画面1100の一例である。
【0111】
対戦中ゲーム画面1100には、プレーヤBのターン終了を宣言するためのターン終了ボタン1101が設けられており、ターン終了ボタン1101に対してタッチ入力が行われると、プレーヤBのターンが終了し、対戦相手であるプレーヤCのターンが開始する。
【0112】
対戦中ゲーム画面1100には、プレーヤBのプレイポイント(PP)を示すプレイポイント表示1102と、プレーヤCのプレイポイント(PP)を示すプレイポイント表示1103とが存在し、これらのプレイポイント表示は、各プレーヤのターン開始時のプレイポイントと使用可能なプレイポイントの残量とが表示されている。例えば、プレーヤポイント表示1102における「3/5」とは、ターン開始時のプレイポイント(PP)が5ポイントであり、使用可能なプレイポイントの残量が3ポイントであることを示す。
【0113】
対戦中ゲーム画面1100には、プレーヤBのキャラクタアイコン1104と、プレーヤCのキャラクタアイコン1105とが表示される。キャラクタアイコン1104に付随して表示されている数字は、プレーヤBのプレーヤライフ表示1106であり、キャラクタアイコン1105に付随して表示されている数字は、プレーヤCのプレーヤライフ表示1107である。これらのプレーヤライフは、カードゲームの勝敗を決する要素であり、対戦相手のプレーヤライフを0にすることで勝利となる。
【0114】
プレーヤBのキャラクタアイコン1104の右方には、プレーヤBの手札カード1108が表示され、プレーヤCのキャラクタアイコン1105の左方には、プレーヤCの手札カード1109が表示される。対戦中ゲーム画面1100は、プレーヤBのプレーヤ端末40の表示部44に表示されているものであるから、プレーヤBの手札カード1108についてはカード情報が表示され、プレーヤCの手札カート1109についてはカード情報が表示されない。プレーヤBの手札カード1108には、カード名(図示省略)、カード絵柄(図示省略)、コスト表示1110、攻撃力表示1111、カードライフ表示1112等のカード情報が表示される。プレーヤCの手札カード1109は、プレーヤCの使用するカードデッキについてデザインが共通化されたカードスキン表示がなされる。なお対戦相手の手札カードの特定は、手札カードとなるカードについて、サーバー20がダミーのカード情報を送信し、ダミーのカード情報を受信したプレーヤ端末40において記憶部42のカード情報データベースを参照して行う。
【0115】
プレーヤBの手札カード1108には、プレーヤBのターン開始時に、プレーヤBのカードデッキの未使用分である山札カード1115から1枚が追加される。プレーヤCの手札カード1109には、プレーヤCのターン開始時に、プレーヤCのカードデッキの未使用分である山札カード1116から1枚が追加される。
【0116】
また対戦中ゲーム画面1100では、プレーヤBの場札カード1113、プレーヤCの場札カード1114が表示される。各プレーヤは、自らのターンにおいて使用可能なコストの範囲内で手札カードを場札カードとすることができ、場札カードの攻撃力の数値によって対戦相手の場札カードのカードライフを減じる、または対戦相手のプレーヤライフを減じることができる。場札カードのカードライフが0になった場合には、その場札カードは退場する。また先にも述べたように、いずれか一方のプレーヤのプレーヤライフが0になった場合には、他方のプレーヤの勝利となる。
【0117】
このように対戦中ゲーム画面1100では、プレーヤBが、プレーヤCの手札カード1109についてカード情報を知り得ないが、手札カード1109から場札カード1114に転じたものについてカード情報を知ることができる。
【0118】
図24は、プレーヤAが主催する「ユーザー大会」の開催中にプレーヤ同士の対戦を観戦させるまでのサーバー20とプレーヤ端末40との処理の例を示すフローチャートである。以下では、プレーヤAが主催する「ユーザー大会」に参加者として登録されているプレーヤBとプレーヤCとの対戦を、主催者として登録されているプレーヤAが観戦する場合について説明する。
【0119】
まずプレーヤAのプレーヤ端末40において、制御部41が、記憶部42に記憶されたゲームプログラムを起動させ、プレーヤAが所定の入力を行った場合に、
図12に示す対戦モード選択画面700を表示部44に表示させる(ステップS141)。対戦モード選択画面700では、「ユーザー大会」のアイコン画像701に参加者として登録されている「ユーザー大会」の終了時間までの残り時間を示すカウントダウン画像702が重ねて表示される。
【0120】
対戦モード選択画面700の表示中にプレーヤAが「ユーザー大会」のアイコン画像701に対してタッチ入力を行った場合(ステップS142でY)、プレーヤ端末40の制御部41は、サーバー20に対して、プレーヤAが主催者として登録されている「ユーザー大会」の大会レコードに格納されている情報を取得するために、「ユーザー大会」の大会IDとプレーヤAのプレーヤIDとを含む大会レコードアクセス要求を送信する(ステップS143)。なお対戦モード選択画面700の表示中に「フリー対戦」のアイコン画像に対してタッチ入力が行われた場合(ステップS142でN)、本処理は終了し、「フリー対戦」に係る処理を実行する。
【0121】
サーバー20では、プレーヤ端末40から大会レコードアクセス要求を受信した場合、大会レコードアクセス要求に含まれる大会IDに基づき大会レコードの検索を行い(ステップS241)、プレーヤAが主催する「ユーザー大会」の大会レコードに格納されている情報を含む大会データ送信応答を、大会レコードアクセス要求に含まれるプレーヤIDに対応するプレーヤAのプレーヤ端末に対して送信する(ステップS242)。
【0122】
サーバー20から大会データ送信応答を受信したプレーヤ端末40では、制御部41が、
図25に示すような大会トップ画面560を表示部44に表示させる(ステップS134)。
【0123】
図25に示す大会トップ画面560では、プレーヤBとプレーヤCとが対戦中であることを示すコメント561が表示されており、コメント561に観戦申込ボタン562が設けられている。本実施形態では、「ユーザー大会」の主催者または参加者として登録されているプレーヤのうち、「観戦設定」において観戦権限が設定されているプレーヤのプレーヤ端末40に限って観戦申込ボタン562が表示される。本実施形態において「観戦設定」は「主催者のみ」に設定されていることによってプレーヤAのプレーヤ端末40では観戦申込を行うことが可能であるが、例えば、参加者として登録されているプレーヤであって対戦中のプレーヤBおよびプレーヤCとも異なるプレーヤDのプレーヤ端末40では、観戦申込ボタン562が表示不可能であるため、観戦申込を行うことができない。
【0124】
大会トップ画面560の表示中にプレーヤAが観戦申込ボタン562に対してタッチ入力を行った場合(ステップS145でY)、プレーヤ端末40の制御部41は、サーバー20に対して、自身のプレーヤID、「ユーザー大会」の大会ID、およびプレーヤBとプレーヤCとの対戦に係る対戦ID(対戦募集時に作成された対戦ID)とを含む観戦申込要求を送信する(ステップS146)。
【0125】
サーバー20では、プレーヤ端末40から観戦申込要求を受信した場合、制御部21が、受信した観戦申込要求に含まれる大会IDに基づいて、大会レコードを参照して観戦申込要求に含まれるプレーヤIDが観戦権限を有するプレーヤのものであるか否かを判定する(ステップS243)。この「ユーザー大会」の「観戦設定」は、「主催者のみ」であり、プレーヤAは「主催者」として登録されているため、プレーヤAのプレーヤ端末40から送信された観戦申込要求に含まれるプレーヤIDは、観戦権限有するプレーヤのものであると判定される。
【0126】
観戦申込要求に含まれるプレーヤIDが観戦権限を有するプレーヤであった場合(ステップS243でY)、制御部21は、観戦申込要求に含まれる大会IDに基づく大会レコードに観戦申込要求に含まれるプレーヤIDを、観戦申込要求に含まれる対戦IDに対応する対戦の観戦者として登録して大会レコードを更新する(ステップS244)。また制御部21は、観戦申込要求に基づくプレーヤAの観戦申込の受付が完了したことを通知する観戦受付完了応答を、プレーヤAのプレーヤ端末40に対して送信する(ステップS245)。なお観戦申込要求に含まれるプレーヤIDに対応するプレーヤが、観戦権限を有するプレーヤではなかった場合(ステップS243でN)、図示を省略するが、制御部21は、プレーヤ端末40に対して観戦申込の受付ができないことを通知する観戦申込エラー応答を送信して本処理を終了する。
【0127】
そしてプレーヤBとプレーヤCとの対戦に対する観戦者としての登録が受け付けられると、プレーヤAのプレーヤ端末40の制御部41が、サーバー20を介してプレーヤBの入力情報やカード情報とプレーヤCの入力情報やカード情報とを取得して対戦の模様を観戦する観戦処理(端末側処理:ステップS147、サーバー側処理:ステップS246)が実行される。
【0128】
プレーヤAのプレーヤ端末40では、制御部41が、プレーヤBおよびプレーヤCの入力情報やカード情報等をサーバー20から取得する処理、各プレーヤの入力情報やカード情報等に基づくゲーム演算を行い、演算結果に基づいて観戦画面に係る画像を生成する処理などを端末側処理として行う。
【0129】
サーバー20では、制御部21が、プレーヤBのプレーヤ端末40から受信した入力情報やカード情報をプレーヤAのプレーヤ端末40へ送信する処理、プレーヤCのプレーヤ端末40から受信した入力情報やカード情報をプレーヤAのプレーヤ端末40へ送信する処理、対戦の進行を管理する処理などをサーバー側処理として行う。
【0130】
図26は、プレーヤBとプレーヤCとの対戦を観戦するプレーヤAのプレーヤ端末40の表示部44に表示される観戦画面1200である。
【0131】
観戦画面1200は、対戦IDの作成に係る対戦募集を行ったプレーヤ視点での画面となっており、プレーヤBとプレーヤCとの対戦におけるプレーヤB視点での画面であることについては、対戦中ゲーム画面1100と同一であるが、プレーヤCの手札カート1109についてはカード情報が表示されている点で対戦中ゲーム画面1100と異なる。特に本実施形態では、観戦機能の提供に関して対戦機能を提供する際とは異なる点として、サーバー20は、対戦中の各プレーヤの双方の手札カードおよび場札カードについて正規のカード情報を送信し、観戦者のプレーヤ端末40では、受信した正規のカード情報に基づいて対戦している各プレーヤの手札カードおよび場札カードを開示した状態で観戦画面に係る画像が生成される。
【0132】
このように観戦画面1200では、観戦者であるプレーヤAが、プレーヤBおよびプレーヤCの双方の手札カードおよび場札カードについてカード情報を知ることができる状況で対戦の模様を観戦することができる。
【0133】
情報処理システム10において提供可能な対戦機能の一つである「ユーザー大会」では、対戦グループに参加したプレーヤが対戦の募集を行い、対戦の募集に対して他のプレーヤが対戦の申込を行うことで2名のプレーヤがマッチングされて対戦を行う。対戦機能に係るプレーヤ端末40とサーバー20との所定の通信においてはWebsocket通信を行う仕様となっているが、各プレーヤのプレーヤ端末40の通信環境によってはサーバー20とのWebsocket通信において正常な通信接続の確立ができない場合がある。その原因の一つとして、プレーヤ端末40のインターネット接続経路におけるインターネットプロトコルの影響である可能性がある。
【0134】
そこで本実施形態では、サーバー20とのWebsocket通信においてタイムアウトエラーにより正常な通信接続が確立できない場合、プレーヤ端末40においてインターネットプロトコルの設定を変更しつつサーバー20との再接続を試行することを可能とする入力インターフェースを提供する手法を採用している。
【0135】
図27は、タイムアウトエラー発生時の処理の例を示すフローチャートである。
【0136】
まず所定の通信条件下でエラー(例えば、Websocket通信のタイムアウトエラー)が検知された場合(ステップS301でY)、制御部41は、記憶部42に記録されているエラーログを参照して、1回目のエラー(例えば、Websocket通信のタイムアウトエラー)であるか否かをチェックする(ステップS302)。
【0137】
例えば、プレーヤ端末40の制御部41は、対戦機能に係るサーバー20とのWebsocket通信において通信接続の確立が5回失敗するとタイムアウトエラーを検知し、タイムアウトエラーが検知されたことはエラーログとして記憶部42に記録される。タイムアウトエラーのエラーログは、アプリケーションの連続した起動中のみ有効であり、タスクキルなどによってアプリケーションが終了する場合、記憶部42におけるエラーログの記録はリセットされる。
【0138】
1回目のエラー(例えば、Websocket通信のタイムアウトエラー)であった場合(ステップS302でY)、制御部41は、通信エラーを通知するダイアログボックスとして、
図28に示す通常ダイアログボックス1200を表示する(ステップS303)。
【0139】
通常ダイアログボックス1200には、通信エラーが発生したことを通知するメッセージが表示されるとともに、戻るボタン1201とリトライボタン1202とが設けられている。
【0140】
通常ダイアログボックス1200が表示されている状況において、戻るボタン1201に対するタップ入力(戻る入力)が行われると(ステップS304でY)、制御部41は、Websocket通信によるサーバー20との再接続の試行は行わずに通常ダイアログボックス1200の表示を終了する。
【0141】
通常ダイアログボックス1200が表示されている状況において、リトライボタン1202に対するタップ入力(リトライ入力)が行われると(ステップS305でY)、制御部41は、通常ダイアログボックス1200の表示を終了しつつ、Websocket通信によるサーバー20との再接続を試行する(ステップS306)。
【0142】
2回目以降のエラー(例えば、Websocket通信のタイムアウトエラー)であった場合(ステップS302でN)、制御部41は、記憶部42に記憶されている通信設定情報を参照し、サーバー20との通信において使用するインターネットプロトコルに関してIPv6の設定が有効であるか否かをチェックする(ステップS307)。
【0143】
IPv6の設定が有効ではない場合には(ステップS307でN)、制御部41は、
図28に示す通常ダイアログボックス1200を表示し、IPv6の設定が有効である場合には(ステップS307でY)、
図29に示す特殊ダイアログボックス1300を表示する。
【0144】
特殊ダイアログボックス1300には、通常ダイアログボックス1200と同様の通信エラーが発生したことを通知するメッセージが表示されていることに加えて、インターネットプロトコルの設定を切り替えるためのチェックボックス1303が設けられている。また特殊ダイアログボックス1300においても、戻るボタン1301とリトライボタン1302とが設けられている。
【0145】
特殊ダイアログボックス1300が表示されている状況において、戻るボタン1301に対するタップ入力(戻る入力)が行われると(ステップS309でY)、制御部41は、Websocket通信によるサーバー20との再接続の試行は行わずに特殊ダイアログボックス1300の表示を終了する。
【0146】
特殊ダイアログボックス1300が表示されている状況において、チェックボックス1303に対するタップ入力(設定変更入力)が行われると(ステップS310でY)、制御部41は、記憶部42に記憶されているインターネットプロトコルに関する通信設定情報を変更する(ステップS311)。本実施形態では、チェックボックス1303に対するタップ入力(設定変更入力)が行われるごとに、チェックボックス1303におけるチェックマークの表示の有無が切り替わり、
図29に示すように、チェックマークが表示されている場合にはIPv6の設定が有効となり、
図30に示すように、チェックマークが表示されていない場合にはIPv6の設定が無効(IPv4の設定が有効)となる。
【0147】
特殊ダイアログボックス1300が表示されている状況において、リトライボタン1302に対するタップ入力(リトライ入力)が行われると(ステップS312でY)、制御部41は、特殊ダイアログボックス1300の表示を終了しつつ、Websocket通信によるサーバー20との再接続を試行する(ステップS313)。この状況では、Websocket通信によってサーバー20との通信接続を確立する際に使用されるインターネットプロトコルが、IPv6となる場合とIPv4となる場合がある。チェックボックス1303にチェックマークが表示されている状況でリトライボタン1302に対するタップ入力(リトライ入力)が行われた場合、IPv6を使用してサーバー20との再接続の試行が行われる。一方、チェックボックス1303にチェックマークが表示されていない状況でリトライボタン1302に対するタップ入力(リトライ入力)が行われた場合、IPv4を使用してサーバー20との再接続の試行が行われる。
【0148】
このように本実施形態では、プレーヤ端末40とサーバー20との間でWebsocket通信による正常な通信接続が確立できない場合に、プレーヤ端末40において通信エラーの発生を通知しつつ、設定変更入力およびリトライ入力を受け付ける入力インターフェースである特殊ダイアログボックス1300を表示可能とし、特殊ダイアログボックス1300を利用してインターネットプロトコルに関する通信設定情報を変更しながら、サーバー20との再接続を試行することができるようにしたので、サーバー20との通信の不具合の解消に関する利便性を向上させることができる。特に本実施形態では、インターネットプロトコルの設定変更の判断をプレーヤに委ねるようにしたので、プレーヤの意図しない設定変更が行われることを防ぐことができる。
【0149】
また本実施形態において対戦機能において用いられるWebsocket通信は、サーバー20を介した複数のプレーヤ端末40の間で即応性の高い双方向通信を実現する技術であり、マッチングされたプレーヤ同士の対戦を円滑に進めることができるものである。従って、マッチングされたプレーヤのうち、一方のプレーヤが利用するプレーヤ端末40においてサーバー20との間で正常な通信接続が確立できない場合、不具合が解消されるまで他方のプレーヤに待ち時間が発生してしまうことがある。しかしながら、本実施形態の手法によれば、通信エラーの発生したプレーヤ端末40において特殊ダイアログボックス1300を通じて通信設定情報の変更した上でサーバー20との再接続を試行することを可能としたことによって、通信エラーの即時解消を期待でき、結果として対戦相手のプレーヤの待ち時間を軽減することもできる。
【0150】
また本実施形態では、インターネットプロトコルの変更を可能とする特殊ダイアログボックス1300の表示は、記憶部42に記憶されている通信設定情報においてIPv6の設定が有効である場合に行うようにしたので、インターネットプロトコルの設定変更を徒に許容しないことで、サーバー20との通信接続が確立できない原因の特定が複雑化することを防ぐことができる。
【0151】
また本実施形態では、Websocket通信によるサーバー20との通信接続の確立において、1回目のタイムアウトエラーではインターネットプロトコルの設定を変更できない通常ダイアログボックス1200を表示し、2回目以降のタイムアウトエラーにおいてインターネットプロトコルの設定を変更できる特殊ダイアログボックス1300の表示を行うようにしたので、インターネットプロトコルの設定変更を徒に許容しないことで、サーバー20との通信接続が確立できない原因の特定が複雑化することを防ぐことができる。
【0152】
また本実施形態では、インターネットプロトコルの設定は、アプリケーションの起動中に、
図31に示す設定メニューダイアログボックス1400を呼び出すことによっても変更可能となっている。設定メニューダイアログボックス1400では、「サウンド/画面」、「バトル」、「ステージ」、「その他」の各項目について各種の設定情報をプレーヤがカスタマイズすることができる。
【0153】
インターネットプロトコルの設定は、「バトル」の項目において変更することが可能であり、「IPv6通信を使用する」のメッセージに対応して設けられたチェックボックス1401に対してタップ入力を行うことで設定の有効/無効を切り替えることができる。チェックボックス1401にチェックマークが表示されている場合、IPv6の設定が有効であり、チェックボックス1401にチェックマークが表示されていない場合、IPv6の設定が無効(IPv4の設定が有効)となる。
【0154】
なお設定メニューダイアログボックス1400において「IPv6通信を使用する」の設定項目は、対戦機能においてプレーヤ同士の対戦を行っている期間においては非表示となり、また対戦機能においてプレーヤ同士のマッチングが完了して対戦の開始を待機している段階においても非表示となる。設定メニューダイアログボックス1400では、インターネットプロトコルの設定を変更することが好ましくない状況において、プレーヤの任意でインターネットプロトコルの設定を変更することができないように制御される。
【0155】
設定メニューダイアログボックス1400には完了ボタン1402が設けられており、完了ボタン1402に対するタップ入力が行われると、設定内容が記憶部42に保存される。設定内容の更新を望まない場合については、クローズボタン1403に対してタップ入力を行うことで設定内容の更新を行わずに設定メニューダイアログボックス1400の表示を終了することができる。
【0156】
このように本実施形態では、設定メニューダイアログボックス1400を通じてプレーヤがサーバー20との通信接続に関係するインターネットプロトコルの設定をカスタマイズすることができるが、通信技術の知識が乏しいプレーヤには、その設定変更の是非を適格に判断することができないため、初期設定のままアプリケーションを利用することが想定される。またアプリケーションの利用経験に乏しいプレーヤにおいては、設定メニューダイアログボックス1400を通じてインターネットプロトコルの設定を変更することが可能であることを認識していないことも想定される。
【0157】
そこで本実施形態では、インターネットプロトコルの設定変更が有用であると認められる状況において特殊ダイアログボックス1300の表示を行うようにしたので、通信技術の知識が乏しいプレーヤにインターネットプロトコルの設定を変更すべき状況を適切に教示することができるとともに、アプリケーションの利用経験に乏しいプレーヤにインターネットプロトコルの設定を変更できることを適切に教示することができる。
【0158】
また本実施形態では、プレーヤアカウントのログインに関する通信や対戦機能においてプレーヤをマッチングする状況などの通信においてはHTTPを使用し、対戦機能においてプレーヤ同士の対戦を進行させるための通信においてWebsocketを使用する。そしてサーバー20とのWebsocket通信においてタイムアウトエラーが発生した場合に、インターネットプロトコルの設定を変更可能とする特殊ダイアログボックス1300の表示を行うようにしたので、徒に通信設定情報が変更されることで通信エラーの原因の特定が複雑化することを防ぐことができる。
【0159】
また本実施形態では、Websocketを使用したサーバー20との通信において、タイムアウトエラーを検知した場合に特殊ダイアログボックス1300の表示を許容し、タイムアウトエラー以外のエラー(例えば、DNSエラーなど)を検知した場合には、インターネットプロトコルに係る通信設定情報を変更できない通常ダイアログボックス1200を表示するようにしたので、徒に通信設定情報が変更されることで通信エラーの原因の特定が複雑化することを防ぐことができる。
【0160】
また通信エラー発生時にインターネットプロトコルの設定を変更可能な入力インターフェースの提供手法は、不特定のプレーヤをランダムマッチングする対戦機能においても適用される。例えば、フリー対戦のゲームモードにおいては、フリー対戦のゲームモードを選択した各プレーヤのプレーヤ端末40からサーバー20に対してマッチング要求が送信され、サーバー20では、マッチング要求のあったプレーヤ同士をランダムにマッチングする。このランダムマッチングを行う際のプレーヤ端末40とサーバー20との通信接続の確立は、HTTP通信によって行われる。続いてマッチングが完了した後のプレーヤ同士の対戦を進行させるためのプレーヤ端末40とサーバー20との通信接続の確立は、Websocket通信によって行われ、Websocket通信においてタイムアウトエラーが所定回数(例えば、2回)発生したことが検知されると、特殊ダイアログボックス1300を通じてインターネットプロトコルの設定変更することができる。なおランダムマッチングを行う際のプレーヤ端末40とサーバー20との通信接続の確立も、Websocket通信によって行われるようにしてもよい。
【0161】
また通信エラー発生時に表示されるダイアログボックスを通じて設定変更が可能な通信設定情報については、プレーヤ端末40からサーバー20へアクセスする際に使用されるインターネットプロトコルのみならず、IPアドレス、接続先サーバーのリージョン、対戦マッチングの地域、VPN(Virtual Private Network)設定、マッチング対象(登録済みのフレンドのみマッチングを許可する、フレンドからの招待の許可等)、ストリーマーモード設定(マッチングした対戦相手に表示するプレーヤ名を匿名状態に変更する等)、VC(ボイスチャット)設定、アプリケーションのプロセス優先度、MTU(Maximum Transmission Unit)値など、各種の情報を変更することができるようにしてもよい。
【0162】
またプレーヤ端末40とサーバー20との間で発生した現象に関する通信条件に対応する通信設定情報を変更可能なダイアログボックスを表示させるようにしてもよい。例えば、プレーヤ端末40からの要求に対するサーバー20からの応答速度(ping値)が所定値以上であることを検知した場合に、接続先サーバーのリージョンを変更可能とするダイアログボックスを表示してもよい。また通信条件に応じて発生した現象と、それに対応して通信設定情報を変更可能とするダイアログボックスは、複数種類存在していてもよく、発生した現象や状況に応じて表示させるダイアログボックスを決定するようにしてもよい。
【0163】
また「プレーヤ」は実在するプレーヤに限らず、所定のアルゴリズムに沿って行動するコンピュータプレーヤ、ノンプレーヤキャラクタ(NPC)を含む。例えば、対戦募集が開始してから一定期間を経過しても対戦申込が行われない場合には、コンピュータプレーヤ、ノンプレーヤキャラクタ(NPC)が対戦相手となって対戦を開始するような態様であってもよい。
【0164】
またプレーヤ同士の対戦の各々が独立したものではなく、トーナメント形式で争われるものであってもよい。トーナメント形式を採用する場合のプレーヤのマッチングについては、サーバー20において抽選などにより決定する、または主催者がプレーヤ端末40に対して手動でマッチング内容を入力して入力内容をサーバー20に送信して大会レコードに登録する等の態様であってもよい。またトーナメント形式を採用する場合に、シードを設けるか否かを設定可能として、シードを設けない設定とした場合に、参加人数でのトーナメントにマッチングが組めない状況では、対戦相手としてコンピュータプレーヤ、ノンプレーヤキャラクタ(NPC)を補充するという態様であってもよい。
【0165】
またサーバー20に関して、ログイン機能を提供するサーバーと対戦機能を提供するサーバーとを個別に設けるようにしてもよい。このようにすれば、通信トラフィックを分散することができるため、対戦機能の提供に与える影響を少なくすることができる。特に対戦機能の提供を格闘ゲームやスポーツゲームのようなサーバー応答遅延がゲームの結果に大きく影響するようなものについては有用である。
【0166】
またプレーヤ同士が対戦を行うゲームとして、カードゲームを例にとり説明をしたが、他のゲームにおいて情報処理システム10の通信エラー関連の機能を提供する構成としてもよい。例えば、格闘ゲーム、スポーツゲーム、アクションゲーム、バトルロイヤルゲーム、ロールプレイングゲーム、FPS(First Person Shooter)、TPS(Third Person Shooter)等、プレーヤ同士が対戦を行うものであれば如何なるジャンルでも適用可能である。またプレーヤ同士の対戦については、1対1に限らず、複数対複数、1対複数のいずれであってもよい。またプレーヤ同士が対戦を行うゲームだけではなく、プレーヤ同士が協力して進行するゲームにおいて情報処理システム10の通信エラー関連の機能を提供する構成としてもよい。
【符号の説明】
【0167】
10 情報処理システム、
20 サーバー、40 プレーヤ端末、21,41 制御部、22,42 記憶部、
23,45 通信部、43 操作入力部、44 表示部、
50 サーバーデータ記憶部、51 プレーヤ管理データベース、
52 対戦情報データベース、
60 サーバーゲーム実行部、61 ログイン機能提供部、62 対戦機能提供部、
70 端末データ記憶部、71 プレーヤ情報記憶部、72 設定情報記憶領域、
80 端末ゲーム実行部、81 入力受付部、82 設定変更部、83 通信制御部、
【手続補正書】
【提出日】2023-02-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プレーヤ端末とサーバーとの間で通信を行うゲームのためのプログラムであって、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部として、
前記プレーヤ端末を機能させるプログラム。
【請求項2】
請求項1において、
前記通信制御部が、
プレーヤアカウントのログインに関する通信においては第1の通信プロトコルを使用し、プレーヤ同士が対戦する対戦ゲームの進行に関する所定の通信においては第2の通信プロトコルを使用するプログラム。
【請求項3】
請求項2において、
前記入力受付部が、
前記第2の通信プロトコルを使用した前記サーバーとの通信において、特定のエラーを検知した場合に前記入力インターフェースを提供可能とし、当該特定のエラー以外のエラーを検知した場合には、前記通信設定情報を変更できない他の入力インターフェースを提供するプログラム。
【請求項4】
プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理システムであって、
前記プレーヤ端末が、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付部と、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更部と、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御部と、
を含む情報処理システム。
【請求項5】
プレーヤ端末とサーバーとの間で通信を行うゲームのための情報処理方法であって、
前記プレーヤ端末と前記サーバーとの間で所定の通信条件下において正常な通信接続が確立できない場合に、前記プレーヤ端末においてエラー通知を行いつつ第1入力および第2入力を受付可能とする入力インターフェースを提供する入力受付ステップと、
前記第1入力が行われたことに基づいて、前記サーバーとの通信に関連付けられた通信設定情報を変更する設定変更ステップと、
前記第2入力が行われたことに基づいて、前記通信設定情報に従って前記サーバーと通信接続を確立するための処理を行う通信制御ステップと、
を前記プレーヤ端末に実行させる情報処理方法。