2009年07月23日

ホントはよくないかもしれないんだけど

昼休み、会社から自分の作ったFlashゲームを動かしてみたんだけど、試合終了後、乱闘しだすバグ発見。
つまりは戦闘終了後、セレクト画面に戻らずまだオクタゴンの上で戦い続けたり、「クラウザーさん、もうやめてください!その人、もう死んでます!」状態になった。
でも、家のPCからやると全然問題なく動いた。
会社のPCではFlashの共有オブジェクト(Flash専用のキャッシュ)がまったくローカルに保存されてなかったため、それが原因じゃないかと今のところ考えられる。(※)
ただ困ったことはFlashPlayer10のバグの可能性もあり、その共有オブジェクト関連のバグも明らかになったばかりらしく、Adobeがその対処をしていないことがググってみたら数点書いてあった。(ググってもまだ情報が少ない・・・・・・まだFlexは浸透してない技術なんだと思う)
もし俺のコードの書き方が原因じゃないならば、困ったことになる。
せっかく作った戦績システムがつかえない。
※共有オブジェクトはゲームだったらセーブデータにつかえる。

それともうひとつ気づいたこと。
いろんなブラウザでいじってたら、なぜかうちのFLASHゲームはFlashPlayer"10"よりFlashPlayer"9"搭載のブラウザのほうが格段に速く動作した。
この差は一体なんだろう??

またいろいろいじりました。
http://bcosizm.hp.infoseek.co.jp/mma/index.html

[Z]キーでタイム。
[X]キーでオートで戦ってくれます。
戦績システムは今、上記の件により活動休止中です。
posted by B.cos at 00:42| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年07月20日

なにも予定がない連休だからこそ

MMA_20090720.jpg

やれることはやっておいた!
一日中、部屋にこもってて暑かったけどさ!

http://bcosizm.hp.infoseek.co.jp/mma/index.html

最後に残った機能、「セレクト画面の追加」「戦績の記録データの作成」をいれて、当初の予定の最低限をひととおりそろえることができた。
これでやっとテストプログラムからβ版までこぎつけることができた。
・・・・・・とはいってもまだまだテキトーなもので、細かなバグ(※)や細かい調整はいっぱいあるのだけれど、ひとしきり作り終えてやっと一息つける。
ココまで作っておけば、あとはちょこちょこいじって楽しむ程度で済む。

それにしても、最初はFlashの追加要素的プログラム言語でここまで(無料で)できるとは思わなかったけど、試行錯誤すればなんとかなるもんだね。
ググっても情報が少ない中、自分でもよくやったと思う。
このへんは長年の経験かなーと思うけど。(自画自賛も甚だしいか・・・・・・)

最初この企画をあげたのが5年位前で、最初は仲間もいて凄いものができそうな予感がしてたけど、なんだかんだが続いて仲間にも都合ができてしまって、結局一人になって、なにはともあれ全部俺でやみよーかということになって、最初考えてたのよりみすぼらしくなって、それでもやっとここまで来れたかってとこなんだけど、山頂について弁当食ってる気分に近いかもね、ほんと。

でも結局のところ、タダの自己満足なことなんだよね。
場合によっては金になる技術を使って、自分でも何やってんだと思ってはいるんだけどさ、金儲け=思い通りにならない、からなあ。
でも、思い通りにする気持ちを味わうためだけに、自分は頑張ってる気がする。
意味があるかど〜か全然わかんないけど。


※今わかってるバグ
・戦績記録をキャッシュのような形でローカルに保存するはずができてましぇーん。
・プレイヤー1,2のカラーが、自動でごっちゃになる。
・途中から全体のフォントが指定した記憶のない形状になる。
・多分カウンターか相打ちの時だと思うけど、そこから当たり判定がなくなるときがある。
posted by B.cos at 02:24| Comment(2) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年07月12日

ActionScript3.0の配列オブジェクトでつまづいたこと

プログラミングの話。

Flashのプログラム管理に使われてるActionScript。
現在、開発している格闘ゲームはActionScript3.0でコーディングして、AdobeのFlexSDKでコンパイルしてFlashコンテンツを生成している。
ActionScriptはJAVA並にカッチリしたオブジェクト指向言語で、そこまでオブジェクト指向言語に慣れてない僕はたびたび悩まされる。

以下は今日気づいた、配列オブジェクト(Array)に関する失敗。

【その1】
配列データに新たな配列データを後ろにくっつけるconcatというメソッドの使い方を間違えていた。

old=new Array("A","B","C");
add=new Array("D","E","F");
old.concat(add);

とすれば、

old=[A][B][C][D][E][F]

となるかと思いきや、よく調べてみたら

old=old.concat(add);

としなければならなかったようだ。
配列オブジェクトのメソッドで「追加」だから、メソッドを動かすだけでいいのかと思ってたんだけど、まさか返し値のほうに追加されたデータがくるとは・・・・・・まあ、そっちのほうが汎用性が効くのか。


【その2】
配列データの初期化方法について、配列の初期値を用意してそこから配列オブジェクトを生成しようとしたんだけど、

array01 = new Array(1,2,3,4);

では、

array01⇒[1][2][3][4]

と思ったとおりになった。

が、

array02 = new Array(5);

と、「配列だけど今のところ1個だけでいいや」と引数を1コだけにすると

array02⇒[5]

じゃなく

array02⇒[][][][][]

と、まだ何もはいってない5つのデータの箱ができてしまう、そんな仕様になっていた。
なんとも紛らわしい。

まあ、結果としては、

array01= [1,2,3,4];
array02= [5];

と書けばいい話だったんだけど、「それだったら配列までオブジェクトにしなくてもいいんじゃね?ポインタでいじればそれでいいんじゃね?」とC言語からプログラマーになった人間としてはそう思う。
posted by B.cos at 01:17| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

MMAゲーム進捗

月に一度はチャリンコのカゴにゴミを捨てられています、B.cosです。


MMA_20090711.jpg

思考ルーチンを組み込み、組み技エスケープの難易度要素に相手の残りガッツ(体力/HP)を入れて、あと説明書をいれてみた。
あとはキャラセレクト画面か。

http://bcosizm.hp.infoseek.co.jp/mma/index.html

以下、所感。

・思考ルーチン、まだまだもの足りない気がする。

・組み技エスケープの難易度アップに関しては「残りガッツ(体力)」、「残りブレス(呼吸)」、「腰の入れ過ぎているか否か」以外にもまだ組み込める要素があるのではと思う。
また、今自分はもう時代遅れのスペックのノートPCで制作してて、組み技のエスケープはよほど相手の戦術にはまらない限りおおむね脱出できているのだが、最近の平均スペックのPCでは難しいかもしれない。
(アプリケーション内で連打を受けるイベントと、フレーム変更を行なっているイベントが別なので)

・説明書、スタッフロールと、あと音楽の出所を明記しないといけない。
音楽は魔王魂様からお借りしています。
(http://maoudamashii.jokersounds.com/)
そのうち明記します。
posted by B.cos at 00:30| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年06月20日

MMAゲーム、進捗【20090620】

MMA_20090620.jpg

http://bcosizm.hp.infoseek.co.jp/mma/index.html

------------------------------------------
やり方はFlashのページにもありますが、
詳しい説明は
http://cuma.seesaa.net/article/120584639.html
でお願いします。

------------------------------------------
【主な追加点・修正点】
[勝負が終わるたびにリスタートがかかるように]
プレイヤーキャラは相変わらず固定ですが、ランダムで相手キャラが変わります。

[FPS表示をなくしたら]
実行速度が格段にアップしました・・・・・・
WinAPIのGDIと同じように、画像をメモリに持ってきて貼るより、たくさん図形を作ったり文字を画面に描いたりするほうが処理が重くなるのかもしれない。

[関節技・テイクダウン技から逃げづらく]
ゲーム速度が上がったせいでちょっとパラメータの数値が相対的に大きくなりすぎたのかも。
「breath」(青いバー)を極限まで下げないよう、もしくは腰を入れるような動作があると格段に逃げにくくなる(連打しなきゃいけない数値が増える)ので、要注意です。


------------------------------------------
【今後、追加する機能】
・セレクト画面作成
・思考ルーチン
・バランス調整
・追加したい技

今はとりあえずの完成を目指します。
それにしても、ソースコードが書けば書くほど汚くなる(--;)
posted by B.cos at 21:56| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年06月15日

ゲームの続編を予想して遊んだりするよね?

昨晩、友人と電話で話してるときに、某後輩と数年前(SIRE NTが出るずっと前)に「ホラーゲームのサイレンシリーズ、無人島が舞台だった2の次はどこが舞台になるか」話したことを思い出して話してみた。
面白がってはもらえた。

僕らの考えた舞台は雪積もる寒村。
ゾンビ映画にありがちな、死んだはずの人間が徘徊するフィールドを主人公はなるべく戦闘しないようにして脱出せねばならないが、敵は歩く死体だけじゃなく雪も敵となり、そして場合によっては味方にもなる。

---------------------
雪があることによる障害
---------------------
・傷を負って血を流せば、白い雪に血の赤はよく映える。(つまり近くにいることが敵にばれる)
・雪が降っていればいつか消えるが、足跡がつく。(足跡を消して相手をまくことも可能だが)
・吹雪は体力を奪う。
・氷上は気をつけて歩かないとすべる
・新雪には足をとられる。
・屋根の下を歩く時は要注意。(屋根から雪やらツララやら)
・雪でとじられた屋内ではかえって音が響くかも?

---------------------
雪があることで助かること
---------------------
・よく雪がつもった場所では音が通りにくいこと
・吹雪くと視界が通らなくなる(もちろんこちらにとっても)
・雪玉を投げることで注意をそらすことが可能。(木や屋根の上に積もった雪を落とすとか)
・大切にしたいものや、ワナを雪の下に隠しておくことができる。(また、何が埋まってるかわからない)


結局、一番最初の話をキャストを変えて再構成してさらにグロくしたものがPS3で続編として出たわけだけど、雪という視界や音に関わるギミックはPS3だからこそやって欲しいよな。
「あんたがとりあえず簡単なのを作ってみたら?」と言われたけど、残念なことに今のところそこまでやる衝動がない。
posted by B.cos at 00:48| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年06月08日

MMAゲーム、全キャラ、一応そろえた。

MMA090608.jpg

前回の
「Error #2044: ハンドルされていない IOErrorEvent : text=Error #2035: URL が見つかりません。」
の原因はファイル名と呼び出し側のプログラムのURLがあべこべだったことでしたOTL

http://bcosizm.hp.infoseek.co.jp/mma/index.html

全6キャラ、成分無調整ですが一応作りました。
相変わらずプレイのたびに、

『ブラウザ再読み込み→ローディングしなおし』

の投げっぱ状態ですが、一応遊べます。
1プログラマーの実験かつオ●ニー創作に付き合ってくださる優しいお方がいてくださったらと思います。

再度、やり方の説明。

------------------------
やりかた
------------------------
ローディングしてる最中に画面クリックして、そのまま戦闘開始。
もう一回やり直したいときはブラウザのリロードを押してください。
(いつかこのへんはなんとかします)

キーボードを使って操作します。
十字キーがわりが[W],[S],[A],[D]の[山形配置]。
ガードと攻撃ボタン2つは、[G],[H],[J]の[バーチャファイター方式]。
一度、指を当ててみればなんとなくわかると思います。

それらで移動、攻撃、防御を行ないます。

まず[スタンド]、お互いに立って向かい合った状態からはじまります。

・移動は[山形配置]の[A][D]
・攻撃は[H][J]と[山形配置]の組み合わせで、おおまかにわけて上段打撃、下段打撃、組み技の三種類が出ます。
・[G]を使った防御は上段打撃のみを防ぎ、[G]を押したまま[山形配置]の↓を押せば下段を防ぎます。
・組み技は主に相手を寝かせる[テイクダウン]、相手を「参った」させる[サブミッション]、寝技で下になった状態から逃げる[エスケープ]、つかんで打撃をくらわせる[掴み打撃]があります。
・組み技の防御は技が極まる前に[山形配置][バーチャ形式]のキーを一定数連打することで逃げられます。連打の一定値は青のバーの[呼吸]が少ないほど、攻撃中であるほど(特に腰をいれるような打撃)高くなるので慎重に。
・攻撃動作の中には飛んだりかがんだり、上段や下段の打撃をかわしながら攻撃するものがあります。

[テイクダウン]するorされると[グラウンド]に入ります。

・操作は移動がない、打撃に上段下段がない以外はスタンドと同じです。
・[トップ]の上のほうはパウンド(パンチでダメージを与える)、サブミッションができます。
・[ボトム]の下のほうはガード(パンチのダメージを軽減させる)、サブミッション、エスケープができます。

絶対的に[トップ]が有利ですが、息切れや攻撃へのカウンターなどを狙って[エスケープ]や[サブミッション]を狙ってください。
逆に[トップ]はそんな[ボトム]の挙動に注意しながら、チャンスとばかりに攻撃を重ねていきましょう。
------------------------

キャラは顔がツギハギの「禍八(Magahachi)」しか使えません。
ワンツー(左攻,右攻)とロー(↓+左攻)、首相撲の膝(←+左攻)を使ってればガードがおろそかでも結構いけます。

あと作らにゃならん大きな部分は画面遷移と、ちゃんとしたインターフェース、それとバランス調整。
それと、これは仕方ないのかもしれないけど、画像の量が多すぎてFPSが極端に下がってることをなんとかしたい。
うちのジャンクノートだと6/20、ちょっと前のPCからだと10/20。
打開策を探したいところ。
posted by B.cos at 23:36| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年06月06日

ねむねむエミネムだけど。

備忘録。

Flexでコーディングしたプログラムで一気に100個近い画像ファイルを順番に読み込んでくモノを作ったんだけど、たまに

「Error #2044: ハンドルされていない IOErrorEvent : text=Error #2035: URL が見つかりません。」

というエラーを検出する。
FlashPlayerの出すこのエラーの解を検索で探してみるけど、原因は様々で結局のところ、よくわかってない。
ありうるとしたらその指定したURLのファイルがないことになるんだけど、残念なことに「ある」んだよな。
一回目動かした時はうまくいっても二回目になってダメだったり。
それでコンパイルしなおすとうまくいったり・・・・・・??
一気にたくさんのファイルを読んでるからかな?
一度に読むということはさすがにしないようにはしてるつもりで、一応エラー検出のイベントハンドらは作ったんだけど、そこにもひっかからない。
自分ではまだやってないけど、try〜catchもひっかからないそうだ。

Adobeさん、エラーメッセージ、もうちょっとわかりやすくしてください(T-T)

それにしても読み込むファイルの量が増えたら、FPSがガクンと下がった。
一度に読み込むファイル量と、描画処理の軽量化を考えねば。
posted by B.cos at 02:41| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年06月01日

総合格ゲー制作進捗[20090531]

mma_20090531.jpg

http://bcosizm.hp.infoseek.co.jp/mma/index.html

現状、キャラを一番最初に作ったキャラ固定でやってたのですが、テストでいじってたそのままを載せてしまって、一番新しいキャラにしちゃいました。
彼の名は凶悟(kyo-go)、テイクダウンとパウンドがごっついやつです。

相変わらず、核の部分ばかり作っててキャラ選択等のインターフェースも作らず、いい加減なテストケースのまんまで恐縮です。

もう一度やり方をまとめたおきます。

------------------------
やりかた
------------------------
ローディングしてる最中に画面クリックして、そのまま戦闘開始。
もう一回やり直したいときはブラウザのリロードを押してください。
(いつかこのへんはなんとかします)

キーボードを使って操作します。
十字キーがわりが[W],[S],[A],[D]の[山形配置]。
ガードと攻撃ボタン2つは、[G],[H],[J]の[バーチャファイター方式]。
一度、指を当ててみればなんとなくわかると思います。

それらで移動、攻撃、防御を行ないます。

まず[スタンド]、お互いに立って向かい合った状態からはじまります。

・移動は[山形配置]の[A][D]
・攻撃は[H][J]と[山形配置]の組み合わせで、おおまかにわけて上段打撃、下段打撃、組み技の三種類が出ます。
・[G]を使った防御は上段打撃のみを防ぎ、[G]を押したまま[山形配置]の↓を押せば下段を防ぎます。
・組み技は主に相手を寝かせる[テイクダウン]、相手を「参った」させる[サブミッション]、寝技で下になった状態から逃げる[エスケープ]、つかんで打撃をくらわせる[掴み打撃]があります。
・組み技の防御は技が極まる前に[山形配置][バーチャ形式]のキーを一定数連打することで逃げられます。連打の一定値は青のバーの[呼吸]が少ないほど、攻撃中であるほど(特に腰をいれるような打撃)高くなるので慎重に。
・攻撃動作の中には飛んだりかがんだり、上段や下段の打撃をかわしながら攻撃するものがあります。

[テイクダウン]するorされると[グラウンド]に入ります。

・操作は移動がない、打撃に上段下段がない以外はスタンドと同じです。
・[トップ]の上のほうはパウンド(パンチでダメージを与える)、サブミッションができます。
・[ボトム]の下のほうはガード(パンチのダメージを軽減させる)、サブミッション、エスケープができます。

絶対的に[トップ]が有利ですが、息切れや攻撃へのカウンターなどを狙って[エスケープ]や[サブミッション]を狙ってください。
逆に[トップ]はそんな[ボトム]の挙動に注意しながら、チャンスとばかりに攻撃を重ねていきましょう。

------------------------
以上が簡単な説明です。

今のところ気になってるのは組み技の攻防で、攻撃する方は相手が防ぎにくいタイミングで仕掛け、防ぐ方はボタン連打しまくるという形なのですが、攻撃側にも防御側の邪魔をする意味で連打する動作を入れてもいいかなーと考えてます。
それとちょうどいいバランスの連打数を見つけ出さないといけませんね。
それは打撃戦のバランスもそうなのですが、まずはテストプレイ。

あと、絵に関しては、やっぱりチョコチョコ直したい。
使いまわしでやってるようないい加減なレベルですが、気に食わないものはやっぱりダメです。
今日も両足タックルからのテイクダウンと、スープレックスを直しました。
ちょっとしたことを気にしすぎてもしゃーないのはわかっちゃあいるんですが。

それと、スタンド<->グラウンド<->組み技の場面移行中に、明確に何が起きたかを伝えるメッセージを作らないと、ユーザーにわからないですね。
早めに対処しないと。

ゲームの核の部分オンリーとはいえ、まだまだやることはいっぱいですよ。
posted by B.cos at 00:36| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年05月25日

モヒカンとフルチカゾン

MMA02_20090524.jpg

http://bcosizm.hp.infoseek.co.jp/mma/index.html

一応ゲームらしくなってきた。
もう一人キャラ増えてランダムで相手が変わります。
(スタンドからいきなりキメを狙ってきます。何かを予感したらボタン連打です)
ちなみにプレイヤーはまだ一番最初のキャラしかつかえません。
再プレイはブラウザのリロードボタンを押してください。
画面遷移とかのインターフェースはまだ作る段階じゃないので、しばらくはこのままです。


友人と遊んでたら頭痛がするくらい疲れたんだけど、家に帰って飲んだコーヒーで眠れずこんな時間でございます。
もう、そういう生活習慣なのかなあ。
ああ、明日、会社サボりたくなってきた−。
いつもブルーなサンデーナイト。

僕にしては珍しくボーカロイド職人な人でファンになっちゃいそうな人がいて、最初は電子ドラッグというグループに入れられてる↓をループで聞くようになったんだけど、

不思議な言葉を早口で連呼させることができるのは、システムではじめて英語の発音を歌わせることができる仕様にしたからなのかな??
posted by B.cos at 00:31| Comment(1) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年05月17日

日曜日よりの死者。

MMA02_090517.jpg

■格闘オタが格闘FLASHゲームを作ってみる[第337回]
土曜日に10時間以上寝てしまうくらい疲れてて、友人に会う気も、柔術で汗をかく気にもなれず、ずっと「いい加減やらねばなあ」と思ってたゲームシステムの最低限の確立を今週末のうちにガーッとやろうと思った。
やっぱり、こういうのは思いっきり時間をとって一気にやるに限る。
デバッグもうまく進み、システム構築も進み、想定外のところもちょっとずついじりながらいいシステムにはなってきた。

が、

結果、自分でも笑ってしまうくらいおもしろくないゲームになった。
http://bcosizm.hp.infoseek.co.jp/mma/index.html
(勝負はKOとるか一本とるまでで、勝負がついたらそれ以降に何もありません。まだそのへんのインターフェースを用意してないので、もう一度プレイしたいときはブラウザの更新ボタンを押してください)

地味なのは否めないとして、なんだか手ごたえがない。
そこが致命的だ、かぎりなく残念だ。
エフェクトもつけてないし、不具合もチラホラ見受けられるし、調整もチマチマしていくんだろうけど、とりあえず用意しているキャラクターデータと、スタミナの概念を入れてみようと思う。
まーそれでも、とりあえず安心できるところまでは、やりきった。
例えるならばテイクダウンされて攻められ続けて、やっとスイープで上を取り戻したって感じか。


■AdobeFlex&AdobeAIR
プログラム開発技術の話。
ここ(↑)まで来て思うのは、AdobeFlexは言語仕様自体にクセがあるものの(既存のFlash技術を元にオブジェクト指向をくっつけたせいか?※)、ここまでのものは作れるんだなってわかった。
まぁ僕が作ったものは使用するファイルの量が多くて動作が遅い、という欠点があるけれど。
しかもこれでFlexSDKに同梱されてるAIR用のコンパイラで、つくったFLASHコンテンツを再コンパイルするだけで、WinやMacなど違ったOSのローカル環境で動く実行ファイルもつくれるわけで、一石二鳥がサクっとできるらしい。
開発環境としての"Flash"で作られたゲームはたくさんあるけど、プログラム開発環境のFlexから作られたFlashコンテンツは少ないらしい。
その数少ない例になれたらいいな、とおこがましくもそう思う。

※関数の引数で参照渡しはクラス宣言されたオブジェクトじゃないとできない、という言語仕様には本当にびっくりしました。やりすぎじゃね?(苦笑)


■光回線の営業
しつこいし、無礼者がくるので困る。
覚えのある方もたくさんいらっしゃるでしょうけど、めっちゃ飛び込み営業きませんか?
光回線つなぎましょーよー!って、すっげー必死なの。
よくチラシがポストに入ってたり、営業が一軒一軒のネットと電話のチェックするふりして売り込みにくるんですよ。
昨日きた人なんて、自分がどこから来た何者で、誰の差し金で来たのかをまったく説明しないで、延々と喋ろうとしたからサッサとドア閉めた。
自分が何者か、まず最初にハッキリするくらいはしようよ。
このまえきた女性も最悪だったなー。
こちらの話にかぶせてかぶせて、反論させないようにしてくる。
下請け会社でノルマもあるんだろけど、そんな風にエンドユーザーを不快にしてまでやる商売は、社会の理から外れることでしょう。
誰だって好き好んでやってるわけじゃないんだけど、矛盾を感じます。


■髪切った&選挙
昨日予約とろうと電話したらいっぱいだったので、今日は早朝に。
朝から散髪ですっきりするのもいいもんですな。
このまえ切ったのが3月だったんだけど、我ながら髪のびるのが早いね。
ヒゲはもっと速いけど。

選挙の投票へ。
用意された選択肢の中から選んで、ていうのは簡単だけど、その内容によっては難しいものだよね。
選挙演説とかあんまり聞く暇なかったからなあ。
それでもなるべく候補者について調べて、投票してきました。
posted by B.cos at 22:31| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年05月09日

総合格闘FLASHゲーム、現状[2009/05/09]

mma_090509.jpg

http://bcosizm.hp.infoseek.co.jp/mma/index.html

風邪っ引きですがここまでやりました。
操作はほとんど同じですが、説明書の技は結果としてデタラメになりました。
ジャブ打とうとすると首相撲からの膝蹴りになります。
というわけで、ぜひともテストプレイもテキトーで。
まー実はまだ仕様もカッチリ決まってなかったりするのですが、
もっとテキトーでもいいのかもしれない。

【注意】
勝負が決まったり、一回グラウンドに入ってしまうとグラウンドのままだったりしますが、今のところそこから戻るには「画面の更新」しかないのであしからず。


本当は寝技の攻防にパンチ・ガード・組み技(スイープ・パス・サブミッション)以外に、バランスの崩しあいを入れてみようと思ったのですが・・・・・・複雑になるだけっぽかったのでボツにしました。

ガードしてる側は乗ってる相手のバランスを崩して、一本をとりやすい形にして、上はなるべくバランスを崩さないようにパウンドを打ったりパスして一本をとりにいく。
サブミッションはボタン連打で逃げますが、上側はなるべく崩されないほうが、ガード側はバランスを崩した方が技をかけられた相手に強いる連打数を増やせるってことにしようとおもってました。

そんなこんなで半年間考えてたことですが、もーザックリと捨てました。
もっとうまい表現方法があればいいんですが、しっくりくるものもなく、ただ複雑になるだけなので。
やはり自然で直感的でないと。

代価案でシンプルだけど揺さぶりをかけあう仕様をこれから仕込もうと思います。

本当はRIA開発ってどんなものか簡単なプログラムを作って試すはずが、いつの間にか本気で面倒くさいもの作ってしまってる自分がいたりします。
他にも試したい開発環境があるのになぁ。
時間がもっと欲しいくらいですが、まあ、毒くらわば皿まで。

ちなみに音楽は「魔王魂」さん(http://maoudamasii.eins5.com/)からお借りしています。
posted by B.cos at 23:31| Comment(1) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年04月08日

開発状況。

20090406a.jpg 20090406b.jpg

音入れてみた。
まだその状態でリリースはしないけど。

キーボードで連打したらキーボード壊れるかなあ・・・・・・とか構想中。

内部パラメータ丸出しです。
ダメですねw

いつの間にかいじりまくってたら、CPUキャラが体力ゲージなくなってもダウンしなくなった。
バグですね、やばいですね。
posted by B.cos at 01:11| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年03月19日

うちの環境じゃ、20FPSが限度。

mma_screen_20090318.jpg

操作も内部処理も大きく変えて、FPS計測もいれて、やってみた。

FLEXで格闘ゲーム(PC専用)
http://bcosizm.hp.infoseek.co.jp/mma/index.html

30FPSを目指したけど、うちの766MHzの旧世代ノートPCじゃ20FPSが限度か。
速度以前にまだまだ理想像からは程遠い。
絵もなんか思った以上に失敗だったし、寝技もまだメインシステム入れてないし。
目標としてはトップとガードが比較的イーブンになるような感じ。


FPS表示は「FlashゲームPG講座」さん(http://hakuhin.hp.infoseek.co.jp/main/as3.html)のサンプルからクラス作ってみました。
http://hakuhin.hp.infoseek.co.jp/main/as3/develop.html#DEVELOP_02


以下、そのパクりソースクラス

researchFpsClass.as
(PGわかって興味のある方は字下げしてくださいな)
---------------------------------------
package
{
import flash.utils.getTimer;
/**
* ...
* @author DefaultUser (Tools -> Custom Arguments...)
*/
public class researchFpsClass
{
private var resInterval:uint;//FPSを測る間隔
private var numFrame:uint; //描画した回数
private var old_time:Number; //前回計測時の時刻
public var fps:uint; //算出した現在のしたFPS
public var frameRate:uint;
//期待されるフレームレート(Stageオブジェクトなどからとるべし)
public function researchFpsClass(_resInterval:uint, _frameRate:uint)
{
resInterval = _resInterval; //FPSを測る間隔
numFrame = 0; //描画した回数
old_time = getTimer(); //前回計測時の時刻
fps = 0; //算出した現在のしたFPS
frameRate = _frameRate;
//期待されるフレームレート(Stageオブジェクトなどからとるべし
}

//FPSを取得し保持する。
public function getFps():void
{
numFrame++;//経過フレーム数を加算
//時間経過時にFPSを算出、次の算出のための時刻をold_timeに記録
if (getTimer()-old_time >= resInterval) {
// 少数第1位まで表示
fps = numFrame * 1000 / (getTimer() - old_time);
fps = Math.floor(fps * 10) / 10;

//次の算出の準備
old_time = getTimer();
numFrame = 0;
}
return;
}
//**** Class End *****
}
}
posted by B.cos at 01:00| Comment(2) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年03月17日

簡単なものだけど、

Flex用の、複数画像ダウンロードクラス(toFLASHコンテンツ)
仕事のプログラムがうまく行かなかったので、腹いせでやった。

コンストラクタと画像読み込みメソッドに画像ファイルのパスが入った配列データを渡して、画像ファイルの配列を生成するクラスです。
画像を使うときはこのクラス内部にアクセスして使います。
くわしく見たい人は字下げして見てくださいな。

//複数画像アップロードクラス
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;

/**
* ...
* @author B.cos 2009/03/16
*/
public class ImagesLoaderClass
{
public var numDownload:uint;//DL数
public var numDlMax:uint;//予定DL数
public var imgPathList:Array;//画像のファイルパスリスト
public var imageList:Array; //画像リスト
public var loader:Loader; //ローダー
public var finish:Boolean;//ロード完了フラグ

public function ImagesLoaderClass(imgPathArray:Array)
{
numDownload=0;//DL数
numDlMax = imgPathArray.length;//予定DL数
imgPathList = imgPathArray;
imageList = new Array();
loader = new Loader(); //ローダー
finish = false;//ロード完了フラグ
}

//----------------------------------------------------
//イメージロード
//----------------------------------------------------
public function ImageLoad():void
{
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgloadCompleteHandler);
loader.load(new URLRequest(imgPathList[numDownload]));
return;
}


//----------------------------------------------------
//読み込み完了イベント→次の画像を読むor完了を指示
//----------------------------------------------------
public function imgloadCompleteHandler(evt:Event):void
{
imageList.push(Bitmap(loader.content));
numDownload++;

if (numDownload >= numDlMax) {
finish = true;//ロード完了フラグ
} else {
this.ImageLoad();
}
return;
}
//END
}
}
posted by B.cos at 00:40| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年03月10日

仕事の合間をぬって。

1103662455_193.jpg1103662455_54.jpg1103662455_246.jpg

ここまでやったけど、まだプログラム的にやることいっぱいあるんだよねえ。
ネット上のファイルをアップするクラス、パクって作ったけど、かなり改良しなきゃいけないし、あとはゲーム進行が複雑にならないように綺麗な設計しないと。
それとゲーム速度も気にしないといけねえし(今までやってなかったけどfps表示もやらんとね)、ゲームバランスをしっかり整えないとだめっすね。
ActionScript3もまだまだ扱いなれてないし。
(プログラム言語としてなんだか違和感があるんだよな、明確なルールが見えない。なぜこれがエラー?バグ?うまくいってるとこコピペしたら直った!・・・・・・ってことが多い)

というわけで先は長い。


気分転換に恐怖FLASH。
短いので軽く楽しめます。

「腐った金魚の呻き声が聞こえる」
http://www.geocities.jp/buruton2000/pirobungei.html

徐々に怖くなってくる秀逸なテキストです。


「こ〜こはど〜この箱庭じゃ?」
http://www.geocities.jp/usyhr/hakoniwa/

最初はどういうものなのかわかんないと思う。
掲示板に書き込め、というわりに書き込めないし、勝手に話は進んでくんだけど、なんども[HOME]を行き来してりゃ話はすすんでいきます。
リアルに気持ち悪くなってきますw
posted by B.cos at 21:52| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年03月05日

グラデーションを体力ゲージに使おうとしたのですが。

illegular.jpg

ActionScript3.0でブラウザに出力しっぱなしのビットマップデータに描画するクラスをつくり、

//塗りつぶし矩形の描画
public function fillRect_hp_meter(x:int, y:int, w:uint, h:uint, c:Array, a:Array, r:Array):void
{
 var my_matrix:Matrix = new Matrix();
 my_matrix.createGradientBox(50, 50, 0, 0, 0);
 var rect:Shape = new Shape();
 rect.graphics.beginGradientFill(GradientType.LINEAR,c, a, r,  my_matrix, SpreadMethod.PAD);//グラデエーション塗りセット
 rect.graphics.drawRect(x, y, w, h);//四角作成
 rect.graphics.endFill();
 bd.draw(rect);//クラスメンバのBitmapへ作った四角を描画
}

とかいうグラデーションの四角形を書くメソッドを作って、
まったく同じメソッドの呼び方をしたにもかかわらず、上記写真
のようにまったく見た目の違う体力ゲージバーが・・・・・・

ActionScriptって難しいなあ。
他のプログラム言語なら通用することが通用してないような・・・・・・
posted by B.cos at 00:45| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年02月10日

動画作ってもらっちゃったみたいです。



一声かけてくれればいいのに・・・・・・・
以前、417氏から「ニコニコにある」と聞いて知っていたのですが、ちょっとコメしてみました。
新鮮な感じです。
正直なところ、縦長になってたり、身内で用意した音楽使ってもらえてなかったりと、いろいろ注文つけたいところはあるんですけど、「本気で楽しんでいただけた」という真心を感じました。
かわいくない言い方しちゃったけど、実際嬉しいですね。
病気して仕事もダメになってすべてに絶望した時、「このままじゃ腐る」と思ったことがこのゲームを作り始めた理由なんですけど、時が経ってこういうことがあると本当にやってよかったなーと思うんですよ。
posted by B.cos at 22:41| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年02月03日

複雑なのはもういいやってことで。

ガチでFLASH(Flex)で総合ゲーやってみることにしてみた次第で。

mma_flash01.jpg

いざFLASHでやろうと思ったら、操作体系に悩みんぐ。
基本キーイベントだから同時押しは手間がかかりそうだし、
右クリックがつかえないのも痛いなぁ。

グラウンドの対決もガードポジション&インサイドガードだけで、
殴り合いとバランスの競り合いとか簡単なものにしようかなと、
思ってます。
テイクダウン、上をとってもバランス要注意、ってか。
バランス崩れた方が極められたり、エスケープできたりとかさ。
簡単につくろうとは思うけど、うまくいけばいいかなー。


ちなみに一緒に前々からウィンドウズでちゃんとしたのを作ろう
としてたのも(現在友人の都合で頓挫w)、このまえ友人と呑ん
でて、

「(オレの描いた絵とか仕様とかみて)ここまでリアルな格闘技
 っぽくする必要ねえだろ?めんどうくさくね?」
「つかそれゲームとしてどうなの?面白くなさそじゃね?」

とか随分な意見が飛び交い、結果として本編の方もなるべくシンプル
にしちまおうって感じになってきた。
・・・ということはもちろん今まで私が数え切れないほど描いた大量
の絵もムダになるわけですが・・・・・・なんとか再利用する方向で(汗)
posted by B.cos at 01:27| Comment(0) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする

2009年01月31日

ハメドと、僕らのゲーム制作と、お尻の話。

今日、仕事帰りに友人と飲んできた。

まず最初にはじめの一歩のエフェクトの再現をPCでリアルタイムでしたい友人向けにナジーム・ハメドの動画を。


悪態はあっても才ある人、いや彩ある人にはかなわないね、あこがれちゃうね。
ゲーム作るときにこの動きをパクろうとしたけど、なめらかだし、多彩すぎるし、ムリだったね。
実際できないし、パクリで表現できないし、完璧に負けるね。


飲んでる最中は二人で作ってる総合格闘技のゲームのはなし。
友人によるとデータ書き込むところと、立ち技→寝技の展開がプログラムできてなくて止まってるらしい。
いろいろあるらしく忙しいらしい。
お互い働いてて大事なこともそれぞれあるんだから、まーしゃーない。
無理なくできるだけ楽しくやってこ。

しばらくは俺がFLASHで簡単なルールのを作って試してみよーってなわけで。
俺らのモットーは「いつかは絶対完成させる」なんでいつかは、エフェクトばっちりのができるとは思う。
一緒にゲームを作るというつきあいがもう10年になって、それだけはお互い理解しあえてるから、状況はよくなくてもそこだけは心強い。
結果は一応いくつか出してるし。

で、残りのお尻の話だけど、やっぱいいよね、ってことでwww
posted by B.cos at 03:05| Comment(1) | TrackBack(0) | ゲーム製作 | このブログの読者になる | 更新情報をチェックする