投稿記事

2021年 02月の記事 (12)

satofumi 2021/02/26 20:00

Bonsai Castles の完成までがんばる(その19)

前回のランキングの続きです。
ぶっちゃけ、ここ1週間くらい体調がよくなくて進んでないです。寒いの苦手です。

やったこと

ランキングを「いいね」順にするタスクの、いいねボタンを押したときの処理を実装しました。


良いです。

まだ押されてない「いいね」ボタンの色を青色にしたし、上部のランキングボタンの場所を右にずらして「進行中」がタブボタンで隠れないようにもしました。良いです。

作ってて、「いいね」ボタンを押した時点では順位が入れ替わらないようにしたので、リロードボタンは次回までに実装します。

次回の予定

ランキング改修の残りタスクとして
・リロードボタンの配置(すぐできる)
・ランキング参加者のデータを見る機能の実装(修正量と影響が大きい)
・ランキング参加者のデータを閲覧済みかをわかるようにする(未読みたいなやつ)
・ランキング用のマップをアップロードできるようにする。(Web まわりの作業)
・仮運用してみる。
とかがあります。

マップのアップロードについては、私がランキング開催毎に「次のマップはこれ」って登録してもいいんですけど、絶対に私が飽きるので自動化したいです。

考えてる方法としては
・誰かがマップをアップロードしたらキューに登録して、順次利用されるようにする。
・キューにマップがなければ私が登録した適当マップが利用されるようにする。
です。

タレットや敵パラメータを変更したマップを作る機能はもうあるので、マップを登録できるようにすると色んな設定のゲームとして遊べて楽しそうなので、がんばって実装していきたいです。

そして絶えず(ランキング開催して誰か参加するの?)という想いがのしかかってきます。まじで。

なにはともあれ、少しづつでいいので開発していきます。がんばります。

次回の更新: 月曜日の 20時

satofumi 2021/02/24 20:00

Bonsai Castles の完成までがんばる(その18)

前回の記事で「ランキングまわりとヘルプ画像の作り直します」と書きましたが、ヘルプ画像の作り直しには未着手です。そういう日もあります。

やったこと

ランキングの順序を「いいね」で決めるようにする

やるべきことは
・サーバのデータベースに「いいね」用のフィールドを追加する。
・サーバの Web まわりに「いいね」を扱う処理を追加する。
・ゲームのランキングで「いいね」ボタンを配置して数を表示する。
です。

ランキングを管理するサーバは、私に不慮の事故があっても誰かが動作させられるようにオープンソースで開発しています。
https://bitbucket.org/satofumi/bc_server/src/master/
なので、今回の詳しい変更内容は上記サイトから確認できます。簡単に書くと「だいたい作った。ゲーム側から『いいね』を送信する機能の追加がまだ」です。

そしてアプリ側ですが、こちらも「だいたい作った。『いいね』ボタン押下をサーバに反映させる機能の実装がまだ」です。


そして、ここまで実装しておいてなんですが、ランキングの順位をプレイヤーの「いいね」押下で決めていいのか悩んでいます。例えば

「くっ! この私がクリックすると、このプレイヤーの順位は下がってしまう!」

みたいな決断を迫られたプレイヤーのことを考えると心が痛むわけです。
あとは、この黒枠がボタンになってるとか普通は思わないと思うので、Web ページのデフォルトのリンク色と同じように青っぽい色にするとか、自分のデータには最初から「いいね」しておくとかの工夫もしたいです。

今後の予定

とりあえず実装し中の「いいね」の操作まわりを実装します。
その後は、サーバの Web まわりに「ランキングで使うマップを、プレイヤーがアップrロードできるようにする」とか「ランキング1位の人は、ランキングで使われるマップの順番待ちキューをちょっと変更できる」みたいな機能を実装したいですが、本当に実装するかはまだ考え中です。
1番の問題は「ランキングの参加者が私以外にいるのか?」です。あまり、考えないことにしたい…です…

自分に都合の悪いことは、考えないようがんばります。

次回の更新: 金曜日の 20時

satofumi 2021/02/22 20:00

Bonsai Castles の完成までがんばる(その17)

シナリオを作成したらゲームが完成した気分になってしまい、残りのタスクに着手できないでいる今日このごろです。今回は進捗があまりないので、今後にやることを主に書いていきます。

やったこと

自動で築城するシステムを作ろうと思って、外部スクリプトからゲームを操作する仕組みの微調整を行っていました。外部スクリプトからゲームを操作する機能自体は自動テストを行うために実装済みです。

ゲームを操作するためのスクリプト
https://bitbucket.org/satofumi/bc_script/src/master/

建物を配置するスクリプト(築城 AI にしたい)
https://bitbucket.org/satofumi/castle_constructor_ai/src/master/

とりあえず、
・霊力がある限りタレットを建てる
・住居が不足したら十字方向に建てる
というルールでタイトル画面から自動実行してみました。修正を繰り返しながらですが、目的通りに操作できて良い感じです。

ここから「それっぽい建築を行う築城 AI にする」という方法は、まだわかっていません。なんとかしたいです。

やること

主に「ヘルプ画像の差し替え」タスクと、「ランキングの半自動運営化」のための修正を行いたいです。少し具体的に書いていきます。

ヘルプ画像の差し替え

今の画像は 400x260 px なんですけど、ゲーム中では 600x390 px として表示しているので描画が少しにじみます。なので、一通り作り直す必要があるのですが未着手です。
「やればできる」タスクがいつまでも残ってしまうやつです。次回までに少なくとも1枚のヘルプは差し替えます。着手するのが大事なので。

ランキングの半自動運営化

このゲームには1つのマップを指定して、複数人で遊べるランキングモードがあります。ただ、ランキングの評価対象を「到達したラウンド」にしたせいで、あまり日本のお城らしくない奇抜な建築をした方がランキング上位になるという、私の好みでない状況になっています。(私の好みでない状況なので、しばらくランキングは開催していません)

改善案として「お、こんなカッコいいお城でこのラウンドまで到達できるんだ! いいね!」みたいに、他人のデータを見て「いいね」を押せるようにして、その「いいね」の数でランキングの順番を決めるようにしたいです。

具体的には
・「いいね」ボタンをランキングのパネルに追加し、押せるようにする。
・ランキングを、いいねの数の多い順に表示する。(ランキング数でも表示できてよい)
・ランキングパネルで他人のデータについて「閲覧する」ボタンを追加する。
・「閲覧する」ボタンを押したときにデータを読み込んで表示する。(変更と保存はできなくてよい)

という変更をしたいです。
変更内容が多くて、正直めんどいです。めんどいと着手しにくくなるので良くないですが、次回までに「いいね」が押せるあたりまでは実装します。

ここにきて「閲覧専用のモード」を追加していいのか? というのはあまり考えたくないですが、やってみます。大丈夫です、まだ Early Access 中なので。

今後の予定

開発が終わった気分になっていましたが、この記事を書くために確認したら色々と終わってないことが判明したので、少しづつでいいので着手します。


ここ2週間くらい未着手でした。まぁ、こういう期間もあります。
ラストスパートのつもりで、がんばります。

次回の更新: 水曜日の 20時

satofumi 2021/02/19 20:00

ハッピーずんだ餅 Factory の WebGL 版を作る(その2)

前回は PC 向けにつくったものを WebGL でコンパイルしたら、なんか動作がおかしいところまでを確認しました。今回はエラーメッセージを確認して問題を修正していきます。

やったこと

SRDebugger の適用

まずは、エラーメッセージを表示するために SRDebugger を適用します。実機(今回は Web ブラウザ)実行においてもエラーメッセージを確認できて助かります。

修正し忘れによるエラーの修正

SRDebugger で確認したところ、「Resources.Load() を使うべきなのに実ファイルアクセスのままだった」とか Resources.Load() で読み込むリソースに拡張子がついていたままだったとか、の問題でした。


多言語用のデータとかステージデータの読み込みが動作しました。良いです。

Ordin によるシリアライズ問題の修正

Odin による Dictionary をシリアライズしたので、この問題が起きていました。
https://docs.unity3d.com/ja/2018.4/Manual/ScriptingRestrictions.html
Ordin サイトのドキュメントを見て修正しました。
https://odininspector.com/tutorials/serialize-anything/aot-serialization


イベントシーンも動きました。良いです。

UI の位置ずれ


こういう微妙な位置ずれが起きていたので修正しました。
ただ、修正したのですがアスペクト比が想定と違うスクリーンで最大化したときに、UI が中央に寄ってしまう問題が確認できました。

↑おかしいとき、と正常なとき。
修正できなくはないんですが、とりあえず気にしないことにします。

今後の予定

そして、ここまでの実装でエラーが修正できて UnityRoom でも公開できました。良いです。やったぜ!
で、公開したら満足したので、このプロジェクトはおしまいです。次回は別プロジェクトの続きをやります。

次回の更新: 月曜日の 20時

satofumi 2021/02/17 20:00

ハッピーずんだ餅 Factory の WebGL 版を作る(その1)

1月くらいに作った「ハッピーずんだ餅 Factory」というゲームですが、WebGL 対応をして UnityRoom に置くことを目標に作業していきます。

やること

「ハッピーずんだ餅 Factory」というゲームはコンベアを配置して 2D 物理演算で移動する材料をゴールまで運ぶゲームです。


ちなみに、ダウンロード数はこんな感じです。

この 12回のダウンロード数のうち、8回くらいは私自身がダウンロードしたものです。まぁ、個人開発ゲーのダウンロード数とかこんなもんです。

で、このゲームを UnityRoom に置くために WebGL 対応するのが今回の目標です。

やったこと

UnityRoom のためのアカウントを作って、作品登録を行いました! やったぜ!
そして、ゲームの WebGL 版をビルドして動作確認してみました。「とりあえずゲームとして遊べない」状況なのがわかりました。


↑ぱっと見よさそう。やったぜ!


↑ロゴが日本語にないのに気づきました。多言語対応まわりが動作してない。


↑ステージ選択に使う情報が読み込めてなくてエラーになってるっぽい。


↑何かしらのエラーが起きて表示まわりの初期化で失敗しているっぽい。


↑ステージデータが読み込まれていない。

とりあえず実行して「やっぱり始めから WebGL 向けに作ってないと、後から対応させるのめんどいな」と思いました。しゃーないです。

今後の予定

現状では何かしらのエラーで動作してないのがわかりました。これらエラーは PC 上で動作させてるときには問題が起きないため、WebGL 版で問題を確認する必要があります。まずは、エラー内容を表示するために SRDebugger なんかを WebGL ビルドで使えるか試していこうと思います。多分、エラーメッセージが確認できれば修正は難しくないと思います。
Unity わからないこといっぱいですけど、がんばります。

次回の更新: 金曜日の 20時

« 1 2 3

月別アーカイブ

限定特典から探す

記事を検索