-
ゲ製作技術
-
既存のTCGの対戦ソフトを作りたい [無断転載禁止]©2ch.net
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
あるTCGの構築済みデッキだけを使って対戦するソフトを作りたいんだけど、カードの効果をどうやって解釈させるのか、いいアイデアが無いでち。
手札のカードを一枚選んで、とかだったらカードを選ぶっていうクラスを作ってそれを継承して拡張していく、とかでいいんかな。
当方Java暦1年のはなくそです。いいアイデアあったら教えてくれると嬉しいです。 - コメントを投稿する
-
カードと置き場を結びつけて個々の状態クラス
場の情報とプレイヤーの状態クラス
これらをセッションとしてまとめて進行管理クラスで操作
後は状態を書き換えるルールとカードの紐付け
リプレイ機能も作るなら1手毎にアクションクラスも用意 -
詳しいね
作ったことあるの? -
UnityのアセットにTCG作れる奴あったな
改造すれば十分使えそうだが -
>>2
ありがとうございます!大枠はイメージできてきました
状態はEvent, EventListenerとか使えば検知できそうですかね
あと悩んでるのがカードの効果の解釈です…
テキストを解釈するインタプリタ?を作る流れが凄く怪しいです
とにかくいっぱい効果を細分化したクラスを作って組み合わせるとかですか?
頓珍漢なこと言ってる… -
>テキストを解釈するインタプリタ?を作る
自然言語で書かれたルールをそのまま取り込むと言ってる?
正気か? Java歴1年とやらが10年になっても無理そうだな -
そんなことができたらどんな企業にも入り放題、下手したら歴史に名前が残るぞ
カードの効果はプログラムではなく人間が解釈するんだよ -
確かに考えが愚かでしたね…
カードの枚数が多いのでインタプリタ通すのかと思い込んでました
カード一枚一枚効果を設定してみます
なんとなく方針が立ってきました。
ありがとうございます -
具体的にどのTCGの対戦ソフトか知らんけど
だいたい年間400〜500種類ぐらいカード出るんだし
一枚一枚やってたらきりがないんじゃないの
それに今時のゲームではそれぞれ
機能するタイミングの違う能力が2つ3つついてるのもおかしくないけど
それを1枚のカードでまとめるって難だし
能力別にまとめとくほうが後々の労力削れそう -
カード増えるごとに追加実装とかアホくさくてやってられないよなぁ
機能は小さな単位に分割し、汎化して実装することでできるだけ使い回す方向で組むわ
例えば「墓地ある2体の〇〇をゲームから取り除く事で、相手のフィールドにある攻撃表示のモンスター1体を墓地に送る」というカードがあるならば
a.墓地にある2体の〇〇を選び出す機能
b.対象のカードをゲームから取り除く機能
c.相手フィールドから攻撃表示のモンスターを選び出す機能
d.対象のカードを墓地に送る機能
というように機能を分解して作っておいてそれをカードのデータを元にコンポジットする
カードは基本データに加えてこうした能力のリストを保持する形にするかな
ちなみに前述のaとcは<場所>にある<条件>を満たすカードを選ぶ機能として同一の実装でいいし、bとdは指定したカードを<場所>に送る機能として同一であると言える
このように細分化した機能を扱える簡単なインタプリタを作っておけばカードが増えてもルールが増えない限りはだいたいデータの追加だけで済む
ついでにカードのルールテキストが定まった文法に従っているなら、ルールテキストからこれらの処理を自動的に構築するパーサーとビルダークラスを作っておけばさらに手間いらずになる -
>>12
効果の設定に際して挙げられたような細かい効果はやはり作成に迫られたので作りました。
テキストのパーサーとビルダーが出来れば凄く楽になりそうですね…。
テキストの書式はある程度定まっていますが、それでも安定して解釈出来なかったので、とりあえずは手動で細分化した効果を組み合わせて設定してます。
それより何よりGUIを作るのが面倒で凄く時間が掛かってしまいますな(;´Д`) -
簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
B0GJMFZ6TE
↑今すぐ読める無料コミック大量配信中!↑