RPG01

MAGI JAVA -Make a game in Java-
JAVA Game作成講座 020回
戦闘シーン作成


kouza020-1 jarファイル
kouza020-1 ソースコードまるごと

kouza020-2 jarファイル
kouza020-2 ソースコード

kouza020-3 jarファイル
kouza020-3 ソースコード

kouza020-4 jarファイル
kouza020-4 ソースコード

kouza020-5 jarファイル
kouza020-5 ソースコード

アイテム使用、防御の追加
kouza020-6 jarファイル
kouza020-6 ソースコード
ステータスアップ魔法、状態異常、その回復を追加
kouza020-7 jarファイル
kouza020-7 ソースコード


[今回追加したもの]

・戦闘シーン作成中
かなり長い処理になるので、段階的にソースコードと実行ファイルを残していく。
詳細を書くよりも次の段階を先に作りたい。
手抜きで済まないが、まるごとコードを残す。

まず第1段階 20-1

画面を表示し、コマンドを最初の部分だけ選べるようにした。

次の段階では行動を入力できるようにする。
その次は敵の行動を入力させて、実際に行動をさせてみる。

第2段階 20-2

攻撃エフェクト出してダメージを表示させた。
実際にはHPを何もいじってないしダメージ計算もしていない。
こうやって表示される、というだけのサンプル。
敵も無行動で完全スルーしている。

次の段階では敵の行動を入力し、敵も攻撃してくるようにする。
実際のデータをやり取りするのはその次の段階になる。
そこまで辿り着けば戦闘の最低限のレベルは消化できたことになる。

術技を追加したり行動力を消費させたり、
HPなどを常に出して置いたり追加するものは多い。
基本はステータスウィンドウとやることは変わらない。

ドラクエ型の戦闘がなぜかFF型になっているが、基本ノーモーション。
ただエフェクトだけがユニットの上に出る寂しい形で一度作り上げる。

第3段階 20-3

2とあまり変わってないが、敵の行動を追加した。
機械的に殴ってくるだけだが…。
相変わらず実数値はいじっていないので、次の段階でHPを減らす。
1ターンに複数回行動できるシステムをいったん保留にした。
シンプルな一回行動制になったので思考ルーチン作るのが楽…。
いつでも追加できるようにベースはいじっていない。

二回攻撃できるシステムにすると、それ込みのゲームバランスにしなければいけない。
スパロボの精神コマンドがいい例だが、アレ使うの前提のゲームバランスになっている。
だからゲームバランスが破綻しているのだ。
リセット前提じゃないと成立しないのがおかしいし、一発で落ちるのもおかしい。

原点に立ち返る意味で最もシンプルな(楽な)形で一度作り上げることにした。
これをどう味付けして加工するかは使う側の自由。
ダメージ計算式が気に入らなければ修正すると良いし、
もっと派手なアニメにしたければユニットのモーションを追加すればいい。
あまり凝り過ぎると作ってるのが嫌になるので、まずは楽過ぎるくらいでいいのだ。
このレベルの作品に何か月も製作期間を使うべきではない…。

次回は実際にHPを減らして、0になったらユニットを排除してみる。
敵が全部消えたら戦闘終了。次回はここまで作る。
この段階が出来たら戦闘シーンは完成したようなもの…だが、仲間追加してテストをおいおいやる。

次の次の段階で術技の使用を作る。
全体攻撃や回復をできるようにするのだ。
やることは変わらないが、ひと手間増えるのでめんどくさい。

第4段階 20-4

ダメージを与えてHPをゼロにしたらユニットが消えるようにした。
全員倒したら戦闘終了、という一連の流れを作成。
消え方が不自然で経験値も何も入らないので、
次の段階では消滅エフェクトを追加する。
倒した後に経験値やお金を入手。
レベルアップ判定も加える。
その次の段階で術技の使用を作る。

第5段階 20-5

異様に時間を食ったが、かなり改造している。
・全体攻撃の魔法を追加。
・回復魔法も戦闘中に使えるようにした。
・経験値とお金の入手も追加した。

戦闘はこれで完成、と言いたいところだが、
HPやらのウィンドウを作ってないので、次回追加する。
コンディションが分からないのは怖い…。
あとは防御、アイテム使用を作ってないので、それも次回。
一個追加すると次々に必要な物が見えてきて背中を押されるようだ。
反対にモチベーションが落ちてくる…。
戦闘シーン以外を作りたい…この画面も飽きてきた。

戦闘終わったら、セーブ・ロードに手を付ける。
せっかく経験値が入るのだから、それを保存したくなるのが人情というもの。
成果が少しずつ蓄積していくのがRPGの面白さの一つだと思う。
ローグライクは毎度それが破壊されるので空しさがある。

とりあえずこのサンプルでは一人主人公で最後までつくる。
それが出来たら次の企画として仲間を追加する。
ダンジョン一個、最深部まで行ったらクリア、
という超単純なものでひとまずキリにしたい…。
いつまでもだらだら作っていると終わりが見えなくて怖い。

第6段階 20-6

・戦闘中にアイテム使用できるようにした。
・防御するとそのターン内でダメージを半減するようにした。
前回から微妙な追加だが、これで一通りの処理は完成した。
最低限のレベルで戦闘モードはこれで作成完了している。

あとは特殊アイテム、術技の追加か…。
毒とか能力アップとか、回復、ダメージ以外の効力も追加すべきか?
バステはあとにして、能力アップ系の術技を先に追加しよう。
次回はそれを作る。
それが出来たらひとまず戦闘は保留にしようかな…。
あまり凝ってもキリがないし、
ぼちぼちゲームの基礎を固めて行こう。
店を作ってないし、そもそも冒険の舞台を何も作ってない。
最初は
「超簡単なダンジョンを一個クリアしたら終了ゲーム」 にするが、それもデータ入力がそれなりに要る。
先は長いが後は基本の繰り返し。
戦闘のまえにステータス画面を作ったのは、戦闘と共通する部分が多いためだ。
やってることはステータス画面とそう変わらない。

一通り完成したら戦闘システムの説明を入れていくか…。
解説入れるのが困難なほどいじりまくっているので、
解説に膨大な時間がかかりそうだ。
ソースコードを見て各自勉強してね! というのが一番楽だけど、
出来る限り説明を入れていけたらいいな、と思う。

何時になったら完成するかまだ分からないが、
戦闘システムが一つの山場だったので一応形にできてほっとしている。

第7段階 20-7

・状態異常を追加 デバッグ用に「常時"毒"」になっている
・能力強化魔法のテスト
・治療アイテムと治療魔法の設定
戦闘はこれくらいでいいだろう。
細かい調整はあとでやればいいから、骨組みだけ設定してキリにしよう。

次は再びマップイベントの作成に戻る。
1.店を作ってみよう。
2.それが出来たら次はセーブ・ロードの実装。
3.アイテム取得フラグを設定。一度取ったらもう出ないアイテムを作る。
フラグ状態はセーブデータとして記憶させる。
4.そこまでできたらいよいよダンジョンを作り始める。

という流れで作っていく。
ダンジョンが出来てイベントを配置したら、
最後にタイトル画面を作り、音を設定してひとまず完成とする。








・トップページへ戻る
inserted by FC2 system