はじめに
ようやくネットワーク対戦としての主砲砲撃戦が始められたのですが、解決すべき問題が幾つかあります。また新たな課題も出てきました。ということで今回も足踏み状態です。本当にいろいろと知らなければならないことがたくさんあります。困ったものです。
ネットワーク対戦プレイヤー戦艦の主砲砲塔制御
前回発覚したこの問題を修正しました。なんだかんだでこの巨大プロジェクトの内容を少しずつ理解始めています。ネットの向こう側にいるネットワーク対戦プレイヤーが操作した主砲砲塔は、その角度情報をサーバーに送られ、サーバーからすべてのクライアントに対して広報される仕組みです。
なので、TankShootingのupdate()の中で!hasAuthorigy状態(プレイヤー操作ではない状態:すなわち、ネットワーク対戦プレイヤーが操作している場合)の場合にのみ、その広報された砲塔角度を受け取って戦艦主砲砲塔制御を行う処理を付け加えました。
文章で書くと簡単ですが、まあこれを実現するのにいろいろな部分を調査しなければなりませんでした。本当に大変です。ただ、肝心のネットワーク関連の機能については一応理解しているように思います。
下記の図にデバッグ状況を示します。左側画面はunityエディタ画面、右側画面はmac-app画面です。わからないとは思いますが、右側画面で砲塔制御した動きが左側画面のネットワークプレイヤー戦艦の砲塔が動くことを確認しています。そして主砲を発射すると回転した砲塔の方向に戦艦砲弾が飛んでいくことも確認しました。
まあ一応できたということでこの作業を少し中断します。
ネットワーク対戦の確認
ようやくにも動き始めましたのでネットワーク対戦を行ってみます。左がunity, 右がmac-appです。unity側はプログラムを一時停止できるのですが、mac-appは一時停止できません。砲撃戦のときには両方の画面に同時に戦艦主砲砲弾が登場するのですけど一時停止するとmac-app側は止まらずにそのまま進んでしまいます。なので、砲撃戦に関しては画面キャプチャするとmac-app側には戦艦砲弾が見えませんのでそのつもりで見て下さい。
結果としてまあ何とか形にはなってきたように思います。肝心のネットワーク遅延時の影響はまだ見れていませんが、確認の時が近づいてきたのかも知れません。ただ、新たな問題がまたひとつ見つかったのでちょっと修正しなければなりません。ネットワーク対戦モードでは考えるべきことが多すぎます。難しい..
継続して実施すべきこと
発生した問題の解決。ネットワークプレイヤー戦艦の動作がプレイヤー戦艦の動作と干渉するという問題。次から次で困ります。
現在できていることの整理(進展無し)
1.3種類までの軍艦を選択して登場できる仕組み
2.シングルモードで戦艦を自在に操艦操作する
3.ネットワーク対戦モードで戦艦を自在に操作する
4.主砲射撃制御:戦艦主砲による同時斉射処理およびパーティクル創りこみ
5.スマホ上でのタッチ処理による操作
6.シングルモードでのプレイヤー戦艦の主砲照準と射撃処理
7.ネットワーク対戦モードでの敵戦艦の主砲射撃処理(新規)
8.今回創りこんだ戦艦周りの各エフェクトのネットワーク対戦での確認(新規)
現在できていないことの整理
0.新規【最優先】unityハングアップ問題の回避策獲得
1.インターネット接続を想定した遅延時間増の場合の動作調査
次に実現を検討すべきことを考えてみる
ネットワーク対戦モードの動作完成(現状バグ修正)
最後に
なんか本当に疲れてきました。困ったものです。アプリとしてまとめられる予感が無い..汗..
以上
参考:海戦関連のアプリを紹介しておきます。
戦艦決闘空間:何といっても第一人気です。
潜水艦決闘空間:最新アップデートでかなり好評価されています
空母決闘空間1942:かなり良くできていると評価を頂いています