投稿記事

2023年 04月の記事 (5)

LRIKI 2023/04/21 23:27

[不思議のダンジョンプラグイン] 壺爆弾

投げ当てたら中身が全部衝突するようになりました。

ツクールMZ標準のアニメだとちょっとテンポ悪くなるかな…。

⬜ 容量による最大数の実装
⬜ 容量の増減と、減った時のアイテム消滅
✅ 壁とかに投げ当てて割れた時の実装
✅ モンスターに投げ当てたら中身が全部衝突する
✅ 複数選択
⬜ 壺に壺は入れられないようにする
⬜ 転んで落とした時に確率で割れるようにする
⬜ 🔺アイテム名に容量を表示する

タスクは「アイテム名に容量を表示する」が追加です。今まで気が付かなかったのが不思議ですが。

Skyrim の MOD を勉強してました

MOD を作りたいのではなくて、大規模かつ拡張性のあるゲームシステムアーキテクチャのヒントが無いか探っていました。

  • ゲーム上に存在するあらゆるオブジェクトは "Form" と呼ばれる。
    • 本プラグインだと、Entity に該当する。
    • ただし Form はクエスト、魔法効果、天候などもっと幅が広い。
  • Form にはスクリプトをくっつけることで動きを拡張できる。
    • 本プラグインだと Behavior に該当する。
  • 本を読んだ、攻撃が当たった、などの通知を "Event" と呼ぶ。Event の中身をコーディングすることで、そのタイミングで何をするのか制御できる。
    • 本プラグインだと Command に該当する。
  • Form は大きく Base と Ref の2種類あり、Base は設計図、Ref はゲーム上に登場している実態を表すようだ。
    • RefID は、本プラグインの具体的なクラス名だとそれぞれ DEntity, LEntity に該当する。
  • ID は整数値。Base と Ref それぞれ別の ID を持つ。
    • BaseID はツクールでいう「アイテムID(アイテム名の左の0001とか)」に該当する。
    • RefID は本プラグインだと、EntityID に該当する。

ひとまず、最低限必要なものは既に揃ってるって感じでいいかな。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

LRIKI 2023/04/19 21:46

進捗: 壺アイテム実装中(割れ)

壁に投げ当てると割れるようになりました。保存の壺以外はこうしないとアイテム取り出せないですね。

⬜ 容量による最大数の実装
⬜ 容量の増減と、減った時のアイテム消滅
✅ 壁とかに投げ当てて割れた時の実装
⬜ モンスターに投げ当てたら中身が全部衝突する
✅ 複数選択
⬜ 壺に壺は入れられないようにする
⬜ 転んで落とした時に確率で割れるようにする

転んで落とした時のタスク1つ追加です。1つ完了すると1つ増えてるな…。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

LRIKI 2023/04/17 22:57

進捗: 壺アイテム実装中

保存の壺

壺アイテムへの出し入れで、アイテムを複数選択できるようにしました。

  • ⬜ 容量による最大数の実装
  • ⬜ 容量の増減と、減った時のアイテム消滅
  • ⬜ 壁とかに投げ当てて割れた時の実装
  • ⬜ モンスターに投げ当てたら中身が全部衝突する
  • ✅ 複数選択
  • ⬜ 壺に壺は入れられないようにする

アイテム名の左上に選択番号が出てるけどちょっと見辛いかな…?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

LRIKI 2023/04/06 22:56

進捗: 壺アイテム実装中

保存の壺

入れたり出したりできるようになりました。

残りタスクはこんな感じ。

  • 容量による最大数の実装
  • 容量の増減と、減った時のアイテム消滅
  • 壁とかに投げ当てて割れた時の実装
  • モンスターに投げ当てたら中身が全部衝突する
  • 複数選択

実装小話

↑の機能も愚直に実装できないのが悩ましいところで、というのもこのシステムは何かしらの状態の更新(パラメータの増減やアイテム取得など)が基本的にコマンドキューを使った非同期処理で実行されます。

モンスターにアイテムを投げ当てるときも、まず相手に「あなたに衝突してもいいですか?」みたいなお伺いを立てるコマンドを投げて、OKだったらさらにダメージ計算などの効果発動コマンドを投げて、プレイヤーは結果(経験値など)を受け取ります。いわゆるハンドシェイクみたいな仕組みです。

なんでこんなことしてるのかというと、モンスター側の特殊能力の都合で効果発動がリジェクトされる可能性があるためです。マゼルン系モンスターは投げ当てられたアイテム食べるし、火炎入道は燃やして消滅させます。カッパはきっと投げ返してきます。

もし投げる側(プレイヤー)が相手の性質をすべて把握していればハンドシェイクなんて面倒なことしなくて済むのですが、そうするとプレイヤー側のプログラムがとんでもなく多くなりますし、システムを拡張するのが難しくなります。

なので LRIKI さんははこの複雑さと戦ってください。お前が始めた物語だろう。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

LRIKI 2023/04/03 22:54

進捗: 壺アイテム実装開始

壺アイテム

データベースにアイテムデータだけ登録してあった壺たちの実装を始めました。

直近の目標は、

  • 保存の壺
  • 識別の壺
  • 回復の壺 (押すやつ)
  • 変化の壺

あたりです。

合成の壺は合成システムと一緒に考えないとならないから、まずは壺をいくつか作って、壺システムを安定稼働させてからになりそうです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索