コンテンツにスキップ

game-libraries

ゲーム開発に利用できるライブラリ

game-libraries

開発環境 C++17,Visual Studio 2022
開発人数 1人
開発期間 6ヶ月~
プラットフォーム Windows
担当箇所 全て

C++17 Header-Only libraries

C++17/DirectX11でのゲーム開発において、Unityのような算術やAsset操作ライブラリを自前で実装する必要がありました。今まではそれぞれのプロジェクトで個別にUtilityクラスを作成して実装していましたが、汎用的に利用できるものは別プロジェクトでまとめられた方が実装する都度実装する必要がなくなると考え、game-librariesとしてライブラリを制作しました。

現在はC++17をベースとしたメモリ関連のクラスや、PhysX,DirectXTK,Effekseer等の外部ライブラリを利用したWrapperを実装しています。

利用しやすくする工夫

コードは他の人と簡単に共有できるようにGitHub上で公開しています。また、ライブラリの種類としてHeader Onlyライブラリとしました。

この理由として、

  • 基本的にUtilityに分類されるような機能、もしくはWrapperなのでビルド時間に影響しにくい
  • 環境に合わせたLibをBuildする必要がなく、Linkする等の手間が不要

という理由から、Header OnlYライブラリとして作成しました。

また、作成する際の注意点など詳細はZennの記事で紹介しています。

C++ライブラリ化のすゝめ

Tools

使用するライブラリによって、Assetの種類が限定される場合がありました。そこで、複数の種類から利用できる種類に変換できるScriptをToolとして作成しました。基本的にオプションは引数として設定し、D&Dで簡単に変換できるようになっています。

  • ConvertToWave
    ファイルをWaveに変換
  • EasyImageResizer
    画像をリサイズ
  • ImageRgbaExtractor
    画像からのRGBA値を抽出
  • VideoToSequentialImage
    ビデオを連番画像に変換