投稿記事

タワーディフェンスの記事 (61)

satofumi 2022/09/06 20:00

NPC をコーディングして領地運営するゲーム開発(どういうゲームなのか)

今回は、どういうゲームを作っていて、それがどう楽しいか(予定)についての記事です。

ゲームの流れ

Lua 言語でコーディングをして NPC の行動を自動化するゲームなので、当然のようにコーディングを行います。そして、そのコーディングの結果であるキャラクターの動きを見ながら、期待する動作になるまでコーディング内容を修正していきます。

流れをスクリーンショットで説明すると

チュートリアルでは未完成のコードが用意されているのでそれを動かしてみて、

どういう記述が不足しているか理解した上でコーディングして、

期待する動作になるまで API やサンプルコードを読み直してコードを修正する。


という流れになります。

どう楽しいのか

簡単に書くと、ゲームにおいて楽しさにつなががる「今はこういう状況だ(現状把握)、こうすれば良いはずだ(計画)、やってみよう!(実行)、できた!(報酬)」のサイクルをコーディングを通して提供しようとしています。

とはいえ、コードが適切に動作するまでに理解することは多いため、人によっては楽しさを感じる前にコーディングを苦痛に思ってしまうかもしれません。そうならないように、適切な難易度上昇のチュートリアルを用意しようと考えています。

ゲームで提供する必要がある機能

コーディングするとキャラクターがどう動くのかは次回の記事にまとめようと思います。
ただ、その仕組みの実装を別にしても

  • 記述したコードに従って動くゲーム画面
  • コーディングするためのエディタ
  • Lua 言語についてのドキュメント
  • 提供する API についてのドキュメント
  • 適切な難易度上昇のチュートリアルステージ
  • 記述したコードにエラーがあったときの適切な対処

などを実装する必要があり、正直大変です。初心者向けのコーディング講座の資料を書くのよりも、もう少し大変なくらいかなと思います。
このゲームを作っていて「遊ぶ人少ないだろうに、こんなに大変なの割に合わないのでは…」と思いかけることはありますが、なるべく考えないようにして開発しています。

今後の予定

次回は Lua 言語で NPC のどういう行動を制御して領地経営するのかという、ゲームのより具体的な内容について記述していきます。がんばります。

satofumi 2022/08/30 20:00

NPC をコーディングして領地運営するゲーム開発(はじめに)

NPC をコーディングして領地運営するゲームを開発しています。影響を受けたゲームとしては Screeps: WorldAutonauts vs Piratebots, 7 Billion Humans があり、これらのゲームを遊んでいて「コードを直接記述したい」とか「システムや API をもっとシンプルにしたい。私が理解しきれないので」という想いがつのって、ゲーム開発の気分転換として着手しました。

どういうゲームなのか

シンプルなクラフトベース街づくりゲームにおいて、Lua 言語でコーディングした NPC に運搬やクラフトをさせるゲームです。

NPC にコーディングして行うタスク

  • アイテムの収穫
  • アイテムのクラフト
  • パーティを組んで探索する
  • タワーに籠もって防衛する

ゲームサイクル

  • NPC の動作を Lua スクリプトで記述する
  • NPC がコードに従って動作するのを眺める
  • 問題点を理解してコードを修正して再実行する

開発中のゲーム画面


今後の予定

このゲームは自分でも「誰が遊ぶんだこれ」という内容ですが、そこは気にせず開発していきます。
しばらくは、どういうゲームにするかのアイディアや開発予定について週1回のペースで記事投稿します。よろしくお願いします。

satofumi 2021/09/15 20:00

Bonsai Castles 2(その27)

やったこと

敵サイズについての検討


↑FPS 視点で敵が押し寄せる様子を確認したもの。

敵が積み重なって壁を乗り越えてしまうのは「敵サイズが大きすぎるからかも」と思ったのと「それはそれとして敵が大きすぎる」と思ったので小さくしました。


↑修正前(左)、修正後(右)
FPS で見たときには敵は小さくていいんですけど、見下ろし視点のときには敵が大きくないと視認しづらくて悩ましいと思いました。またいつか考えます。

城下町まわりの実装開始


↑Japanese Old Town アセット付属のデモシーンより。

こういう城下町が半自動で生成される仕組みを作っていきます。
今回は建物のサイズ調整をしていました。


次回は「ここは町の区画」と定義したエリアに建物が自動的に配置されるあたりを実装っしたいです。

今後の予定

次は城下町が育つあたりのデモを作成します。がんばります。

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

satofumi 2021/09/13 20:00

Bonsai Castles 2(その26)

Flow Field という仕組みで敵を移動させる仕組みの続きです。

やったこと

Flow Field の仕組みで敵を動かしました。


いい感じです。
ただ、このくらい小さい敵だと、積み重なって段差を乗り越えてしまうのが確認できました。これはこれで楽しそうなのですが、城郭を作るゲームなので敵は人と同じくらいの移動能力にします。
細かい敵の調整はもっとゲーム全体が動作しはじめてからでいいとは思うのですが、とりあえずは、敵の当たり判定を上方向に伸ばすことで積み重ならないようにします。

今後の予定

建物が配置できて敵の移動が作れそうなのもわかったので、次は「城郭を作って、その城郭に敵が攻め寄せてくる」というあたりを目指します。
また、城下町の発展もこのゲームの楽しさを実現する要素なので、城下町が育つあたりも動作デモを作ってみようと思います。がんばります。

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

satofumi 2021/09/06 20:00

Bonsai Castles 2(その25)

敵が押し寄せてくるゲームにしたいので、そのあたりを実装していきます。

やったこと

Flow Field という処理をゲームに取り込もうとしています。Flow Field は「群衆が押し寄せる」のに使われているアルゴリズムです。自分で実装すると大変そうなので、Unity Asset Store で以下のアセットを購入しました。
https://assetstore.unity.com/packages/tools/ai/flowfield-pathfinder-53526?locale=ja-JP#reviews

そして、アセットを使うために付属ドキュメントを読み、とりあえず使い始めてみました。
このアセットを使うためには、
・移動用のタイル準備
・タイルの上をユニットを動かす
という大きく2つの処理があるのですが、移動用のタイル準備をやったものが以下の画像です。


わかりづらいですが、地形の高低差に従って移動用のタイルが生成されています。良い感じです。

今後の予定

次回は、この移動用タイルの上をユニットが移動するあたりを試作しようと思います。がんばります。

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

« 1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索