ラベル vsReversi の投稿を表示しています。 すべての投稿を表示
ラベル vsReversi の投稿を表示しています。 すべての投稿を表示

2024/07/17

vsReversiアップデート

 vsReversiをアップデートしました。


仕様変更

  • 以下のアカウントによるログイン/新規登録を廃止。
    • FaceBook
    • twitter

不具合修正

  • ブラウザでクロスオリジン・リダイレクト・ログインがサポート停止された影響でログインできないケースがあったので、ログインをポップアップウィンドウに変更。

FaceBookアカウントによるログインは維持するのが難しくなったので、廃止しました。
FaceBookは定期的にアカウントなどを利用する機能に対する審査を行っており、機能の提供を受けるためにはその審査を通過する必要があります。審査の内容や、通過しなかった場合の対応の仕方は毎年変わります。昨年まではサポートやり取りしながらなんとかなりましたが、とうとう維持する手間が見合わないところまで来ました。
最近はあまり使われていないようですし、メールアドレスでも利用可能なのでサポート外とすることにしました。
twitterは今のところそのようなことはないのですが、Xに変わってから収益化のために一部サービスの有料化を進める可能性があるようです。今後有料になる可能性もあると考えられますが、vsReversiの本来の目的はデモンストレーションなので、手間暇や運用費用をかけられません。そのため同時にサポートを廃止することにしました。幸いtwitterアカウントによるユーザは登録されていません。

2023/12/02

vsReversiアップデート

 Google Cloudのデモとして用意していたvsReversiをアップデートしました。今回はJava8→17の更新だけです。内容は特に変わっていません。Google App EngineのJava8サポート終了が予定されているので、それに備えての更新です。

Java11を飛ばして17にした理由は、単にライフサイクルがJava17のほうが長いからです。App Engineのランタイムサポートスケジュールを参照してください。Java11だと残り1年もないですね。すでにJavaのLTSバージョンは今年秋に21がリリースされていますが、これもそのうちApp Engineで使えるようになることでしょう。


2022/06/04

vsReversiアップデート

2022/05/17に続いて、 GCPのデモとして用意していたvsReversiをアップデートしました。


アップデート内容は以下のとおりです。

  • マテリアルデザイン対応
  • モバイル対応

マテリアルデザイン対応

Angularのマテリアルデザインに対応しました。上記のキャプチャにはマテリアルデザインの個所はありませんが、全体的に見た目がちょっとAndroidアプリぽく変化しています。


モバイル対応

過去のパーションと比較して大きな違いが出るのは、上記キャプチャのゲーム画面です。モバイル対応は、スマートフォンでしか確認できていません。手元にスマートフォンしかないので、実機での確認が出来ているのはスマートフォンだけです。タブレットや機種によっては表示がおかしくなるかもしれません。

2022/05/17

vsReversiアップデート

GCPのデモとして用意していた vsReversiをアップデートしました。


アップデート内容は以下のとおりです。

  • ユーザのログインと新規登録を別に
  • SPA対応
  • デザイン変更

ユーザのログインと新規登録を別に

ユーザ認証にはGCPのIdentity Platform(Firebase Authentication)を使用していますが、これには出来合いのUIとして提供されるもの(Firebase UI)も、単体のAPIも、ログインと新規登録の区別がありません。それらが一緒になったサインインがあるのみです。

しかし日本では、ユーザ登録と登録済みユーザのログインが別になっているのをよく見るので、それらしく分けてみました。やってみて出来なくはないのですが、かえって実装は面倒になってしまった印象です。

またEメールで登録する場合は、OAuth(Google/Facebook/Twitter/etc.)に比べて、追加で実装しなければならないのものが多いので、余計面倒です。具体的には、

  • 入力されたEメールアドレスを確認する
  • 入力されたEメールアドレスが間違っていた場合にユーザ登録を解除
  • ユーザがパスワードを忘れた場合のパスワードリセット
  • ユーザがEメールアドレスの変更を希望した場合の対処 (vsReversiでは割愛)
  • さらにこれらのUIのカスタマイズ (vsReversiでは割愛)

Firebase UIではこれらの一部が対応済みなので、簡単に実装したいならそれを使うのが楽です。ただしUIのデザインは簡素なものなので、カスタマイズしたくなります。


SPA対応

Angularを使って一部のページをSingle Page Applicationに対応させました。ログイン/新規登録後のページがそれです。マテリアルデザインは採用していないので それっぽい見た目にはなっていないのですが、ページ遷移が速くなりました。

今までGAE/Java8メインで作っていたのですが、「GAE/Java8でSPA対応に苦戦」に記載したように、これは複数のURIに1つのページを割り当てることができないので、実装の変更が大掛かりになりました。具体的には...

  • HTMLなどスタティックコンテンツをFirebase Hostingに移行してURI割り当てを解決。
  • ajaxリクエストエンドポイントは過去のGAEの実装を流用。ただしCORS(Cross Origin Resource Sharing)に対応。
  • 管理者用のページはCloud Runで管理者の認証を実装。


GCPの初期からあるサービスだけに、GAEは単体でいろいろ必要なものが用意されていることを実感できました。今回は対応できないものが見つかったので、他にいろいろと物色することになりました。それぞれが別のサービスとして名前を持っているので、利用したサービスの数が増えています。


デザイン変更

SPA対応のついでですが、見た目だけの変更です。


CPUの思考ルーチンなどその他は以前のままで、変りありません。


2021/12/08

GCPのデモアプリ : vsReversi


 GCPのデモとして、vsReversiを作ってみました。ネット対戦リバーシ(オセロ)です。

  • 対戦相手を選択できる。
  • 適当にマッチングして対戦もできる。
  • 相手がいないときは対コンピュータ戦もできる。

使用しているGCPのサービスは以下のとおりです。
  • App Engine : Webサーバ
  • Firestore : データベース
  • Identity Platform (Firebase Authentication) : ユーザ認証
  • Cloud Tasks : 対コンピュータ戦の思考ルーチン
対コンピュータ戦の思考ルーチンはJavaで書いていますが、実質数秒以下で1手を打ちます。そのためCloud Tasksを使用する意味はないのですが、GCPのデモとして無理矢理使っています。でないとただのGAEのデモなりそうなので。
デモにコストをかけられるほど裕福ではないので、GAEを中心に無料枠の範囲内で運用できるように、GAEの最大インスタンス数を制限しています。そのため利用が集中すると、応答が悪かったり、エラーになる可能性があります。最大インスタンス数の制限を外せば大勢が同時にアクセスしてもレスポンス低下の起きにくいGAE/Firestoreの特徴を活かせるのですが、残念なことになっています。GAE/Firestoreのいいところを全くアピールできていない、デモとしてはダメアプリです。

それでも、見つけた方は楽しんでいただければと思います。