ゲーム制作用フレームワーク
DirectXを利用したWindows向けゲーム制作用フレームワーク 【動作環境】PC(Windows) ,【開発環境】C++ / DirectX, 【開発人数】1人, 【製作期間】約5か月
【開発の目的】
今回このフレームワークを開発するに至った経緯として、私は今までゲーム開発の全てをUnityのようなゲームエンジンを用いて行っており、ゲームを作って動かす上でゲームエンジンが担っている部分の構造や処理を理解しないままでいました。また、ゲームエンジン開発のような低レイヤーにおける難易度の高い開発に挑戦したことがありませんでした。そこで、以下の二つを目的として今回の開発に望みました。
・ゲームの基盤部分を実装し理解を深めること
・難易度の高い開発に挑戦すること
【ゲームの基盤部分の実装と理解】
この開発を通じて、これらのことを学びました。
・オブジェクト指向に則ったプログラムの設計
・コンポーネント指向の構造とメリット
・ベクトルや四元数のような数学系処理
・レンダリング関連の知識と実装方法
・入力情報の処理と反映
・フレームの概念と処理
・衝突判定の種類や計算
【難易度の高い開発への挑戦】
プログラミングやゲーム開発について学び始めてから、幾度か低レイヤーの知識習得や基盤部部の実装に挑戦しようと試みていましたが、その度に情報量の多さや技術の難解さに足を止めてしまっていました。実際、SDL(Simple DirectMedia Layer)とOpenGLを使ったゲームフレームワークの開発を進めていたのですが、C++や使用ライブラリ、オブジェクト指向などについての理解が足りていなかったことが原因で、バグや例外が大量に出ていたり、自分自身でどう実装していくか分からなくなってしまったりしていた為、一度開発を中断していました。
しかしながら、諦めきれなかった自分の実力より上の開発を完遂し、ゲーム開発の深い所への理解を進めるために、使用ライブラリを当時気になっていたDirectXに変えてフレームワーク開発に再挑戦しました。そこでは、オブジェクト指向の考えに基づいて自分なりに意識し、拡張性や可読性を意識して設計と実装を行いました。加えて、数冊の書籍とインターネット上のサイトを参考にしながらなるべく単なるコピー&ペーストにならないように一つ一つ実装を理解しながらコードを記述したり、参考書籍にないような要素や設計構造を自分で考えてアレンジを施したりし、色々なことを考えて開発を行いました。結果、DirectXを通じて自分なりにゲーム開発の基盤である低レイヤー部分の設計や内部処理、そしてそこに使われている技術の数々を理解し自分のものにすることができたと考えています。
【展望】
今回の開発を通じて、ゲームの基盤では何がどういう処理が行われているのかを自分なりに理解できたので、今後ゲームを基盤から開発する際だけでなく、Unityなどを使った開発を行う際にも今回得た知識や経験を活かしていきたいです。
そして将来的には、更に多くの知識や機能を学び、自分の理想とするフレームワークやゲームエンジンへと昇華させていきたいです。
また、このフレームワークを使って一人称視点の3Dパルクールゲームを作る計画をしているので、それについても考えていきたいと思っています。
【必要とされたスキル】
・C++
・DirectX9
・オブジェクト指向
・コンポーネント志向
・ゲーム数学
【GitHubリンク】
https://github.com/BlackHoodieDog/3DGameFramework