プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
拠点一覧画面01
開発中の拠点一覧画面
上部ボタンで5頁分のパラメータを切替表示可能。一覧から拠点を選択すると、拠点情報画面が表示される。



◎城?都市?

今回は、城(都市)関連を整備します。

・城クラス/データ/一覧画面の作成
 →旧管理方式から新管理方式へ移行

・城情報画面の作成
 →ネームプレートをクリックすると表示

・城データ調整
 →座標の確定

いざ作り始めると、タイトルやボタンの名称に迷いました。画面に表示するタイトル名やボタン名に「城情報」「城」等は何となくしっくりきません。しかし三国志軍記は内政が無いので、「都市」という名称は相応しくない気がします。

結局、消去法で「拠点」としました。陣や砦の扱いが未定のため、後日変更する可能性もありますが、とりあえず拠点ってことでw



◎仕様検討

拠点に駐留する連隊や部隊は、どのように管理するべきでしょうか?

例えば、樊城で「連隊数=1、部隊数=2」と表示された場合、連隊を含めて全2部隊なのか?それとも連隊所属部隊は駐留2部隊と別に存在するのか?プレイヤーを惑わせるような表示は避けたいものです。

連隊や部隊は入城の際自動的に解散する仕様とすれば、表示上はスッキリします。しかし出撃の際に連隊を再編成する必要があります。プレイヤーは面倒臭いと感じるかもしれません。

さらに、城の守備隊を部隊として管理するのか?それとも兵数だけ管理するのか?また、城主の有無をどうするか?等の問題も絡みます。う~ん…。


…迷ってばかりでは何も始まらないので、とりあえず以下のように決めました。

・入城した連隊/部隊は自動解散しない
 →プレイヤーの煩雑さ回避優先
 →連隊/部隊/守備兵をそれぞれ表示する

・城の守備兵は兵数のみ管理する
 →軍団長の「招集」または部隊長による「編成」が可能

・城主パラメータは無しとする
 →城主アリとした場合、大半が城主不在となってしまう
 →複数部隊駐留時の軍議決定権は後日検討



◎実装

まず旧方式のデータファイルフォーマットを新方式とし、データを追加調整します。

次に勢力情報画面や軍団情報画面に「拠点」ボタンを追加し、ボタンを押すと所属拠点の一覧を表示するようにします。
また、F4キーで全拠点の一覧を表示するようにします(暫定仕様)。

拠点一覧画面01   拠点一覧画面02

拠点一覧画面はパラメータが多く、現段階で5頁分あります。


一覧から拠点を選択すると、拠点情報画面を表示するようにします。また、メイン画面上の城のネームプレートをクリックした場合も同様です。

拠点情報画面

むむぅ…拠点情報画面はパラメータばかりでちょっとアレですねぇ。

・城モデル再作成後、イメージを取得して張り付ける
・城主アリとし、不在でも城主表示枠を描画する
・表形式などで見易くする

等の工夫が必要と思いますが、パラメータ調整は今後も続くので、そちらと並行して検討します。



◎次回予告

次回は「3月の総括と4月の目標」です。

スポンサーサイト

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
部隊情報画面
開発中の部隊情報画面
部隊情報はパラメータが多い。現在のレイアウトは暫定版とのこと。



◎共通部品化

今回はまず個別情報画面の共通部品を作成し、武将情報画面と連隊情報画面に適用します。

…作業完了しました。既に一覧画面を共通部品化した経験があるので、今回は簡単でした。^^



◎部隊情報画面の作成

共通部品をベースに、部隊情報画面を作成します。

部隊情報画面

う~ん…表示パラメータ多過ぎるかなぁ?

・一部非表示にする
・パネルで切り替える
・別窓にする

等の工夫が必要と思いますが、パラメータはまだ増える予定なので(汗)、その辺が落ち着いてからレイアウト調整します。



◎軍団情報画面の作成

続いて軍団情報画面を作成します。

軍団情報画面

こちらも、パラメータが落ち着いてからレイアウト調整します。



◎勢力情報画面の作成

最後に勢力情報画面を作成します。

勢力情報画面

おお、シンプル!w



◎画面遷移図

武将ボタンや軍団/連隊ボタン等を押すと、対象を絞り込んだ一覧が表示されます。

画面遷移図(PDF)

現在は上図のように続けて画面遷移可能です。



◎次回予告

今回の開発は珍しく快調でした!^^

所属関連画面が一通り完成したので、次回は都市クラス/データ/一覧画面を作成します。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
連隊情報画面02
開発中の連隊情報画面
連隊一覧画面から部隊を選択したり、メイン画面でユニットのネームプレートをクリックすると、連隊情報画面が表示されるようになった。




◎連隊情報画面の作成

今回は連隊情報画面を作成し、メイン画面のユニットを選択したら、連隊情報が表示されるようにします。

連隊情報画面01

すっきりしたデザインになりました。^^

表示パラメータは増減するので、その都度修正します。



◎プログラム整理

情報画面(非一覧画面)関連のプログラムを整理します。

・ラベルの部品化
・テキストボックスの部品化
・日本語文字列の描画位置がズレるバグを修正
・各データに不明/無所属/不在用のダミーデータを追加
・初期データ設定関連の改善

以前から日本語の文字幅が正確に取得できず、今回も同様の問題が発生しました。日本語スプライトフォントの複数登録&切替ミスかと思い、その辺を整理したのですが、文字幅の値は変わらず。呼び出し元を再度チェックすると…自前のスケール変更処理を見落としてました(爆)

また、後でシナリオデータやセーブデータを扱いやすいように、初期データ設定関連を改善したり、不明/無所属/不在等の属性値を可能としました。



◎インスタンスの生成順序

武将情報は、所属情報(勢力と軍団)を保持します。
所属情報は、武将情報(君主や指揮官)を保持します。
所属情報は、上下階層の所属情報も保持します。
(例:軍団インスタンスは、所属元の勢力/軍団に属する連隊リスト/軍団長/副官の各インスタンスを保持します)

データファイルを読み込んでインスタンスを生成しながら互いの参照設定を構築する必要がありますが、どの順番で生成すべきでしょうか?

初めは試行錯誤しながら作ったので、以下の順番でした。

部隊 → 武将 → 連隊 → 軍団 → 勢力

そこで今回、参照データの再設定量が少ない順番に改めようとしました(初期ロード時間最短)。

勢力 → 軍団 → 武将 → 連隊 → 部隊

改修中に気付いたのですが、上記フローはやはりイレギュラーです。ロード時間は1秒も変わらないので、スマートなフローに改めましょう。

武将 → 勢力 → 軍団 → 連隊 → 部隊

試行錯誤で荒れたコードがすっきりしました^^



◎武将/部隊ボタンの追加

連隊情報画面に武将ボタンと部隊ボタンを追加し、ボタンを押すと連隊に所属する武将/部隊の一覧を表示するようにします。

連隊情報画面02

指令ボタンの機能は未実装です(画像配置のみ)。

武将/部隊ボタンを押すと、連隊に所属する武将/部隊の一覧が表示されます。武将一覧の中から武将を選択すると、その武将の武将情報画面が表示されます。

   連隊一覧画面
     ↑↓
   連隊情報画面
  ↑↓       ↑↓
部隊一覧画面 / 武将一覧画面
  ↑↓       ↑↓
部隊情報画面 / 武将情報画面

(注:部隊情報画面は未実装)



◎メイン画面から選択

連隊情報画面や部隊情報画面の指令ボタンを押すと、指令選択画面に遷移する予定です。

これとは別に、メイン画面に表示されたユニットを選択すると、サブメニューが表示されて、そこから指令することも可能とする予定です。

今回はその前段階として、メイン画面でユニットを選択したら連隊情報画面を表示するようにします。

連隊情報画面03   連隊情報画面04

静止画だとわかりませんが、ネームプレートをクリックしたら連隊情報画面が表示されるようになりました。続けて武将情報や部隊情報を確認することも可能です。

ネームプレートの座標計算は複雑なので、パフォーマンスが低下しないか少し不安だったのですが、杞憂でした。^^



◎次回予告

次回以降は下記作業を予定しています。

・情報画面クラス(共通部品)作成
 →武将情報画面と連隊情報画面に適用

・(共通部品で)部隊情報画面作成
・(共通部品で)軍団情報画面作成
・(共通部品で)勢力情報画面作成

共通部品化が順調に進めば、次回までに上記全部終わるかも?

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
勢力一覧01
開発中の勢力一覧画面
勢力を選択すると、その勢力に属する軍団の一覧画面が表示される。さらにその軍団に属する連隊や部隊も一覧画面で確認できる。



◎勢力一覧画面

勢力一覧画面は「いらないかな?」と迷っていたのですが、いろいろ考えて必要という結論に達しました。

というわけで、今回は勢力クラス/データ/一覧画面を作成します。

勢力一覧01

ハイ、できました!w



◎プログラム整理

これで勢力/軍団/連隊/部隊の一覧画面が用意できました。

しかしデザインや仕様が中途半端な状態から強引に組み上げてきた(作りながら仕様を決めてきた)ので、プログラムの中身は冗長的で不規則です。このままでは、今後の流用/改修/デバッグ等に支障を来す可能性が高いので、一覧画面のプログラムを整理しましょう。

・リストボックス部品に文字色指定機能を追加する

・連隊/部隊一覧画面をリストボックス部品で組み直す

・軍団一覧画面で軍団を選択すると、選択対象と異なる連隊一覧画面が表示されるバグの修正

・一覧画面クラスを作成し、勢力/軍団/連隊/部隊一覧画面の基底クラスとする



◎継承/抽象/インターフェースの違い

継承クラス/抽象クラス/インターフェースの違いがいまいち理解できず、共通部品をいずれで実装すべきか迷走しました(^^;

ネット上のTipsを読み漁ると、継承クラスと抽象クラスをセットで説明していることが多いので、最初はこの2つが近い仲間かと思いました。しかし機能的には抽象クラスとインターフェースが近いようです。では抽象クラスとインターフェイスの違いは何かと調べたら、抽象クラスは処理内容(メソッドやフィールドなど)を記述可能とのこと。

○継承クラス
・仮想メソッド記述可能
・インスタンス生成可能
・処理内容記述可能
 →基底クラス処理内容と派生クラス処理内容の呼び出し先は、実行時に動的に変更される
 →派生クラスでインスタンスを生成すると、基底クラスと派生クラスでそれぞれインスタンスが生成される?

○抽象クラス
・抽象メソッド記述可能
・インスタンス生成不可
・処理内容記述可能
 →派生クラスでインスタンスを生成すると、抽象クラスの処理内容を追加した派生クラスインスタンスが生成される?

○インターフェース
・インスタンス生成不可
・処理内容記述不可


なるべくインターフェースを使用すること。継承クラスの使用は極力避けること(多用すると混乱しやすいため)。

※機能選択時の優先順位
 インターフェース > 抽象クラス > 継承クラス

今回の共通部品は、値(フィールド)を持たせたかったので、抽象クラスで実装しました。



◎次回予告

画面作成よりも、部品化の方が大変でした(笑)

次回は部隊情報画面を作成し、メイン画面のユニットを選択したら部隊情報が表示されるようにします。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
部隊モデルの色変更05
開発中のメイン画面
疲弊や混乱など、異常状態の部隊は赤や黄色で表示されるようになった。



◎東北関東大震災について

東北関東大震災で亡くなられた方々のご冥福をお祈り申し上げます。また、被災された方々や御家族の方々に、心よりお見舞い申し上げます。

当方微力につき、復興を直接御支援することは叶いませんが、被災された方々が日常に戻る場所を確保することが今の自分にできることではないかと考え、今後も開発活動を続けていく所存です。



◎定数レジスタの確保

今回は、部隊モデルの色を状態に応じて変更する方法について検討します。

yohさんから「カラーを配列にしてインスタンスごとに指定する方法」を御提案頂きましたので、まず定数レジスタの残数を確認しましょう。

…現時点では237個使用済で、残数は20未満でした。
これでは足りません。

ですが、使用中の配列の中でfloat×1個分だけ未使用なので、これを利用すれば可能と思います。



◎ピクセルシェーダのバージョン

色情報をtexcoord1で頂点シェーダからピクセルシェーダに渡すと、コンパイルエラーになりました。

warning X4707: texcoord inputs used directly (that is, other than sampling from textures) in shader body in ps_1_1 are always clamped from 0 to 1

えーと…texcoord1の値が0~1を超える演算を行うとエラーになる、ということでしょうか?

よくわかりませんが、PS1.1の制限らしいですね。コンパイル条件をPS2.0に上げたら回避できました。



◎実装1

ソースコード(ピクセルシェーダー)

部隊モデルの色変更01   部隊モデルの色変更02

設定値:15(赤:0%、緑:100%、青:100%)としたら、全ての部隊が水色になりました。



◎実装2

部隊毎に状態をチェックし、色分けするようにしました。

部隊モデルの色変更03   部隊モデルの色変更04

左図の曹仁本隊は若干赤みを帯びてますが、右図の張昭支隊は黄色がほとんど識別できません。

これは、原色の0~100%とする仕様によるものです。『黄色=青の輝度を0%とする』なので、元々青色が少ないモデルはほとんど変化なし。

そうか、輝度を減らすんじゃなくて、加算すべきなんですね。

ソースコード(ピクセルシェーダー)

部隊モデルの色変更05

draw回数を増やさずに、色変更できました!^^



◎次回予告

課題を無事クリアしたので、次回は勢力一覧を作成します。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
軍団一覧01
開発中の軍団一覧画面
軍団一覧画面が追加された。一覧から軍団を選択すると、その軍団に所属する連隊の一覧が表示される。



◎実装

今回は軍団クラス/データ/一覧画面を作成します。

軍団一覧01

ハイ、できましたw

本拠と都市に関しては、都市リスト整備後に反映します。

軍団一覧の中から1つ選択すると、その軍団に所属する連隊の一覧が表示されます。その連隊一覧の中から1つ選択すると、連隊に所属する部隊の一覧が表示されます。


…おや?
実際に曹操軍団を選択すると、曹操連隊に所属する部隊の一覧が表示されました。どうやら、連隊を選択すると瞬間的に連隊一覧が表示され、そのまま一気に連隊を選択した状態になってしまうようです。

これは‘マウスボタン押下時に選択’としたのが間違いですね。‘マウスボタン引戻時に選択’とすべきでしょう。



◎リスト部品の複数選択機能

ボタン引戻時に選択確定するとして、ボタン押下時には何の意味も無いのでしょうか?
…そうか!リストからドラッグ操作で複数選択する際の、複数選択開始位置という意味がありますね!

そういえば複数選択という要素を忘れてましたが、複数選択時は選択中の項目を反転表示するorチェックボックスを追加するなど、デザインにも若干影響するし、ドラッグ選択操作の開始終了なども制御する必要があります。(ボタンやスクロールバーと同様に)リストも共通部品にすべきだったとようやく気付きました。

しかし複数選択機能は今すぐ必要というわけではなく、実装しても動作確認できないので、とりあえず今回はリストの共通部品化と単数選択(引戻時に選択)機能まで実装しましょう。



◎修正

軍団一覧01   連隊一覧04

ハイ、できましたw
(絵的に変わってないので使いまわし)

ちなみに、リストの共通部品化作業は、軍団一覧画面作成作業の3倍時間かかりました(爆)


◎次回予告

前回コメントでyohさんからアイデアを頂きましたので、次回は部隊モデルの色を状態に応じて変更する方法について検討します。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
部隊一覧06
開発中の部隊一覧画面
連隊一覧画面から特定の連隊を選択すると、その連隊に所属する部隊のみ表示されるようになった。画面はホウ徳連隊に所属する部隊の一覧。



◎連隊一覧画面に表示する情報の検討

今回は、連隊一覧に絞り込み表示機能を追加します。これは「連隊一覧において、ある連隊を選択すると、連隊に所属する部隊の一覧が表示される」というものです。

これに加え、中級レベル以上では「プレイヤー武将が認知した情報のみ表示する」という絞り込み条件が増えます。また、プレイヤー武将を含む全武将がそれぞれ「自分が認知した情報の履歴リスト」を保持します。

というわけで、下記のリストを用意する必要があります。

・マスタ連隊リスト(1つだけ存在)
 →画面には表示しない

・履歴リスト(各武将が保持)
 →画面にはプレイヤー武将の認知情報のみ表示
 →同一部隊の履歴情報(複数)のうち、最新情報のみ表示
 →各武将は、履歴情報から敵味方の行動を予測する
 →偽情報も含まれる

実際に連隊一覧画面に表示するのは、
(マスタ連隊リストから絞り込んだ情報ではなく)
プレイヤー武将の履歴リストから絞り込んだ情報です。

…ううむ、奥が深い(^^;



◎今回の改修範囲

履歴リストは仕様未定のため、今回は暫定的にマスタ連隊リストの情報を表示します。マスタ連隊リストは現在連隊一覧画面クラスが保持しているので、機能を分離する必要があります。

・連隊リストクラス(マスタ)
 →マスタ連隊リストを保持
 →マスタ連隊リスト初期データ設定
 →マスタ連隊リスト更新用ヘルパーメソッドを提供

・連隊一覧画面クラス(新設)
 →渡されたリスト情報を画面に表示する
 →ある連隊を選択すると、所属部隊一覧を表示する

同様の改修を、部隊リストや武将リストに対しても行います。



◎実装

上記改修を実施しました。

連隊一覧03   部隊一覧06

連隊一覧から連隊を選択すると、その連隊に所属する部隊の一覧が表示されます。「戻る」ボタン(画面左下)を押すと連隊一覧画面に戻ります。

また、F5キーを押すと全部隊の一覧画面が表示されます(暫定仕様)。



◎思い付きのアイデアについて

前回思い付いた「ちょっとやってみたいこと」について検討します。

○部隊のネームプレートに兵数を追加する

中級以上では誤報が含まれます。誤報の兵数をネームプレートに表示すると、プレイヤーにバグと誤解される恐れがあるので没。
(履歴プレートに表示するのは良いかも?)


○部隊モデルの色を状態に応じて変更する

レンダーステートのカラーチャンネル制御で赤や黄にするのは簡単そうだ!という発想です。しかしシェーダーインスタンスでまとめて描画している都合上、色単位で描画するとDraw回数が2倍3倍に増えてしまいます。

負荷が数倍増えるなら、いっそアニメパターンを増やした方がいいかも…ってことでこちらも没。
(状態の表現に関しては後日検討)


○連隊の陣形の種類を登録/表示する
 →陣形をメイン画面の移動に反映する

移動先が侵入不可の場合や、(部隊速度や侵入地形の種類により)移動速度が異なる場合もあります。真面目に実装すると時間かかりそうです。とりあえず今回は保留。



◎次回予告

予定作業を消化すると、それ以上に多くの懸案が発生することは珍しくありません(バグ発覚や追加要望など)。開発は着実に進んでいるはずなのに、残作業がどんどん増えるので、進捗が後退したような錯覚を覚えることがあります(笑)

とりあえず、時間がかかるものや工数対効果が低いものは後廻しとして、簡単に出来そうなものからどんどん作りましょう。

というわけで、次回は軍団クラス/データ/一覧画面の作成です。目標は2日以内!

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
連隊一覧01
開発中の連隊一覧画面
部隊一覧画面とは別に連隊一覧画面が追加され、状態によって文字が色分けされるようになった。



◎小隊/部隊の属性改修

1年前に見直した仕様が未実装でした。改修後のチェックが(一覧画面の実装により)楽になったので、確定済の仕様はどんどん実装しましょう。

まず、マップオブジェクトクラスを基底とした小隊クラスを作成し、戦闘用の属性を追加します。部隊クラスにも戦闘属性を追加し、小隊クラスの情報を集計するヘルパーメソッドを作成して計上します。

部隊一覧04   部隊一覧05

部隊一覧の項目に警戒LVと状態を追加し、状態によって色分けしました。また、(当面はデバッグの参考用として)戦闘力の一覧を追加しました。

ただ、戦闘力のような細かい数値表示を好むプレイヤーと嫌うプレイヤーがいるので、表示/非表示/オプション選択のいずれにするか最終段階で検討します。



◎連隊の実装

連隊のクラス/データ/一覧画面を作成します。

連隊とは、複数の部隊をまとめて管理する単位です。関羽本隊&関羽支隊&周倉本隊&周倉支隊&廖化本隊…など、複数の部隊を関羽連隊として管理し、関羽の指揮下で行動させることができます。

連隊データの初期値を用意する必要がありますが、今回は最低限のパラメータと、所属部隊リストのみ作成します。いずれ座標や陣形等の項目を追加し、シナリオの初期データとする予定です。

ちなみに、所属部隊リストは可変長が望ましいのですが、可変長とかシリアライズとか細かいことは全て先送りとし、C#の固定長ベタ読みで実装します。

それと、一覧表示時やソート時などでいちいち副官不在(null)チェックをやるのは面倒なので、「不在」という名前のダミー武将を作成して割り当てました。

連隊一覧01   連隊一覧02

連隊長の部隊が混乱や潰走状態になると、連隊全体が指示不能になります。また、動揺や暴走状態などでは、指示が無視される可能性があります。自軍の本隊はやられないように気を付けましょう。また、敵部隊を攻撃する際は、なるべく連隊長の本隊を叩きましょう。



◎次回予告

予定機能はほとんど実装したのですが、「絞り込み」機能は未実装です。これは「連隊一覧において、ある連隊を選択すると、連隊に所属する部隊の一覧が表示される」というものです。

他にも「ちょっとやってみたいこと」などが出て来たので、次回はそれらの実装を図ります。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
真三国無双オンライン
真三国無双Online~蒼天乱舞~
基本プレイ無料の一騎当千MMOアクションゲーム。勢力間で都市を奪い合う「争奪」や、最大24人で戦う「乱戦」などがある。



◎2月の目標達成度

・活動時間月152時間以上

実績:165h(達成率:100%)

 (中間目標:2/15迄に80h以上)

実績:88h(達成率:100%)


・ネームプレート表示制御(24h)

実績:45h(達成率:100%)


・メッセージ表示制御(8h)

実績:10h(達成率:100%)


・履歴フロー検証(32h)
・企画見直し(24h)

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


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

実績:39h(達成率:100%)


・別件企画(24h)

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


・予定外作業

実績:武将データ作成に10h(達成率:100%)
実績:武将一覧画面作成に29h(達成率:100%)
実績:武将情報画面作成に12h(達成率:100%)
実績:部隊一覧画面作成に11h(達成率:100%)



活動時間目標をクリアしてますし、それなりに頑張ったと思います。しかし1月の絶好調時に比べると、若干物足りない気もします。



◎作業時間分析

作業時間集計2011年2月(PDF形式)

○良かった点
・活動時間月間目標達成
・上旬及び下旬は無休で活動
・長く懸案だったネームプレートが決着
・予定外の情報画面作成が大きく進展

○悪かった点
・中旬は作業停滞気味
・企画見直し未着手
・別件企画停滞

上旬はネームプレート修正作業、中~下旬は情報画面作成作業です。詳細は後述しますが、165hもかけた割には、成果がいまいち少ない気がします。

「何か効率が悪い要因があるのではないか?」「それを解消すれば、効率が上がるのではないか?」と考えてみましたが、特に思い当たることはありませんでした。

ちょっと残念ですが、今の自分の生産力は、この程度かもしれません。



◎ネームプレート修正作業

理解した後で振り返ると簡単に思えることでも、迷走中はどちらの方向に出口があるかわからないので、何時間もさまよい続けることがあります。ネームプレート修正作業はそんな感じで、結局45hもかかってしまいました。

この経験から何か教訓を得て、途中の迷走時間を減らすことが出来れば良いのですが…やはり無理かな?(^^;

ただ、最後まで諦めずに執着し、満足できる状態に仕上げたので、その点は良かったと思います。



◎情報画面作成作業

情報画面は、とりあえずWindowsOSの機能で作っておいて、最終段階でオリジナルに差し替える目論見(もくろみ)でした。

この方法は良くないということで、最初から自作する方針に変えたものの、気持ちの切り替えとCGデザインの発案には時間がかかりました。それが中旬の作業停滞です(笑)

当時はモチベーション下がりまくりで、イヤイヤ始めた感じでしたが、Gimpのフィルタ機能で少しコツを掴んでから、少しずつ楽しくなってきました。その後時間をかけて何度もデザイン調整し、現在の一覧画面は自分が満足できる状態になりました。

まだまだCGデザインに対する抵抗感はありますが、頑張って成功体験(自分が満足できる状態に仕上げること)を繰り返すことによって、CGデザインもプログラミング同様楽しめるようになりたいですね。



◎進捗状況チェック

スケジュールは凍結中です。企画見直しが完了したら、スケジュールの見直しを行います。



◎3月の目標

・活動時間月160時間以上
 (中間目標:3/15迄に80h以上)

・小隊/部隊属性改修(4h)

・連隊一覧作成(20h)

・軍団一覧作成(16h)

・ユニット選択メニュー作成(16h)

・履歴フロー検証(32h)

・企画見直し(24h)

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

・別件企画(8h)

必須画面(作ることが決定済みの画面)は、どんどん作っちゃいましょうw



◎次回予告

小隊/部隊の属性改修から、連隊クラス/データ/一覧画面作成まで一気にやる予定です。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
部隊一覧02
開発中の部隊一覧画面
部隊の現状が一覧形式で確認できるようになった。



◎ユニットリストクラスの作成

現状は、ユニットマネージャクラスが部隊リストの管理、描画制御等をしています。これに部隊一覧画面のコードを追加すると、コード量が多すぎてメンテナンス効率が悪そうです。

こんな時は一般的にどう対処しているのでしょうか?
ネームスペースで管理することは可能ですが、ちょっと違う気がするなぁ…。

とりあえず、ユニットリストクラスを新設し、機能を分割して管理します。

○ユニットマネージャクラス
・ユニットの入力制御(Update)
・ユニットの描画制御(Draw)

○ユニットリストクラス
・部隊リスト(戦闘部隊クラスインスタンス)の管理
・部隊一覧画面の表示/制御

ユニットマネージャクラスは、ユニットリストクラスのヘルパーメソッドのような機能イメージです。

但し、ユニットマネージャクラスはゲームコンポーネントであり、先に呼び出されて、ユニットリストクラスのインスタンスを作成管理します。なので、フロー的にはユニットマネージャクラスが上位です。


ところで、このやり方はオブジェクト志向のカプセル化に反する気がするのですが…でも、ヘルパーメソッドを別モジュールに配置したサンプルを見たことがあるので、これはこれでアリかな?



◎移動タイプ

開発中に、気になることがありました。

部隊一覧01

移動タイプがHorseとなっています。旗手や槍兵が混在するのに…バグ??

…いや、仕様でした。馬は森/川/高地等に侵入不可とする予定なので、『移動タイプ‘騎馬’は‘歩兵’よりも劣る』という概念で馬混在時の移動タイプは‘騎馬’としたのでした。

しかし部隊一覧で表示すると、不自然で誤解されそうです。移動タイプは非表示にしましょう。



◎ソートの安定化

動作テストをしていたら、ソートが安定でないことに気付きました。う~んどうしたものか…。

安定ソートの基本ロジックは手元にありますが、ソート中の入れ替え発生の度に、部隊インスタンスの値を毎回入れ替えるのは非効率です。参照のみ入れ替えできれば効率が良いのですが、Generic.ListにはSwapメソッドが無いので、駄目っぽいですね。

いっそのこと、部隊リストデータへのアクセスを全てインデックス方式にしてしまえば一番効率が良いのでしょうが、そこまでする必要があるとは思えません。

そこで、以下の方式で対処することにしました。

1.ソート対象項目の値をワーク配列にコピー
2.ワーク配列の値を安定ソート
3.ワーク配列の順序で部隊リストを再構築

これなら、データの入れ替えは全件2回分で、速度もソートも安定します。


…後で気付いたのですが、データ件数が200件以下なので、ソート速度は気にするレベルではなかったかもしれません。まぁいいかw



◎実装

F6キーで武将一覧、F7キーで部隊一覧を表示するようにしました(暫定仕様)。また、本隊と支隊を区別し、メイン画面では本隊のみ部隊ラベルに顔画像を表示するなど、細かい改修も加えました。

部隊一覧02   部隊一覧03

ソートが安定し、段階ソートが可能になりました。
(兵数でソートしてから部隊名でソートする、など)



◎次回予告

3月になったので、次回は「2月の総括と3月の目標」です。

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

| BLOG TOP |

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