ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

プロジェクト8

一応完成

プロジェクト8は最初に考えていたものを実装したので、これで一応完成。 左右に壁があるステージで、ボタンを押すとプレイヤーキャラクターは逆側の壁へとジャンプする。上からは障害物が落ちてくるのでそれに当たらないようにする。障害物に当たると少し下…

動画キャプチャー

サウンド付けもとりあえず終わったので、画面を動画で公開してみようとキャプチャーしてみた。 とりあえず多少のコマ落ちはあったが、無圧縮ではキャプチャーできた。ところがそれをwmv形式に変換してみたらウィンドウの枠は表示されるがゲームのキャラクタ…

サウンド付けその2

適当に選んだサウンドを組み込んで鳴らしてみた。ところが鳴ったり鳴らなかったりとちゃんと正しく再生できていない。 調べてみたら、どうやら鳴っている最中にシーン遷移が起こってサウンドが解放されてしまっているのが原因のようだ。 ということで、ゲー…

サウンド付け

サウンドを付けるためにフリーの素材サイトからサウンドデータをダウンロード。 今回利用したのはこのサイト。 ザ・マッチメイカァズ2nd 【フリー効果音素材】 とりあえずダウンロードして、その中からイメージに合うものをピックアップ中。これがなかなかし…

ステージクリア実装

ステージクリア部分を実装。 とりあえずコードを書いて試そうとしたら、ゲームの難易度が高すぎてなかなかクリアできなくて困った。とりあえず難易度を下げてクリアできるように調整してステージクリアをチェック。 やっぱりゲームデザイン的に無理があるこ…

ゲームオーバー実装

ゲームオーバーを実装。 結局、プレイヤーやられのクラスからゲームシーンへはダイナミックキャストを使ってシーン自体を取得して通知することに。 ダイナミックキャストはゲームにはあまり利用しないほうがいいというのを聞いたことがあるけど何故だろう。…

プレイヤーやられ その2

ミスしてプレイヤーがやられてしまうところを実装中。 ミスしたらプレイヤーのタスクからプレイヤーミスのタスクへと移行するように実装。ところがプレイヤーのタスクが消えたあとも障害物のタスクがプレイヤーを参照しようとして落ちてしまう。そこでプレイ…

やられグラフィック作成

結局、ミスしたときの演出はやられタスクを新たに作成して実装することに決定。そしてやられたときのグラフィックを用意していなかったので作成。 まあ、いつものようにただの記号だけど。

プレイヤーやられ

プレイヤーがやられてしまうときの演出を追加。今まではすぐにゲームオーバーになっていたけど、スーパーマリオでやられてしまったときのようなちょっとした演出を追加中。 で、その演出をプレイヤーのタスクで行うか、それとも新たにプレイヤーやられタスク…

タイトル画面の追加

今まではゲームを実行するとすぐにゲームが始まっていたのだが、やっと今回タイトル画面を追加。 タイトル画面なのでタイトルを決めなくてはいけないのだが、とくにいいタイトルを思いつかなかった。 ということで結局タイトルはプロジェクト8そのままで。

調整

障害物の発生予告から、障害物が出てくる位置がちょっとおかしかったので調整。 以前よりはだいぶゲームの形になってきたけど、やっぱりまだなんかいまいち。このゲームのもとになったアイデアの面白さの部分が表現しきれていない。 そんななか、Wiiのスーパ…

素材作り

だいぶツールの使い方も分かってきて、自分のやりたいことがなんとなくできるようになってきた。 ということでキャラクターのグラフィックを書きなおし中。 いろいろいじってみるけど、まともに絵が描けないので、結局、ほぼ○とか□とかの記号になってしまい…

素材作り

とりあえず、さらなる調整は後回しにして、適当に書いた素材を書きなおしてもう少しましなものに。 とはいってもツールの使い方がよく分かっておらず、ちょっとしたこともかなり時間がかかってしまう。画像の一部分をアルファで抜きたいだけなのにどうやって…

調整

とりあえず、プレイヤーのジャンプ力や障害物の発生速度など各種パラメータをいじって、プレイ開始時は障害物の発生を抑えて難易度を下げ、ステージクリアに近くなってきたら障害物を多く発生させるようにしてみた。 前よりはましになったけど、やっぱり根本…

ゲームの難易度

だいぶ形も見えてきて、ゲームのクリアとゲームオーバー条件を設定してテストプレイ。 で、プレイして分かったのが、ゲーム開始直後が一番ゲームオーバーになりやすく、クリアに近づくほど難易度が下がっていくということ。 これではゲームとして面白くない…

プレイヤーの無敵時間

プレイヤーと障害物の当たり判定を処理したところ、障害物が連続でヒットしてあっという間にゲームオーバーになってしまう場合があるのが判明。 ということで、一回障害物に当たったら一定時間、障害物に当たらないようにプレイヤーに無敵時間を作るようにし…

プレイヤーとステージ

プレイヤーとステージの関わりの部分を実装。 まだ当たり判定が入っていないのでゲームオーバーにはならないけど、ぐっとゲームらしくなってきた。でも今はただ障害物をよけるだけになってしまっているので単調。 やはりリスクとリターンが無いのが原因だろ…

マップ画像の変更

新しいアイデアがはっきり分かるように背景のマップチップの画像を変更。 とりあえずペイントソフトでぐりぐりとマウスを使ってお絵かき。そして自分の絵心のなさに愕然とする。

調整

マップを狭くして、キャラクターの移動も早く、障害物の発生間隔も短くして、全体的なテンポを早くした。よりアクションゲームっぽくなったけど面白くない。 いわゆるリスクとリターンが無いのが原因の一つ。どうすればいいかなぁ。

ゲームの調整

マップの大きさやプレイヤーの移動速度を変更したりして、ゲームの調整中。でもなかなか面白くならない。 こういうときは初心に帰って、このゲームを作ろうと思ったアイデア、何を見せたくて作り始めたかを見直さないと。

面白さの試行錯誤

障害物を発生させて、それをプレイヤーの操作でジャンプして避けるようにした。だいぶ最初に想定したものに近くなったのだが、正直面白くない。で何回かプレイしていたら、逆に障害物を避けるのではなくキャッチするのもありじゃないかと思えてきた。そっち…

フレーム待ち解決

フレーム待ちを行っている部分の処理を時間軸で図に書いてみたらすぐに原因が分かった。 今まで間違っていたフレーム待ちの処理内容はあるサンプルソースを参考にしており、そのときの記事はこれ→[id:toburau:20080710] void WaitFrame(unsigned int framepe…

フレーム待ちその2

正しくフレーム待ちが行われていない原因を調査中。 どうも自分が期待しているより倍の早さで動いている気がするので、SDL_GetTicks()でログを取ってみたところやっぱりそのようになっていた。あるフレームでは正しくフレーム待ちをしているのだが、次のフレ…

フレーム待ち

一定時間ごとに障害物を発生させようとして、カウンタでフレームを数えて処理しているのだが、明らかに自分が想定していたよりも早く障害物が発生してしまう。 自前ライブラリではいわゆる60フレーム、1秒間に60回更新させるようにウェイト処理をいれたので…

障害物とプレイヤーの衝突判定

障害物の挙動ができたので、次はプレイヤーとの衝突判定。 障害物のオブジェクト側でプレイヤーとのコリジョンをチェックしている。そのため障害物のオブジェクトはプレイヤーへのポインタを持つようにしている。 とりあえずこれで衝突判定はできるようにな…

テクスチャ解放のバグ

テクスチャ管理システムが保持しているテクスチャリストをデバッガで調べていたら、使用しなくなったテクスチャをちゃんと解放できていないことが分かった。 なぜだろうと調べていったらテクスチャ解放を行っているオブジェクトのデストラクタが呼ばれていな…

テクスチャ管理の機能アップ

今まではテクスチャの読み込みを指定すると同じテクスチャでも読み込んでリストに登録していた無駄をなくし、すでにリストに登録されているテクスチャが指定されたときは読み込まずにそのテクスチャIDを返すように変更した。 すでに読み込まれているかのチェ…

テクスチャ管理のリファクタリング

同じテクスチャをロードしているという無駄をなくすために、テクスチャを別のところでロードしてオブジェクトにそのテクスチャIDを渡すように変更。 が、結構書き換える場所が多く、またタスクで親子構造になっている場合にテクスチャIDを渡すのが大変。 と…

障害物の発生をステージに

障害物の予告から発生まで実装できたので、これをゲームステージ側に組み込んだ。とりあえずゲームの難易度は考えずに発生位置はランダムで。 面白がって大量に発生させていたらテクスチャ読み込みでエラー。自作ライブラリでのテクスチャ管理の限界を超えて…

描画位置の計算ミス

障害物を発生させる処理を追加中。 タスクは正しく追加できているのに障害物は描画されるのだが、その前の予告するテクスチャがうまく表示されない。 結局、原因は描画位置が画面外になっていただけだった。今のシステムではオブジェクトの座標はオブジェク…