ゲームが完成した夢を見た
ゲームが完成した夢を見た
しんき創作のゲーム制作録
ホーム 作品 リンク
CMakeに移行するハードルが高い件について

普段はVisualStudio2022で開発しているんですが、移植性を考えてクロスプラットフォーム開発環境であるCMakeを使ってみたい!

ということでとりあえずやってみよう!



■今週のゲーム制作:CMakeのお勉強と自作ゲームのMODプログラミング

まず、今使っているVisualStudioのソリューションやプロジェクトをCMakeプロジェクトに変換したいなーと。

そこで、
・ルートフォルダに「CMakeLists.txt」を作る
・そこにCMake用のプログラムを書く
・VisualStudioからフォルダをCMakeプロジェクトとして開く
ということをしました。すると・・・・・・



なんかわからんけどVisualStudioがCMakeプロジェクトとして認識した!

とりあえず公式マニュアルに沿って「CMakeLists.txt」に書いたのはこのあたりです。

#CMakeのバージョンを設定
cmake_minimum_required(VERSION 3.8)
#プロジェクト名
project(KAIEMO)
#C++言語標準
set(CMAKE_CXX_STANDARD 20)
#プロジェクトのバージョン設定
set(KAIEMO_VERSION_MAJOR 0)
set(KAIEMO_VERSION_MINOR 1)
set(KAIEMO_VERSION_PATCH 0)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.hpp.in
${CMAKE_CURRENT_SOURCE_DIR}/include/version.hpp)

ま、また新しい言語を習得せねばならぬというのか・・・・・・(白目

NuGetで取得したDirectXTKの扱いがややこしそう。vcpkgとは何ぞや( ^ω^)・・・

移植するときに本腰入れようと思います。



それと、ライブラリがいい感じに動くようになったのでモジュールに分割して機能を整えてみようかなと思っています。

既にグラフィックAPIの処理部分は分割したんですが、モジュールが増えた時用に汎用関数とコアを切り離す必要がありそうです。

ということで、今週も頑張りますぞ~!

Doxygenを導入したよ!

■今週のゲーム制作:ライブラリ制作とシナリオの独自システム開発

C++を学び始めて早8年。

過去のフォルダを漁っているといろんな関数作ってたな~としみじみ。一時は全ての関数を管理できるリストをExcelで作ったこともありました。

プロジェクトが膨らんでくるとクラスや関数の機能をすっきりまとめて後で見やすくしたい・・・というのが常ですよね。常ですよね?(圧

ということでそれがものすごく簡単にできるというDoxygenをようやく自分も導入しました。

使ってみてビックリ。名前空間・クラス・関数の前に説明をちょこっと書くだけでツリー構造にまとまっためちゃ見やすいHTMLを作ってくれちゃいます。

↓公式ページ

Doxygen: Doxygen

書き方は例えばこんな感じ

  
  //名前空間
  /*! @brief @~english Hoge hoge namespace.@~japanese ほげほげ名前空間@~ */
  namespace namespace_hoge_hoge{}
  
  //クラス
  /*! @brief @~english Hoge hoge class.@~japanese ほげほげクラス@~ */
  class class_hoge_hoge{};
  
  //関数
  /**
   * @brief @~english Hoge hoge function.@~japanese ほげほげ関数@~
   * @param [in] nanka_num @~english Number.(Any OKeeey.)@~japanese なんか番号。(なんでもE)@~
   * @return @~ Failed : 0, Success : 1
   */
  int32_t function_hoge_hoge(const int32_t& nanka_num){return 1;}
  

「@brief」は名前空間やクラス、関数の説明
「@param」は引数の説明
「@return」は戻り値の説明
「@~」「@~english」「@~japanese」は言語フィルタ(「@~」はすべての言語で表示されます)
という感じで書くことができます。

ほぼほぼこれだけですっきりしたドキュメントが作成できますが、コードの埋め込みなどの凝ったこともできるのでおすすめです!

くわしくタグを開設しているサイトもあるのでリンクを貼っておきます~。

Doxygen:メインページ - リファレンス メモ



出来上がりはこんな感じになりました(日本語で出力)



自作でDirectX11を叩いて一から作っていたライブラリの方はDirectXTKのおかげで何とか形になったので今作からさっそく使えるかもしれないです。やったー( ;∀;)

シェーダの勉強過程で行列や線形代数にちょこっと触れたので今回のシナリオシステムに使えそうないいアイデアが浮かびました。というわけで本編の完成をお楽しみに~!

DirectX11を触ってみたらHLSLに出会った

最近生まれたてのGitHubアカウントでプログラムの海を泳いでます。

いろんな実装方法とか書き方を知ってパワーアップしてる感じがします。感じがするだけかも(笑)

とはいえ自分の中ではエラー処理の考え方が変わったり、基本的な記述方法がスネークケースに変わったりしたので結構影響されてはいます。



■今週のゲーム制作:プログラミングのお勉強

今週は先週に引き続き、自分でライブラリの中身を実装してみようということで、DirectXについて勉強を進めています。

マイクロソフトの開発者向けのドキュメントを読んだりいろんなブログの入門記事を読んだりしつつ・・・・・・

文系にはなかなか難しいシェーダーというものにぶち当たりました。これは避けては通れない壁のようです。

C++言語ではなくHLSL言語で書かれているというのはなんとなく知っていたんですが、読めるやろ~~と軽ーいノリで開いてみると・・・・・・Σ(゚д゚)!

車輪の再発明しちゃいます!?

■今週のゲーム制作:ウィンドウプロシージャとメモリアロケータ自作

今週は久しぶりにDXライブラリの中身を読んでいました。

前はちんぷんかんぷんだったんですけど前よりもプログラミングのスキルが少し上がったのか、何やってるのかが読める・・・・・・気がする!

自分のゲームには使わなそうな部分が結構あったので、試しに今までライブラリにやってもらっていたことを自分で作ってみることに。



というわけでまずはウィンドウプロシージャを作業していたんですが、DXライブラリが外部DLLを使用していて独特な実装だったので今週はそれをメモしておこうと思います。

しんき創作とは

代表兼アドバイザーのあちゅしとマルチクリエイターのしんきによるゲームブランドです。
シナリオやプログラム、イラスト、音楽を全てしんきが一人で作っています。

GameDevDungeon
あたらしい タスク が あらわれた !

フォロー や チャンネルとうろく で
おうえん する ?▼
ブログランキング

にほんブログ村 ゲームブログ 無料ゲームへにほんブログ村 ゲームブログ インディーゲームへ