khayashi4337 / IceSpearTD

「氷槍の塔」は、古代から伝わる魔法の力を守る秘境に位置する、伝説のタワーディフェンスゲームです。プレイヤーは「氷槍の塔」を守る守護者として、次々と押し寄せる敵の侵入を阻止する役割を果たします。
Apache License 2.0
0 stars 0 forks source link

合成機能の改良・拡張などを考えよう #67

Open Niri-1214 opened 3 weeks ago

Niri-1214 commented 3 weeks ago

ここに合成機能をどうするかを決めておく。

今考えてるいろんなアイデアは、

1.合成の段階を四~五段階ぐらいに増やしたい。  さすがに2段階だけでは足りないよね。   2.合成四段階目とかぐらいでは、100種類ぐらいがほしい。  多すぎもよくないけど、少ないとしょぼいし、面白みに欠けるから   3.タワーの合成段階に対して強い奴(オーバースペック)は、次の合成では弱体化させる。  一つ強すぎるやつが存在すると、バランスが崩壊しちゃうから

4.タワーごとに内部Tierをつけておきたい。  ゲーム内とは関係なく別で保管しておくやつで、バランス調整として考えるやつ。   5.合成段階が上がるごとに何かに特化させたい。  万能があるとみんなそれ取るからなのと、属性ごとに指向性が生まれるから。   6.特殊タワーの制作   始まりが四種類だけだから、どうしても偏ってしまう。考えてみたけど、スキルと合わせることが一番いいかも。   7.スキルによる指向性の付加  上の5番とか6番の続きだけど「NovaDrift」とかも、スキルによって、どんどんビルドが固まっていくよね。どんなスキルにするかといえば、例えば、火属性タワーは燃焼効果を持つとか、氷属性は減速効果を持つとか。   8.第二世代(合成一回目)の修正  これは今のやつらがあんまりよくなかったし、今後の合成ツリーの決定に支障をきたしそうだったから。改めて作るものは、仮で「水(water)・浄化(purification)・錆(rust)・植物(plant)・鉄(iron)・砂(dust)」

9.第二世代(合成一回目)の属性化  第一世代の「火・氷・風・石」はもちろん属性として主軸にするけど、第二世代も主軸となる属性にしてしまったほうがいいかも。そのためにも上の8番のやつを適応する必要がある。  

khayashi4337 commented 2 weeks ago

クラス図

classDiagram
    class Tower {
        -level : TowerLevel
        -name : string
        -attributes : Attribute[]
        -parent1 : Tower
        -parent2 : Tower
        -tokkas : Tokka[]
        -gameBalanceTier : int
    }
    class Tokka {
        -name : string
        -description : string
    }
    class 弾の大きさTokka
    class 連射速度Tokka
    class リチャージTokka
    Tokka <|-- 弾の大きさTokka
    Tokka <|-- 連射速度Tokka
    Tokka <|-- リチャージTokka
    class Attribute {
        <<enumeration>>
        FIRE
        ICE
        WIND
        STONE
        WATER
        PURIFICATION
        RUST
        PLANT
        IRON
        DUST
    }
    class TowerLevel {
        <<enumeration>>
        LEVEL1
        LEVEL2
        LEVEL3
        LEVEL4
        LEVEL5
    }
khayashi4337 commented 2 weeks ago

文哉君のアイデアでは、合成レベル2から属性が増えることで、より戦略の幅が広がるように設計されていますね!

レベル2

WATER:水 PURIFICATION:浄化 RUST:錆 PLANT:植物 IRON:鉄 DUST:砂

レベル2で登場する属性「WATER」「PURIFICATION」「RUST」「PLANT」「IRON」「DUST」をどのようにゲームに組み込むか、いくつか具体例を考えてみましょう。

1. 新属性タワーの登場

2. 属性による相性

3. Tokkaとの組み合わせ

これらの要素を組み合わせることで、戦略性豊かなタワーディフェンスゲームが実現できますね!

例えば、「WATER」属性を持つ敵が出現するステージでは、「FIRE」属性のタワーだけでは苦戦を強いられます。 そこで、プレイヤーは「ICE」属性のタワーを配置したり、「WATER」属性に強いTokkaを組み合わせたりすることで、攻略の糸口を見つける必要がある、といった具合です。

khayashi4337 commented 2 weeks ago

タワー合成システム基本設計

1. 合成レベルの構造

2. 属性システム

2.1 基本属性(レベル1)

  1. FIRE(火)
  2. ICE(氷)
  3. WIND(風)
  4. STONE(石)

2.2 拡張属性(レベル2以降)

  1. WATER(水)
  2. PURIFICATION(浄化)
  3. RUST(錆)
  4. PLANT(植物)
  5. IRON(鉄)
  6. DUST(砂)

2.3 属性相性表

攻撃\防御 FIRE ICE WIND STONE WATER PURIFICATION RUST PLANT IRON DUST
FIRE 1.0 1.5 1.0 0.8 0.5 1.0 1.2 1.5 0.8 1.2
ICE 0.5 1.0 1.2 1.0 1.5 1.0 0.8 1.0 1.2 0.8
WIND 1.0 0.8 1.0 1.2 1.2 1.5 1.5 0.8 0.5 1.0
STONE 1.2 1.0 0.8 1.0 0.8 0.5 1.0 1.2 1.5 1.5
WATER 1.5 0.5 0.8 1.2 1.0 1.2 1.5 1.0 0.8 0.5
PURIFICATION 1.0 1.0 0.5 1.5 0.8 1.0 1.5 1.2 1.0 0.8
RUST 0.8 1.2 0.5 1.0 0.5 0.5 1.0 0.8 1.5 1.2
PLANT 0.5 1.0 1.2 0.8 1.0 0.8 1.2 1.0 1.0 1.5
IRON 1.2 0.8 1.5 0.5 1.2 1.0 0.5 1.0 1.0 0.8
DUST 0.8 1.2 1.0 0.5 1.5 1.2 0.8 0.5 1.2 1.0

3. Tokkaシステム

3.1 基本Tokka

  1. 弾の大きさTokka
  2. 連射速度Tokka
  3. リチャージTokka

3.2 拡張Tokka(レベル3以降で登場)

  1. 爆発Tokka
  2. フリーズTokka
  3. ライフ吸収Tokka
  4. 貫通Tokka
  5. 分裂Tokka
  6. 毒Tokka
  7. 範囲拡大Tokka

4. タワー設計

4.1 タワークラス構造

class Tower {
    level: TowerLevel;
    name: string;
    attributes: Attribute[];
    parent1: Tower | null;
    parent2: Tower | null;
    tokkas: Tokka[];
    gameBalanceTier: number;

    // タワーの基本性能
    damage: number;
    range: number;
    attackSpeed: number;
    specialEffect: SpecialEffect | null;

    // メソッド
    attack(enemy: Enemy): void;
    applyTokka(tokka: Tokka): void;
    upgrade(): void;
}

4.2 タワー合成ルール

  1. 同じ属性のタワーを合成すると、基本性能が向上する。
  2. 異なる属性のタワーを合成すると、新たな能力を持つタワーが生まれる。
  3. レベル2以降のタワーは、最大2つの属性を持つことができる。
  4. 合成時に、親タワーのTokkaを1つ引き継ぐことができる。
  5. レベル3以降では、新たなTokkaを付与できる確率が発生する。

4.3 タワーバランス調整

5. 合成例

5.1 レベル2タワー合成例

  1. 【火】 + 【火】 = 【強化火】タワー

    • 効果: 基本攻撃力1.5倍、炎上効果付与確率上昇
  2. 【氷】 + 【風】 = 【氷霧】タワー

    • 効果: 広範囲の敵の移動速度を低下させる
  3. 【石】 + 【風】 = 【砂嵐】タワー

    • 効果: 範囲攻撃、敵の命中率低下

5.2 レベル3タワー合成例

  1. 【強化火】 + 【砂嵐】 = 【溶岩】タワー

    • 効果: 範囲攻撃、地形変化(通過不可領域作成)
  2. 【氷霧】 + 【水】 = 【絶対零度】タワー

    • 効果: 極低確率で敵を即死させる氷属性攻撃
  3. 【石】 + 【錆】 = 【腐食】タワー

    • 効果: 敵の防御力を継続的に低下させる

6. 実装上の注意点

  1. タワーの組み合わせ数が多いため、効率的なデータ構造を使用する。
  2. 新たなタワーやTokkaの追加が容易になるよう、拡張性を考慮した設計にする。
  3. バランス調整のため、各タワーの性能データを外部ファイル(JSON等)で管理する。
  4. プレイヤーの創造性を促すため、タワーの組み合わせ結果を事前に全て開示しない。
  5. 合成システムの複雑さに応じて、ゲーム内チュートリアルや説明を充実させる。
Niri-1214 commented 2 weeks ago

combination-structure.md 合成表の途中

Niri-1214 commented 2 weeks ago

合成ツリーはいろいろ悩んだ結果 LV1、LV2、LV3の三段階のみとすることにする。 代わりに合成のコストをとんでもなく重くする(とんでもなくというよりか、回数制限があってWave5~とかにする感じ) (なんかの素材とかでもいいかも←これは案なので下手に入れない事)(AIに仕様書書かせるとなんか全部入れたがるから) タワーは、スキルによって強化される感じ(スキルの”効果”のイメージはNovaDrift風の感じ)(Roundsのカードも参考になるかも)(大事なのはスキルのシステムじゃなくて効果ってとこ)(この二つどっちも割と似てるからね)

タワーごとの特殊効果については、 スキルによって効果が付与されるようにしたい つまりスキルがなかったらただの弱い塔 あとスキルの選択肢三つしかないし、なんかしょぼいグラフィックだから もっと増やしたほうがいいかも(NovaDriftとかめっちゃ多いっしょ) (グラフィックは後回しで) あとスキルは今あるタワーに関連性のあるものだけを表示するようにしたい (全タワー分は多すぎるからね)