プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
小隊毎の被害判定実装05
開発中のメイン画面
防御型のバトルスタイルが実装された。防御型は後方部隊を温存し、間接攻撃や持久戦に適した陣形が多い。戦況に応じた使い分けが求められる。



◎経路バグ修正

「バトルスタイル:攻撃型」の陣形では、各小隊が突撃しますが、第一小隊(旗手)はその場で待機します。

突撃して真っ先に壊滅すると困るので(笑)
いずれ第一小隊が突撃するパターンを追加し、武将の性格を反映させるつもりです。


他の小隊が全滅すると第一小隊も動き出しますが、敵部隊とすれ違って、部隊位置が入れ替わってから戦闘再開することがあります。

何故途中で交戦しないのか不可解で悩んでしまったのですが、これは戦闘後に以前の移動経路を優先したことが問題でした。

個別移動採用前は、戦闘中に部隊位置が変わることは無かったので、経路を保持してたんですが、戦闘中に経路をクリアしたら、この問題は解消しました。



◎防御型バトルスタイル実装

最も悩んでいた現象の1つ

・重なったまま攻撃も移動もされないことがある

ですが、バトルスタイル:防御型同士の部隊が衝突した場合のロジックが未完成だったことが原因でした。


…実装すると、防御型同士の戦いでは兵士減少速度がかなり遅くなりました。

…そうか!先頭の小隊しか戦わないので、一度に受けるダメージも減るんですね。攻撃型と防御型で差別化が進んだようなので、良いことだと思います^^

戦うのは先頭1小隊とは限りません。各小隊の近接攻撃射程内に敵がいたら攻撃します。また、中距離攻撃を実装すれば後方小隊も参戦します。



◎仕様通り?

防御型バトルスタイルの実装によって、問題の発生頻度は減少しました。しかしまだ時々発生するようです。う~ん…(~_~;

ただ以前と違って、部隊位置が重なっても攻撃は継続され、いずれかの部隊が壊滅します。とりあえずゲームとしては支障なく継続可能となりましたが、しかし敵味方が重なる状態は思わしくありません。

何故こうなるのか?回避移動の問題?部隊移動か戦闘の問題?それとも小隊??


…原因がわからず悩みまくったのですが、結局「仕様通り」という結論に達しました。

部隊と小隊とネームプレートの位置関係

部隊/小隊/ネームプレートの位置関係は上図の通りです。

・小隊は、部隊位置を無視して移動する
 →孫権小隊は曹操小隊に突撃し目前で対峙する

・ネームプレートは、旗手小隊の頭上に描画する
 →孫権小隊と曹操小隊のネームプレートが重なる

ここで悩ましいのは、部隊位置を「旗手の位置」とするか?「隣接セル」とするか?です。

旗手の位置とした場合、敵味方の部隊位置が同一セルに重なることになります。

隣接セルとした場合、部隊位置のセルに味方小隊は不在ということになります。

他の選択肢としては、旗手小隊を隣接セルで固定させるという手もありますが、これは見た目があまり良くありません。

どれがベストか一概には言えなさそうなので、とりあえず「隣接セル」として、問題があれば変更します。



◎次回予告

最後まで悩んだ現象が「仕様通り」という結論になったので、いまひとつ達成感が無いのですが、とりあえず個別移動関連は完了しました。

次回は弓兵モデルを作成します。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
小隊毎の被害判定実装04
開発中のメイン画面
プログラムの大幅改修に伴い、大量のバグが発生。一時は起動しないほど酷い状態であったが、最近はマシになったらしい。



◎被害判定の懸案

部隊戦の被害判定は部隊単位で算出してきましたが、「どの小隊がダメージを負うか?」という点が懸案でした。

A案:全小隊が均等にダメージを負う
  →小隊数がなかなか減らず、
   最後に全小隊が一度に消失する(却下)

B案:最後の小隊がダメージを負う
  →通常は、先頭から騎兵系/歩兵系/弓兵系の順に
   編成するので、弓兵小隊から順に壊滅することになる

C案:(旗手を除く)先頭の小隊がダメージを負う
  →騎兵小隊から順に壊滅することになる

D案:攻撃を受けた小隊がダメージを負う

現在はB案です。B案よりC案の方がマシかもしれませんが、しかしゲーム後半にどの部隊も弓兵ばかりになってしまうのは、好ましくないですね。

いずれ改善すべき懸案の一つだったわけですが、先の改修によりモデルの個別移動を実装したので、被害判定も小隊単位で行うよう改修します(D案)。



◎改修

改修すると、壊滅する小隊の順番が不定になります。いろいろと不具合が出そうな気がしますが、とにかく試してみましょう。

小隊毎の被害判定実装01   小隊毎の被害判定実装02

予想以上に、問題出まくりです(ーー;

・戦闘中の小隊を見捨てて、旗手が移動してしまう(左図)

・敵味方部隊の位置とネームプレートが
 完全に重なることがある(右図)

・重なったまま攻撃も移動もされないことがある
 →旗手とネームプレートの位置が連動しないことがある

・敵の旗手以外を全て倒した後、一度すれ違って互いの
 位置を入れ替えてから、再び接近して戦闘することがある

・最短経路探索で例外エラー発生し落ちることがある

最初は、これらの問題を見付ける度に原因を調べて直そうとしたのですが、原因もよくわからないうちに他の問題が見付かって、またそれを調べるうちに次の問題が…

いっそのこと、全てがおかしい方がデバッグしやすいのですが、概ねまともに動くので、原因以前に再現条件すらなかなか特定できません。



◎既存プログラムの現状

大量のバグを収拾するにはどうしたら良いのか?
そもそも、被害判定を個別化するだけの改修で、何故ここまで混乱するのか?

最大の要因は恐らく‘既存プログラムが複雑すぎる’ためと思われます。

部隊クラス関連図

ユニット(モデルの集合体)は戦闘系と非戦闘系(森、柵など)に分けてクラスを作成し、

・ユニットクラスを基底とした戦闘部隊クラス
・マップオブジェクトクラスを基底とした小隊クラス

で管理しています。今回は戦闘部隊クラスの攻撃/被害判定機能の一部を小隊クラスに移したわけですが、実際には攻撃と移動が複雑に絡むので、4つのクラスで連携を取らねばなりません。

移動目標/経路/攻撃目標等は、部隊と小隊で異なります。また、攻撃目標との距離(索敵/射程範囲)や、陣形のバトルスタイル、モデル特性等によって、移動や攻撃のロジックは影響を受けます。さらに、(高速描画を実現するために)各コードはそれぞれ複雑化してます。



◎クラス設計見直し

移動や攻撃は今回で全て完成、というわけではありません。ゲームシステムや武将の思考ロジックなど、今後も拡張することを考えると、設計の見直しが必要と思われます。

というわけで、戦闘系と非戦闘系で分けるのではなく、移動&戦闘系と、非移動系に分けることにします。


ただ、設計見直しや大幅改修を「今、やるのか?」と考えると、かなり気後れします。中距離戦や攻城戦など、大幅な機能追加をするために必要ならばともかく、「小隊毎の被害判定」のために、そこまでやる必要があるのか?
(言葉だけ聞くと凄く簡単そうなのに(ーー;)

そんなわけで、やる気が出ずに現実逃避してました。しかし他に良案は浮かばず、やむなく大幅改修に踏み切ったものの、まともに起動すら出来なくなって気力萎えまくり。

バックアップに戻して大幅改修前の状態から何とかしようとしましたが、こちらも上手くいかずゲンナリ。

そんな感じで、結局2カ月進捗無しという最悪の結果に
>_<



◎デバッグ

とりあえず設計見直しの方向で進める(バックアップに戻さない)ことに決めて、起動する状態まで回復させたのですが、以前より問題が増えました。
例えば、部隊が拠点に入城せず溜まりまくるとか(汗)

小隊毎の被害判定実装03


このバグは最初「表示フラグ」管理の問題かと思いましたが、そちらは正常でした。部隊はマップ上とマップ下に1フレーム毎に交互に描画されるので、何が悪いのかあれこれ悩んだのですが、結局これは

「入城→出城→入城→出城→…」

のループになってました。

あれ?昔同じ現象でデバッグした記憶が…(^_^;

とにかく、バグを1つ1つ地道に潰していくしかないですね。



◎次回予告

実はまだデバッグ中です。8割方潰したと思いますが、まだ一部不具合が残ってます。
というわけで、次回は今回の続きです。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
魏志 文帝紀 建安マエストロ!
魏志 文帝紀 建安マエストロ!
曹丕が主人公の漫画。弟曹植との関係をメインに、夏侯惇や司馬懿などお馴染みの武将達を交えつつ、序盤はコミカルなノリで話が展開する。合戦描写は少なく、政治や文学を主題に据えた異色作。



◎1月の目標達成度

・活動時間月80時間以上

実績:19時間(達成率:24%)


・小隊毎の被害判定実装(16h)

実績:13時間(達成率:20%)


・戦闘モーションの作成(32h)
・中距離戦の実装(8h)

実績:未着手(達成率:0%)


・ブログ更新/HP更新(24h)

実績:6時間(達成率:25%)


月間活動時間がたった19時間…><



◎作業時間分析

作業時間集計2012年1月(PDF形式)

○良かった点

・社会問題の論文を記述した(開発と無関係)

○悪かった点

・活動時間&休暇日数は過去最低
・実質的な成果なし
・ブログ更新数過去最低

サボリ癖が治せず、丸一カ月サボリまくりでした(--;



◎サボリの実態

前半は、正月休みから惰性でサボってました。
(溜め込んだアニメを消化したり、ゲームにハマったり)

後半から「アニメ/ゲームは一日1時間まで」というペナルティルールを採用し、生活は一変しました。
ゲームは禁止、アニメは倍速で視聴し時間を確保したのですが、その時間は開発に向けられませんでした。

・実家フォロー(携帯電話導入):20%
・ナンプレ:40%
・社会問題の論文作成:30%
・リア充化:10%

親が携帯電話欲しいと言いだしたので、調査/契約/説明など全面的にフォローしました。
(70才の老夫婦に電子機器教えるのは結構大変ですw)
まぁこれは親孝行なんで単純なサボリとは違うかと。



◎ナンプレ

もともとパズルへの関心は低かったのですが(テトリスとぷよぷよは例外)、実家のナンプレ雑誌をもらって来たら、すっかりハマってしまいました。

晴れた日の午後に、日当りの良い部屋でのんびりナンプレ。
これが至高の贅沢のように感じられて、やめられませんw


ちなみに、ペナルティルールの「アニメ/ゲーム制限」は、ルール導入当初から、電子ゲーム限定という認識でした。
(じゃんけん/将棋/麻雀/スポーツなど、非電子は無制限、電子化されたものは制限対象)
何でもかんでも禁止すると息が詰まるし、非電子であれば中毒性が低く、目に悪くないからです。
(特にこの時期は、目が痛くて開けられないとか、文字が霞んで読めないこともあるので、画面を見過ぎないよう心掛けています)

しかしナンプレって、意外と中毒性高いですね。空白を1つ埋める度に小さな満足感が得られるし、悩んだ末に突破口を見付けると連鎖する壮快感もあります。
…これは制限対象とすべきだったかもしれません。

ともあれ、もうすぐ全問終了するので、マイブームはじきに去ると思います。



◎社会問題の論文

開発が進まずPCから離れがちだったので、PC創作系リハビリを兼ねて、4週目から社会問題の論文を書き始めました。

最初は短い文章を数日で書き上げるつもりでしたが、翌日読み返すと、納得できません。追加修正削除を繰り返してもなかなか終わりが見えず、「もうやめようか?」とも思いましたが、やはり中途半端は嫌なので最後まで書き上げました。

長文ですが、50時間超の力作ですので、ぜひ御一読ください。

少子化の原因と対策

内容には概ね満足してますが、執筆時間かかりすぎです。いずれはゲームのシナリオも自分で書きたいのですが、これだけ遅いと内容以前の問題かも(^^;



◎進捗状況チェック

既に二カ月以上遅延してます。一月は無為に過ごしてしまったので、頑張らないと(汗)



◎2月の目標

・活動時間月120時間以上

・小隊毎の被害判定実装(24h)

・戦闘モーションの作成(32h)

・中距離戦の実装(24h)

・ブログ更新/HP更新(40h)

「小隊毎の被害判定実装」で進捗が止まってます。
現実逃避に走るほど難航してるってことです(苦笑)

これさえ突破すれば楽になれるはず(?)なので、何とかしましょう。



◎次回予告

次回は、小隊毎の被害判定実装です。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |

copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。