ゲームプログラミング

2008年09月02日

Papervision 3D:擬似戦闘処理&戦闘終了後移動可能になりました

 久しぶりにPapervision3Dで作成中のダンジョンRPGの進捗報告。

 今回は戦闘のコマンド(ATTACKのみ)を受け付けて、
 乱数を用いて行動順判定、命中判定等を行う処理をつけてみました。
 戦闘はこれまた乱数で6分の1の確率で終了します。

 HPの概念が無かったり、戦闘後の経験値やお金の取得処理が無かったりとまだまだですが、一応戦闘が終わったら移動可能にもなります。
 
 ソースコードは未整理状態なので、後ほど公開します。

 サンプルで動作を見てみる

 http://coelacanth.heteml.jp/dungeon_0_5_1/RPG_0_5_flash.html


 【参考書籍】


2008年08月25日

本の紹介:ゲームエンジンプログラミング

 戦闘システムについて考えあぐねながら、
 参考になるかと読んだ本ですが、色々な意味で勉強になりました。

 ゲームエンジンについて書かれた第一章では、

 プログラミングコードからデータを外部に分離することの有用さについて書かれています。
 Webアプリを書いているときより、RPG(のはしくれ)を書いているときの方がデータ分離の有用さが実感できましたが、本書でそれを更に推し進めた概念(外部スクリプト、システムの階層化など)を知ることができました。

 普段携わっていないジャンルに触れるというのは、
 こういう発想が身について面白いですね。
 Webでも流用できそうです。

 設計について書かれた第二章は、

 メモリの管理について参照カウンタの仕組みの紹介。
 DLの作成方法。
 アクセサメソッドの利用方法。
 MVCについて(これはWeb屋の十八番)。

 総じて、開発のための開発というかエンジンの製作の大事さが理解できます。
 要するにフレームワークなんですけど、ゲームの場合3D描画にColladaとかXファイルとかを使わず独自実装したり、標準化が進んでない印象ですよね。それだけにエンジン製作のノウハウがこうやって解説されているのかな(標準化しずらいというのもあるんでしょうねぇ)。

 三章は描画について書かれており、


 レイヤの概念などは、
 現在進行形でがむしゃらにパーツを描画していた自分には参考になりました。
 
 四章は設定ファイルやモジュール化について

 これも設計に関する分野ですね。

 五章は開発用のスクリプトの話

 簡単なコンパイラを実装して、
 ゲームの流れを制御するスクリプトを作成する話。
 イベントを記述するためのスクリプトを用意して、簡単なルールにもとづいて(主にプログラマではなくイベントを書く人用でしょうね)フローを記述できるようにするという内容でした。

 自分が作成しているFlashでRPGの場合便利なXML解析クラスが用意されているのでこれでいけそうですが、次にDirectXを使った開発を行う(予定)際に役立ちそう。

 最後にアドベンチャーゲームの開発事例

 こういうサンプルを通してみると、
 アドベンチャーってシンプルなんですねー。
 絵があって文字を表示して、選択肢を出して・・・

 自分の場合、絵心と、ストーリーを作成する才能が欠如しているので選択枝には無かったですが、ゲーム制作を始めたい人は最初にアドベンチャーから入るといいかもしれませんね。

 というかんじで、
 ゲーム開発ノウハウ0の自分にはかなり勉強になる本でした。

 メモリ制御や、参照カウンタ、構文解析などの知識まで得られるとは予想外。





 一応アドベンチャーゲーム作成の入門書も持っているんですよ。
 読んでないんですが・・・。



2008年08月24日

Papervision 3D:モンスターを表示して、コマンドを表示するようにしました

 製作中のPapervision3Dを用いたRPGですが、
 ようやくコマンドを表示するところのサンプル公開まで辿りつきました。

 実際にコマンドを選択できるわけではないので、
 面白みはありませんが、swcの利用や、画像読み込み処理の修正などを行っているので興味がある方は参考にしてみてください。

 サンプルを見てみる

 デバック版Flashプレイヤーを入れている場合、
 Amazonのクルクルウィジット(勝手に命名)でエラーが出ます。
 動作は問題ないようなのですが・・・

2008年08月22日

Papervision 3D:戦闘時のメニュー作成

 以前にFlashCS3で作成したswcファイルをFlexで読み込みことができたと書きましたが、今回swfをパブリッシュする際に、パブリッシュ設定でswcファイルも書き出すようにしてそれをFlexで読み込んでみるとなぜか表示されないという状態にはまりました。

 しばらく何で表示されないか不明でしたが、
 ムービークリップをswcで書きだすと表示することが可能だったので、パブリッシュからの書き出しのやり方がおかしいと結論。

 結局透明なムービークリップに全部のパーツを入れ子にして、
 その透明ムービークリップを書き出すことで対応しました。

 戦闘時のメニューなんですが、
 FlexとPhotoshopのスキル不足で思った以上に時間がかかってしまいました。

 イメージは以下(クリックで拡大します)、
 まだ表示できただけなので、次は、コマンドを選択して1対1の戦闘を実装ですね。
戦闘メニュー表示

2008年08月20日

Papervision 3D:モンスター表示までのサンプル公開

 PaperVision3DでRPGを作ろう企画はのんびり進行中。
 ゲームを作るというのは、Webアプリを作るのとは同じプログラムといっても全然違いますね。
 戦闘の仕組みとか、キャラクターのステータスとか考えていると頭がショートしそうです。

 とりあえずランダムでモンスター出現判定して、
 モンスターを描画するところまでをFlashバージョンで公開します。

 データベースを使うあたりでAIR一本にシフトしようと思います。

 今回はまだ解説は無いですが、
 右クリックでソースコードが見れるようにしてあるので、
 これまでのサンプルとどこら辺が変わったか見てみると面白いかなぁと思います。
 画像読み込み等の初期化処理をActionScript3らしくイベントで制御してみました。

 ソースコード表示機能はPaperVision3D等のライブラリを読み込んでいると、膨大なファイル数になりますね・・・。

 サンプルを見てみる

2008年08月16日

Papervision 3D:Flash形式に変換してみた。

 AIRの良いところとして、
 デスクトップアプリでも、簡単にブラウザベースのFlashに変換できることがあげられると思います。

 というわけで、製作中のダンジョンRPGのダンジョン部分のコードをAIRからFlashに変換してみました。

 Flashのほうがなぜかポリゴンの欠けが激しかったので、
 ちょっとだけカメラ座標を遠ざける修正が必要でしたが、後はまんまのコードで動きました。

 以下がサンプルFlashです(クリックしてから方向キーで操作できます)

 サンプルを見てみる。

ゲーム制作:プラットフォーム選択の理由が

 今回Papervision3Dを用いたゲーム作成において、
 Webで動作するFlashではなく、AIRを選んだ理由に、AIRのフルスクリーンはFlashのそれとは異なりキーイベントを取得できるFULL_SCREEN_INTERACTIVEというモードがあるという点が大きかったのですが・・・。

 フルスクリーンにしたらポリゴン欠けまくった・・・

 利点がかなり減りました。
 デスクトップアプリの方が描画等のリソースが多く割けそうな気がしますが、Flashで動作するようにするという方向もありな気がしてきました。

 ちなみに、AIRでキーイベントを取得できるフルスクリーンモードは、

this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;


 Flashのようなユーザーアクションが必要ということもなく、いきなりフルスクリーンが可能です。ESCで勝手に抜けるのは同様ですが。

Papervision 3D:FlashCS3+FlexBuilderの連携

 のんびりとPapervision3Dを用いたRPG製作を進めていますが、
 戦闘処理の際のメニューなどでボタンを作成する場合にFlex Builderだとタイムラインの概念が無いので、ちょぅと苦労しそうな気がしたので、FlashCS3からパーツを書き出してFlex Builderで利用する方法を試してみました。

 やり方は簡単で、
 FlashCS3のライブラリ無いの出力したムービークリップで右クリック、
 「swcで出力」を選択。

 出力した拡張子swcをFlexuBuilderのプロジェクトで利用できるように、
 ディレクトリまたはファイルををライブラリに登録してあげれば、クラス定義のように利用することが可能になります。

 Webで公開されているswcを利用したことはありましたが、
 自分で出力するのは初めてでした。

 8月15日進捗

 画像上だとほとんど変化ないですが、
 戦闘とか能力値のシステムを作成中・・・なんか、ゲーム作っているっ!! という感じがして楽しいですねー。
 あんまりActionScriptの勉強にならなかったりしますが・・・。

 かなりコードが追加されたので、今度まとめて紹介しようと思います。

【Papervision3Dが詳細されている参考書籍】


 Papervision3DはGreatWhite(バージョン2)の紹介がされています。
 タイトルからもわかるように、ActionScript3全般(3DからWii+AS3まで)の知識を幅広くあつかった書籍。
 幅広いにも関わらず、十分な深みも有する素晴らしい本です。




 Papervision3Dの1系の扱いかたの基本が学べる本。
 カメラの移動とかはこの本を参考にしました。

 

2008年08月07日

Papervision 3D:ダンジョンRPGをつくろう計画発動!!

 直接の動機はAIRで作るものがなくなったからなのですが、
 念願のゲーム制作にちょいと腰をあげようと決意しました。

 Papervision3D+AIRで、
 3DダンジョンRPGをつくり始めましたが、
 ノウハウ0の、目を瞑って登山を開始したようなもので山頂まで行く自信はまるでなしです。

 とりあえず一回目はPapervision3Dの基本的な表示を扱ったサンプルコードとAIRで実際に動作を確認できるファイルをダウンロードできるようにしました。

 サンプルを見てみる

 目指せSFCの女神転生で行きたいと思います。

 サンプルを動かしてみるとわかるのですが、
 カメラがPlaneな板に近づくと板が消えてしまうという困った状態が発生するようです。
 ここら辺は今後の課題です。
 

2007年06月14日

次のVisualStudioが見えてきた?

 Vista向けのWPFがXAML(XMLとかHTMLライクなマークアップランゲージ)でビューを定義したり、
 VistaのガジェットもXML+JavaScript(一部Microsoft独自の拡張)と、
 Webとデスクトップアプリケーションの境がなくなってきて嬉しい限りの現状ですが、VisualStudio2005でVistaプログラミングは別途インストールするものが多かったりとちょっと面倒でした。

 次期VisualStudioが発売されればその面倒ともおさらばできそうです。

 http://blogs.msdn.com/dd_jpn/archive/2007/06/13/3261150.aspx

 「Microsoft Visual Studio 2008」と名称が決まったようです。来年発売ですかね。

 Silverlightの開発環境も、これで整うのかな。
 それまでにFlashとDirectXを使えるようにしておかないと。

Profile

シーラカンス

Recent Comments
QRコード
QRコード
livedoor Readerに登録
RSS
livedoor Blog(ブログ)