Chronoss0518 / ChCppLibrary

0 stars 0 forks source link

ライセンス

This software is released under the MIT License, see LICENSE.txt.

ゲーム開発用ライブラリ

このライブラリは基本的にゲーム開発を補助するためのライブラリです。
内部的に行われていることはDirectXやOpenGL(未実装)などの機能をパック化した形になります。

使用環境

現在動作確認済み使用言語
現在動作確認済みOS

内容

ライブラリは大きく分けて7つ存在します。

ChBase

Chライブラリの根幹を担う機能をまとめたライブラリ

ChCpp

C++の機能のみで利用することが可能なライブラリ
他のプラットフォームへ持って行き、コンパイルして利用することができる。

ChWin

WinAPIを利用する際に便利な機能をまとめたライブラリ

ChD3D9

Direct3D9を利用する際に便利な機能をまとめたライブラリ
※現在更新予定なし(互換性を持たせておくため更新はあり)

ChD3D11

Direct3D11を利用する際に便利な機能をまとめたライブラリ

ChD3D

Direct3Dの機能ではあるもののDirect3DのDeviceに依存することなく利用することができる独立したライブラリ。
ChD3D9ライブラリやChD3D11ライブラリを呼ぶ際に同時に呼ばれる。

ChImGui

3D環境でOSや3DLibraryに依存しないWindowを表示させるライブラリをパック化したライブラリ。 ※現在更新予定なし。

ExternalLibrary

このライブラリで使用する外部のライブラリです。
外部ライブラリは以下の通りです。

使用方法

以下にそれぞれの使い方を記述していく。

ChBaseライブラリ

ChCppライブラリ

ChWinライブラリ

ChD3D9ライブラリ

ChD3D11ライブラリ

ChD3Dライブラリ

ChImGuiライブラリ

ExternalLibrary

予定

更新(予定から移動したもの)

中止(予定から移動したもの)

このライブラリのコンセプト

歴史

学生時代にメモリの解放忘れや手順の間違いを無くせれば良いという考えでのみライブラリの開発を始めました。
開発当時は利用環境がDirectX9だったため、DirectX9をパック化した簡潔なライブラリとなっておりました。
学年が上がった関係で使用環境がDirectX9からDirectX11に変わり、今まで貯めていた機能を呼び出すだけでは利用することが不可能となってしまったため、ライブラリの開発方法を一新しました。
現在は以下の事を目的として開発するようにしております。

  1. 必要な手順を1つにまとめる。
    ※例:D3DXIntersectを行う際にRayにあたかも3DModelが動いたかのように見せるための処理を組み込む。
  2. メモリの解放忘れを防ぐ。
    ※例:LPD3DXTEXTURE9の解放忘れなどをRelease関数またはデストラクタで絶対に開放するようにする。
  3. クロスプラットフォームを可能とした開発を行う。
  4. 拡張性を持たせる。
    ※例:ClassPertsを継承させて様々な機能を追加したクラスを作成する。
  5. 協調性を持たせる。
    ※例:XMFloat3クラスをパック化したChVec3_11クラスが存在するが、基本的に引数でXMFloat3を利用する。

※現在は開発目的のうち3と5は実装できていない箇所が存在します。