Profile ***********【自己紹介】 |
ゲームジャンル | シューティングゲーム |
制作期間 | 2020/6/20~2020/7/22 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/TargetShooting/Scripts |
説明 | C++言語を使用した3Dゲーム制作について勉強するためにシューティングゲームを制作しました。「参考書/ゲームプログラミングC++」を主に参考にさせて頂きました。主にゲームループやターゲット数のUI表示などを実装しました。UnrealEngineとUnityの特徴を生かしたプログラミングの方法について理解が深まりました。生成したオブジェクトは、アクタクラスを基底クラスとしゲームループ内で更新をし、当たり判定や移動などのコンポーネントは必要があればコンポーネントクラスの派生クラスをアクタクラスの派生クラス内でそれぞれ生成しています。また行列や四元数を使用したワールド座標の計算について理解が深まりました。 |
開発環境 |
ゲームジャンル | ブロック崩しゲーム |
制作期間 | 2020/5/30~2020/6/5 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/BlockBreak/tree/master/DE_BlockBreak1.01 |
説明 | DirectXを使用したプログラミングを勉強するためにブロック崩しを制作しました。工夫した点はボールとの当たり判定と障害物の動きです。ボールとの当たり判定の実装は、ボールを4分割に分けてラケット・障害物・画面との当たった範囲によって当たり判定を検知するようにしました。ビット演算を使用しONの範囲によってボールのベクトル変換を行っています。障害物の動きは極座標を利用し円運動になるようにしました。スコアは半分より上の行のブロックを消すと10点、半分より下のブロックを消すと5点、1秒以内にブロックを連続で消すと通常の2倍の点数が加算されるようにしました。 |
開発環境 |
ゲームジャンル | ドットイートゲーム |
制作期間 | 2020/3/11~2020/3/22 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/Pacman/tree/master/DE_Pacman1.01 |
説明 | C++言語やクラスを使用したオブジェクト指向について勉強するためにパックマンを制作しました。前回のテトリス制作のとき、クラス内のメンバ変数を必要があれば外部に公開していたので、今回はメンバ変数を1つも外部に公開しないように、セッター/ゲッターなどを用意してプログラミングしました。またゲッターや描画などの値が変わらない関数や変数などにはconstをつけるように意識しました。エネミーを実装する際、派生クラスを用意してエネミー特有の動きの変化を実装できるようにしました。また派生クラスの関数を基底クラスで仮想関数にすることによって基底クラスの型で仮想関数を呼ぶと派生クラスの関数が呼び出されるなどの仮想関数の使い方についても理解を深めました。またC++の標準ライブラリを利用してテキストファイルのデータの読み込み、書き込み機能を追加してステージを描画したりハイスコアの更新やリセットを実装したりしました。 |
開発環境 |
ゲームジャンル | パズルゲーム |
制作期間 | 2020/2/29~2020/3/6 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/Tetris/tree/master/DE_Tetris1.03 |
説明 | C++言語やクラスを使用したオブジェクト指向について勉強するためにテトリスを制作しました。今までは完成したプログラムを基に値の変更などをするのがほとんどだったので1から制作していくのは大変でした。テトリスを制作する際はゲームプログラミングの基本である[入力][動作][描画]の3つの状態を意識しつつプログラミングしました。制作を通じて、シーンマネージャーなどのゲームを制御しているシーンフローをどうすれば実装できるかが体感的に分かった気がします。またゲームループ内のFPSの制御も意識する必要があることについて理解を深めました。FPSの違う他の機種のパソコンで友達に遊んでもらった際、FPSの制御をしていなかったのでゲームループのスピードが自分のパソコンと違っていて驚きました。だからスクリプトで制御する必要があることについて理解しました。 |
開発環境 |
ゲームジャンル | サイドビューアクションゲーム |
制作期間 | 2019/12上旬 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/sunnyland/tree/master/DE_sunnyland1.08 |
説明 | Unity上での[Collider 2D]を使用した当たり判定の実装を理解しました。スクリプトで当たり判定時の処理を行う時、物理判定のあるColliderとないColliderの2パターンの実装方法があることについても理解しました。また複数の画像を使ったアニメーションの実装を理解しました。スクリプトを使いプレイヤーの状態に応じたアニメーションの切り替えについても理解しました。またタイルマップを使ったステージの実装について理解しました。 |
開発環境 |
ゲームジャンル | パズルゲーム |
制作期間 | 2020/1/9~2020/1/13 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/soukoban/tree/master/DE_soukoban1.01 |
説明 | Unity上でのテキストエディタをスクリプトで読み込み画面上に表示する方法を理解しました。またプレイヤーが動作を行うたびにテキストエディタから読み込んだデータを更新して画面上に表示したり、データの値によって当たり判定を実装したりする方法を理解しました。またゲームシーンの遷移時にシェーダーをつかったトランジションの実装なども挑戦しました。 |
開発環境 |
ゲームジャンル | アクションシューティングゲーム |
制作期間 | 2019/12/24~2019/12/30 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/Ninja/tree/master/DE_Ninja1.03 |
説明 | 授業で使用したサンプルプログラムを応用して作りました。シューティングゲームなどの複数のオブジェクト(クラス)を扱うときに並行して処理を行う方法の1つとしてタスクシステムのような実装方法があることを知りました。複数のオブジェクト(クラス)をポインタにし、アクティブな前後のオブジェクトを連携させることによってメモリの制御を行っていることについて理解を深めました。またゲームループの中では基本的に[入力][動作][描画]の3つの状態からなっていることについても理解を深めました。 |
開発環境 |
ゲームジャンル | パズルゲーム |
制作期間 | 2019/11月頃 |
動画視聴 | クリックして開始 |
ソースコード | https://github.com/Hamoruton/15puzzle/tree/master/DE_15puzzle1.02 |
説明 | 初めて作ったゲームです。ゲームを構築しているプログラムの流れや1秒間に何回ゲームループのプログラムが呼び出されるかのフレームレートの関係について理解を深めました。また15パズル特有のアルゴリズムについても理解しました。 |
開発環境 |