投稿記事

コーディングの記事 (83)

竹林ソフト 2024/01/26 20:00

NPC をコーディングして領地経営するゲーム開発(1章をプレイして修正していく)

前回の記事でチュートリアル1章の最初のステージの見直しを行いました。引き続きプレイして見直しを行います。

プレイしての気付き

「製粉所」ステージがスタミナ不足でクリアできない

少し前に畑でのワーク時にもスタミナを消費するようにした結果、クリアできなくなっていました。
試しに畑でのワーク時のスタミナを減らす麦わら帽子を装備させたところ、クリアできたので、これでよいことにします。

↓ 麦わら帽子を装備しているところ

よいです。

クリア時に「次のステージへ」をマウス操作で押すあたり

↓ クリア時の画面

Enter キー押下が押されたら次のステージへの処理を行うことにしました。直感だとスペースキーなのですが、それはもう「ゲームの一時中止/再開」に割り振っていたので Enter キーに割り振りました。

ゲーム開始直後にアイテムが消費される


なぜかゲーム開始直後にアイテム消費の表示されて「なんで?」って思う動作をしたので修正します。

確認したところ setup.lua で木材を伐採小屋に格納してて、木材があるのでオーダーに基づいてワークが開始されただけで問題ない動作でした。
ただ、作者さまである私がプレイして違和感のある動作だったので、木材の初期配置をなくしていろいろ調整し直しました。

こう、クラフトのレシピやワーク時間を変更すると既存ステージの見直しが必要になるのは、なんというか悩ましいなと思いました。
とはいえ違和感がない動作に修正できたので、よいです。

パンを食べずに持ったままワークしに行ってしまう


確認したところ、これも以前の開発で「満腹度が 50% より大きくて空腹でないなら食事できないようにしよう。経験値が得られる食事をし続けるのを防ぐため」という変更をしたせいでした。
コンソールを開くと警告メッセージが表示されていました。

↓ コンソールを開くと確認できる警告メッセージ

これについては、ステージの Lua スクリプトを変えて適切な動作に修正するだけでなく、警告がコンソールにあることをわかるような調整を行うことにしました。

↓ 警告アイコンが出るように調整した結果

今までもエラー時にはこのアイコンが赤色で表示されてたのですが、警告時には黄色で表示されるようにしました。

よいです。

スタミナ不足なのにワークしてしまう

これは以前に「自動カウントダウンでのワークでもスタミナを消費する」という変更をした結果です。

これについては、ワーク時のスタミナ消費を取得する API を追加して使おうと思います。
装備品でワーク時のスタミナ消費が減ることがあるのですが、それは考慮しないことにします。そういえば、装備アイテムの効果を取得する API もないですね。後で考えます。

API の追加はそこそこ大変なので、次までにやっておきます。

まとめと今後の予定

今回はチュートリアル1章の見直しと修正を行いました。いろいろと気付いた点を修正できて大変よいです。

次回はチュートリアル2章の見直しをしていきます。2章は各ステージ冒頭の会話テキストの作成がまだだし、ダンジョン探索時の攻撃エフェクトも未作成なので作っていきます。がんばります。

竹林ソフト 2024/01/19 20:00

NPC をコーディングして領地経営するゲーム開発(装備の効果を表示する)

前回の記事 ではチュートリアル相当のキャンペーン1章を見直していくつか修正しました。
今回は、アイテム効果を表示するあたりに着手します。

やること

今はアイテムについて「名前」「どこの建物で作れるか」「フレーバーテキスト」を表示できます。ただ「防御力」や「~でワークしたときのスタミナ消費 ~%」といった表示はないため、プレイヤーがアイテムの効果を確認できません。今回は、このあたりに着手します。

↓ 現状のアイテム表示の例

処理すべきアイテムの効果はいくつかあるのですが、とりあえず「防御力」が表示されるようにします。

防御力のパラメータ表示

表示できるようにしました。

よいと思います。文字の色はそのうち変更します。

「(建物)でのワーク時のスタミナ減少(値)%」のパラメータ表示

これも表示できるようにしました。表示すべきパラメータが建物と値の2つになっただけです。

このゲームは多言語対応しているので、以下のような翻訳用テキストを言語ごとに用意しています。

Items.Parameter.WorkStaminaRatios, '{0}でのワーク時スタミナコスト {1}%'

よいです。
ただ、パラメータが複数あると現状のアイテム表示の枠に収まらなさそうなのは、どうするか悩ましいです。

まとめと今後の予定

とりあえずパラメータの効果が表示できるようにしました。今後、現状の枠組みで対処できないアイテム効果を追加したらそのときはまた同様に処理しようと思います。
次回は、チュートリアル1、2章のステージをプレイしての気付きの書き出していこうと思います。がんばります。

竹林ソフト 2024/01/12 20:00

NPC をコーディングして領地経営するゲーム開発(1章をプレイして修正点を列挙していく)

装備品と称号の実装が終わったので、通してプレイして問題点を列挙してみます。
本当は誰かがプレイしているのを観察するのがよいのですが、とりあえず自分でやります。

ゲームプレイ

ゲーム処理が始まるまで

通してプレイして、気付きを列挙していきます。

↓ 実際にプレイするステージを選ぶパネル

  • 気付き
    • ステージ選択のパネルを表示したら難易度のパネルを半透明の表示対象にする。
    • マウスオーバーしたボタンの色をもっと変えてもいいと思う。マウスカーソルが溶け込む色ではないので現状のままでもいい。

↓ フェードアウト、インの次の表示

  • 気付き
    • 何度でも書くけど、この出だしでいいの? 説明を放り投げすぎじゃない?
    • 領主の発言にも見えてしまうので、領主の表示を薄くするとか? ただ、領主は話さないので薄暗くしてもよくわからなさそう。

一応、妖精を上下に移動させたりしているのですが、画面下部にメッセージパネルが表示されて視線が画面の左下に移動すると右中央で上下に揺れる妖精に気付きにくいです。
これについては、セリフごとに妖精を上下させてみました。(修正前は数回ごとに1回の上下)

ここまでの気付きを修正して再確認したところ、妖精がメッセージごとに上下するのは少し目障りにも思ったのですが、やんちゃな妖精と思えてきたので とりあえずこれでいきます。

ゲームプレイの様子

↓ 最初はコードを書かかない見るだけのステージです。

  • 気付き
    • UI がシンプルすぎる。華やかでないというか、遊びがないというか。
    • 背景画像が単色でシンプル過ぎる。

どうすっかな、これ。
見た目の華やかさで売るようなゲームじゃないというか、コーディングするゲームは買う人しか買わないでしょ、というのもあってこれでいい気もします。また気になったら再考します。

ゲームプレイ後

  • 気付き
    • チャート表示はこの画面でも行えるようにする。
    • 他人との比較をできる機能を作った方がいい気もするけど、私の好みじゃないので作らなくていい。

チャートについては変更しようとしたのですが、このクリア表示の際にチャートを表示すると「次へ」ボタンの位置も調整しないといけないし、思ったよりも煩雑になるので現状維持でよいことにしました。

農民に麦わら帽子を作らせて装備させてみる

プレイしての修正作業とは異なるのですが、少し前に麦わら帽子の効果を実装したので、その動作を確認してみます。

確認したところ、そもそも畑でワークしたときのスタミナ消費が少ないのに気付いたので修正しました。4 減ってほしいのに 4/60 しか減っていませんでした。
他にもいろいろ修正して、麦わら帽子を装備していると消費スタミナが減るようにしました。「テストされてないコードは動かないコード」という格言を思い出しました。
ともあれ、動作するようになりました。よいです。

髪型によっては麦わら帽子を貫通するのは気付かなかったことにします。

まとめと今後の予定

主にゲームシーンを見直して修正し、スタミナ消費を減らす装備の処理を修正しました。よいです。

次回は1章の残りステージの動作確認をして、2章のダンジョン探索まわりの気付きの列挙に着手したいです。がんばります。

竹林ソフト 2024/01/05 20:00

NPC をコーディングして領地経営するゲーム開発(テストプレイと雑多なタスクへの着手)

「称号」や「装備の特殊能力」といったゲームの最低限の要素は実装したので、今後の予定を書き出して着手していきます。

やりたいこと

貯め込んだチケットを片付ける

実装したいこと等をチケット管理しているのですが、総チケット数と完了チケット数の差、つまり終わってないチケットが 200 個くらいあります。

終わってないチケットが多いと見通しが悪いのと、気持ちがうんざりするので着手して片付けたり、やらないと決めたりしたいです。

プレイして問題や改善点を探していく

本当に問題点の洗い出しをしたいのであれば初見プレイヤーがプレイするのを Discord 等で画面共有して観察するのがよいのですが、それはまた後でやることにして自分でプレイし直していきます。

プレイして「これ、わかりにくい」とか「ここ楽しくないな」とかを改善するためのチケットを追加していく作業です。

未実装の機能に着手する

カスタムプレイをするための機能とか、作ったステージを共有する機能とかの実装がまだなので、それらにも着手したいです。
これらは Early Access 開始後での実装でもいいとは思います。ただ私みたいに宣伝しないタイプだと Steam の Early Access 開始は正式販売とほぼ同義だと思っているので、普通にプレイするときに使う機能は実装を終わらせておきたいです。

あと、チュートリアル用ステージの開幕直後の妖精さんとの会話は、必須なのに未実装なのでこれも着手したいと思っています。

やったこと

テストプレイしての気付き

ビルドして気付いた点を列挙しました。これから起動しようとするだけで気持ち悪くなるくらいには繰り返しテストプレイをしていく予定です。

テストプレイしての気付き

  • タイトル画面が地味
    • 背景のマップを大きくして常にスクロールさせるとか?
  • カーソルがホバーしているメニューボタン横にアイコンが表示されてもいいのでは?
  • 「カスタマイズ」というボタン名だと「領主の見た目のカスタマイズ」というのが伝わらない。
    • "Edit Appearance", 「外観の編集」の方がよさそう。
  • 変更履歴、クレジット表示のパネルがホイールでスクロールしない。
    • 以前に気付いてそのままになっている。(優先度は高くない)

  • 設定パネル
    • 曲と効果音のスライダーはホイール操作でも動作してほしい。(しなくていい)
    • 「プロジェクト」よりは「コードの保存フォルダ」の方がよさそう。(もしくはプロジェクトフォルダ)
    • 「エディタ」の文字だけ太く見える。

  • 領主のカスタマイズ
    • サイコロボタンにマウスオーバーしたときに「ランダムに変更する」と Tooltip 表示する。
    • 「戻る」ボタンのクリック音がない。

  • ステージ選択
    • 難易度のパネルがいかにも「後から追加しました」になっててダサい。

上記の気付きを修正した

変更履歴とクレジットのパネルがマウスホイールでスクロールしないの以外は修正しました。よいです。

ビルドに不要な ttf, otf を検出するスクリプトを作成した

Python でやっつけで作成しました。

import os

path = os.path.join(os.getenv('APPDATA'), '..\\Local\\Unity\\Editor\\Editor.log')

with open(path, encoding='utf-8') as f:
    lines = f.readlines()
    lines = [line.strip() for line in lines]

    otf_lines = [line for line in lines if '.otf' in line]
    for line in otf_lines:
        print(line)

    ttf_lines = [line for line in lines if '.ttf' in line]
    for line in ttf_lines:
        print(line)

ただ、配布パッケージのサイズを気にするなら、アセットクリーナー系のツールでどうこうした方がよいかもです。

まとめと今後の予定

今後の予定を確認して、ゲームのテストプレイをして気付きを修正しました。
次回はステージ選択以降のゲームまわりのテストを行いつつ、未着手の要素にも手を付けたいです。がんばります。

竹林ソフト 2023/12/29 20:00

NPC をコーディングして領地経営するゲーム開発(装備品の効果の実装)

装備したアイテムの効果の実装方法を検討してから実装していきます。

やること

現状では装備品はダンジョン探索での「攻撃力」「防御力」しか動作しません。
追加で実装したい例として

  • 麦わら帽子: 農作業でスタミナが減りにくくなる。
  • 高級なフライパン: 運が上がる。(運によって仕事時間が減ることがある)

とかです。
あと、称号は特殊な装備品として扱う予定なので、称号で実現したい効果もどう扱うか決めます。

称号で実現したいことの例

  • 能力値アップ
  • 特定の仕事でスタミナが減りにくくなる
  • 特定のワークでのみ能力値が上がる
  • ダンジョン探索でのスキルよりの特殊能力(未定)

しかしまぁ、実現したい機能はその処理を行う箇所で「ところでこの属性がある装備してる?」みたいな泥臭い実装を追加する予定です。

やったこと

とりあえず麦わら帽子に「畑でのスタミナ消費が 0.75 倍になる」というパラメータ定義をしました。

StrawHat: { StaminaRatio.CropField: 0.75 }

そしてこの倍率をワーク時のスタミナ計算のときに利用するようにしました。よいです。
同様に、王冠にパラメータ上昇の記述を行ってみて値が変化しているのを確認しました。

Crown: { AddInt: 10 }

↓ 賢さが 110 になっている。(後で「賢さ」表記から「知力」表記にしました)

まだ未実装ですが、特定のワーク時に能力が上がるときの記述は

AddDex.Kitchen: 30

にしようと思います。
ここまでの実装で、いつもよりワークが捗る装備とかを定義できるようになりました。

体験版の不具合修正

あと、このゲームの Steam 掲示板に「体験版を起動しても動作しないんだけど」的な書き込みがあったのに2週間くらい気付きませんでした。「この掲示板を購読する」にチェックを入れてなかったせいです。よくないですね…
問題自体は再現させて修正しました。

まとめと今後の予定

装備アイテムの少し特殊な効果まわりを実装しました。
次回は、ダンジョン探索のときにどういう特殊能力があると楽しそうかを考えて実装方法を検討しようと思います。がんばります。

4 5 6 7 8 9 10

月別アーカイブ

限定特典から探す

記事を検索