FEの戦闘システムをシュミレーションする

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

FEの戦闘システムをシュミレーションする

投稿記事 by taketoshi » 12年前

FEのように先行後攻があり、お互いが殴りあうシステムをCUIでシュミレーションした。
C言語を始めたころ「DOS窓相手にカチカチやってて何の役に立つんだよ!!」って思っていたけど
こーいうときに役に立つんだよね。

今のところスキル補正、パラメータ補正が何もない元祖FEの戦闘処理を再現した。
まだ実装する補正値を決めていないから、ヒットポイントの減算処理を施したら試しに実装かな?

再帰処理を始めて自分で考えて実装してみました。同じこと繰り返すには便利だね。
► スポイラーを表示

CODE:

名前:プレイヤー HP [78/78]
力:[24] 魔力:[2] 技:[4] 幸運:[20] 速さ:[27] 守備力:[11]
威力:[25] 重さ:[3] 武器命中率:[94] 武器種別:[槍]
攻撃力:[49] 命中率:[102] 回避率:[74] 攻撃速度:[24]

名前:エネミィ HP [45/45]
力:[24] 魔力:[21] 技:[9] 幸運:[10] 速さ:[16] 守備力:[8]
威力:[21] 重さ:[16] 武器命中率:[90] 武器種別:[斧]
攻撃力:[45] 命中率:[108] 回避率:[42] 攻撃速度:[0]

先行命中率 = [60] , 後攻命中率 = [34]
プレイヤーの攻撃
41のダメージを与えた
攻撃ミス 取得した乱数の値 = 94
プレイヤーの攻撃
41のダメージを与えた
続行するには何かキーを押してください . . .


jay
記事: 314
登録日時: 14年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by jay » 12年前

FEの戦闘と言えば「勇者の~」の名を冠した武器を使っての4連攻撃ですよねw
あとは3すくみとか、遠距離攻撃とか、レイピアでの騎馬兵への特攻とかetc...

果たしてどこまでFEに近づいて行くのか、そしてtaketoshiさんオリジナルの要素が入って行くのか
楽しみですねw

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

RE: FEの戦闘システムをシュミレーションする

投稿記事 by taketoshi » 12年前

>>jayさん

勇者のーとか。連続スキルーとかはまだ未実装なんです。
でもずーっと実装の方法を考えており、先ほどトイレで用を足しているときに実装方法を思いつきました。
アイディアってなんでこんな時に閃くんでしょうか。

三すくみはこの日記を投稿した後実装しました。
ググったらgoogle先生が教えてくれました。じゃんけんルーチンって、あるんですねぇ~。
基本的な戦闘システムを実装した後に、キャラクターにアイテムを持たせて戦わせてみたいっ!

日々進んでいく感じが楽しいです。
► スポイラーを表示

アバター
海Sea
記事: 102
登録日時: 14年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by 海Sea » 12年前

戦闘シュミレーションも面白いですね!
少しずつ壁を乗り越えていくと、できることも増えるので、
これからもっとゲーム制作の幅が広がると思います。
このCUIシュミレーションが実際のゲームでどうなるか、
凄く楽しみです^^

アバター
ぱにしん
記事: 58
登録日時: 13年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by ぱにしん » 12年前

ん、これだとバスター系はどう表現するんでしょう?

それにしてもFEの戦闘は色々な要素追加されていってますよね。
指揮とか支援とか波動スキルとか、あとはダブルとか。(覚醒未プレイですが^^;)
その辺までFEに近づけるとなるとかなり大変でしょうけども(前三つはパラメータ取得時の問題かな)、頑張ってください。

完成楽しみに待ってますよ!

YuO
記事: 947
登録日時: 14年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by YuO » 12年前

これだと,最初の一撃で倒した場合でも反撃が来ますし,追撃前の反撃で倒された場合でも反撃できてしまいます。
そちらの処理が先かなぁ,と思います。
あと,武器種別はenum使った方が分かり易いかと。

FE系なら,Presentation-Domain Separationができると思いますので,Domain部分は分離してしまった方がよいでしょうね。
SRPGのシステム自体とそれをどう見せるかは別の話にできる,ということです。
オフトピック
mixC++勉強会@TokyoでPDSの基礎であるMVCのさわりを発表しました。
このスライドの末尾のリンクから,ちゃんと説明してあるサイトへ飛べますので,PDSというアーキテクチャについて調べてみてもよいかと思います。

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: FEの戦闘システムをシュミレーションする

投稿記事 by taketoshi » 12年前

>>ぱにしんさん

バスター系はビジュアルや装備変数は剣だけど、三すくみ定数が槍をもった剣を作ればよいかと考えています。
本当ならば三すくみ定数=装備変数としたいんですけどしょうがないかな?

>>YuOさん
残りヒットポイント判定は実装済みでゼロになったとき戦闘終了されるよう組みなおしました。
またアドバイスいただいてenum型を採用してみました。今まであまり使った来なかったけど、こりゃ便利だ。

ご提示いただいたURLに飛びましたがpptの最初のページが開いてからブラウザがフリーズしてしまいます。
相当重いのかな。PDSって何だろ。ちょっとググりましたが、理解できるか難しいです。

YuO
記事: 947
登録日時: 14年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by YuO » 12年前

PowerPoint WebAppsの他に,Slideshareへのリンクを追加しました。
こっちだったら見られるのではないかな,と思います。

PDSはPresentation-Domain Separationの略です。
ぶっちゃければ,UIとそれ以外を分離しよう,ということになります。
Martin Fowler's Bliki in Japanese - プレゼンテーションとドメインの分離
などが基本的な資料でしょうか。

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: FEの戦闘システムをシュミレーションする

投稿記事 by taketoshi » 12年前

>>YuOさん

わざわざありがとうございます
リンク先を拝見させて頂きました。

正直、PPTを見ただけじゃ理解は出来ませんでした。
んで、ちょっと今までの知識と相対して教えてほしいのですが

ゲームの勉強を始めたときに「計算フェーズ」と「描写フェーズ」は分離したほうがいい。と教えてもらいました。
そこから、計算フェーズと描写フェーズは関数として分けて実装しているのですが・・・・。
PDSはそういった事意外に、何かほかの要素を取り入れた考え方なのでしょうか?

YuO
記事: 947
登録日時: 14年前

Re: FEの戦闘システムをシュミレーションする

投稿記事 by YuO » 12年前

taketoshi さんが書きました:ゲームの勉強を始めたときに「計算フェーズ」と「描写フェーズ」は分離したほうがいい。と教えてもらいました。
そこから、計算フェーズと描写フェーズは関数として分けて実装しているのですが・・・・。
PDSはそういった事意外に、何かほかの要素を取り入れた考え方なのでしょうか?
基本的な考え方はそれでよいと思います。
  • 計算は計算で完結しておく
  • 描画は計算の結果を描画するのみに留める
とすれば,自然とPDSが達成されます。

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: FEの戦闘システムをシュミレーションする

投稿記事 by taketoshi » 12年前

>>YuOさん

解説ありがとうございます。
今書いているソースコードは計算と描画を意識して書いているのでこのまま進めていきます。

ただ、クラス設計なんかはすでに破たんしているので、ある程度動くようになったら最初から書き直さないとだめだと思っています。