オセロ制作記録 第8章:32日目から

32日目:サーバー周り整理

[update]

  • Photon周りのリファクタリング
  • 接続するときにAppバージョンを表示する

[fix]不具合修正

  • ゲームが開始されないことがある

何回かマッチング出来て判明したけど、対戦が開始されないことがある。

原因がはっきりと分からない。

とりあえず、サーバーのスクリプトを整理することにした。

今までは、サーバーに接続してルームに入り対戦が開始するまで、色々フラグとか分岐を作っていたが、接続したら対戦までするようにする。

そもそも、わざわざ分岐を作る必要もなかった。

ボタンを押したら対戦が始まる、

くらいシンプルでいい。

というわけで遷移をシンプルにした。

どうやってもフラグ変数の数は多くなるややこしさは無くなりはしないけど。

しかし、サーバーの接続処理がめんどい。なんとかスマートに管理したいが上手くいかない。くそぉ。

UIの方もEventで文字列を送信したり受信したりしてたが、管理が余計にややこしくなるだけだったので廃止。

イベントを発行する処理はむやみやたらにやるものじゃないかも。

33日目:不具合修正3

[fix]不具合修正

  • ランキング見たら固まることがある

ふとランキング開いたらアプリが固まった。多分非同期処理の書き方を間違えていた。

awaitとかあるけど、ちゃんとしたところでawaitしてなかったと思う。

多分、修正できたはず。

あと機能公開したバージョンでPostEffectオフにしたままだった。

忘れてた。

34日目:ビジュアル修正4

[add]新規追加

  • ペナルティ発生時にmsgを出力する

[fix]不具合修正

  • 広告を見終わっても次の戦いに行かない

更新する内容が思いつかなくなってきた。

相手しか置けないマスに置いたらペナルティが発生するようにしているけど、発生したときに発生した理由を表示するようにした。

何回もテストプレイしているから自分では気づかないけど、初見のプレイヤーには何が起きているか分からないことがいくつかありそうだ。

その辺を修正していこう。

広告視聴時に次の戦いへ進まない不具合があった。

EasyMobileはRuntimeManagerとかいうクラスのInit処理を呼ばないといけないらしい。

Android実機のログに

Using RunOnMainThread without initializing Helper.

エラーが出ていたので検索したらEasymobileの出力だった。

初期化してなくても広告表示は出来たので気づかなかった。

35日目:ランキング機能修正1

[add]新規追加

  • ゲーム開始時に置けるマスを光らせて知らせる

[update]機能修正

  • ランキングに連勝記録順も載せる
  • ストア情報を更新

修正する機能が無くなってきた。あるとは思うけど、マッチングして実機で対戦しないと思いつかない。

とりあえずランキングに連勝記録も載るようにしてみる。ちょっとてこずるかもしれない。

Firestoreの方も修正する必要があるので、データベースに関する変更は手間がかかるし、バグも起きやすい。

今はユーザーも少ないしデータベースのフィールドも少ないので何とかなったが、項目が増えてくると管理が大変になるし、修正も時間がかかってしまいそうだ。

あまりいじくりたくない。

ストアのキー画像を更新する。画像が適当すぎた。なんとしてでも目を引くものにしないと。

1日でこのアプリに使う時間を減らしていく。別なことに時間を使う。

数学やらの勉強に時間を割こう。

昼で作業を終えようと思ったけど、ふと思いついたので機能を追加した。

ゲーム開始時に置ける石のマスを光らせるようにした。

ユーザーは思ったよりも操作方法が分からないかも、ということを念頭に置く。

自分は毎日触っているから当たり前に感じているけど、出来るだけ疑問をもって操作の動線を導けているかを考えておく。

そういえば、マッチングしたときに石を置かないプレイヤーが何人かいた気もするし。

どんなゲームか全くわかってなかったかも。

ひょっとしたら、石を交互に置く普通のオセロと思ってインストールした人もいるかもしれない。

疑ったらキリが無くなってきた。