JetBrains RiderでDxlib開発をする方法

# 軽い自己紹介
はじめまして、時雨と申します！
趣味でCとかJavaScriptをいじってます。
最近はあまりできてないですが、ゲーム開発を個人でやってたりもします。
まだ実務経験も1年しかないペーペーのエンジニアで、うまく言語化できないですが
僕のできる限り共有できたらなと思います。

お読み苦しい箇所もあると思いますが、どうか最後まで目を通していただけたら幸いです！
それではよろしくおねがいします！

# はじめに

みなさん、C++書いてますか？
最近はゲーム開発と言ったらUE5やらUnityが主流だと思いますが、
私はPCのスペックが足らないのとアセット破損がストレスなのでずっとDxlibです。

いやまぁたまにJavaScriptとかに浮気してブロック崩しを作る時もありましたが、、

それはともかくですね、

みなさん、もし仮にDxlibというライブラリを使用してゲーム開発する際は何使いますか？
もしくは、既に開発してる人、何使ってますか？

Visual Studio 2022? 
うん。優秀ですよね。重いけど。

Visual Studio 2019?2017?
比較的軽量ではあるけど優秀ですね。ただ重い。

Visual Studio Code? Cursor?
すごく軽量でAIも使える。すごく優秀でやろうと思えばLinuxでも開発できる。(やる人いなさそう)

Eclipse?
うわまじか、変態じゃん。Java EEとかJava開発以外で使ってる人初めて見るわ....()

Xcode?
いやまぁiOS用だったら理解できる。

こう長々書いてきましたが、私はVSとVSCode派でした。
ただね、ただのVSとかの環境構築の方法なんて今更だし、腐る程落ちてる。
更に言えば公式にやり方が書いてあるのでもはや不要なんですよね。

さて、私から一つ提案がありまぁす！！
...えと、最近、Riderが無償化したじゃないですか。
知らない方もいると思うんですが、非商用に限り無償化したんですよ。
ソースは下

https://forest.watch.impress.co.jp/docs/news/1634254.html 

まぁ実際無料で私も使ってます
(IntelliJ IDEAと両方使うのは財布に負担が凄まじかったの....)

そこでですね、新たな選択肢としてRiderを使うのもいいと思うんです。
機能は充実していて、VSよりはるかに軽量....
ただ、ネックなのはC++の直接のプロジェクト作成ができないところ...
面倒な人はVSをつかおう！！

次は環境構築の方法に進みます。

# RiderでDxlibを始める準備

さて、次は環境構築になります。
まぁ何が必要かは単純明白で、以下のものが必要になります。

・JetBrains Rider

https://www.jetbrains.com/rider/download/#section=windows

・Visual Studio 2022(2019,2017,2015でも可)

https://visualstudio.microsoft.com/ja/vs/

・Dxlib

https://dxlib.xsrv.jp/

リンクは貼っておいたので、そこからDLしてください。
少なくてもIDEのDLは大丈夫だと思うので、DxlibのDLの仕方を説明します。


## DxlibのDL方法
リンクを分だら以下のページにいくと思います。
![2025-04-04_14h20_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/886fb389-dbe2-4759-a92b-dbb4e3d26707.png)

それで、少し下にスクロールすると

「ＤＸライブラリのダウンロード」がありますね？え、あるよね？

![2025-04-04_14h23_53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/8978c14c-4afc-46d4-9d97-68e918a15642.png)

で、そこをクリックしていただいて...
![2025-04-04_14h25_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/0a4919b5-21f1-42ba-84e8-a86f9d03a7d4.png)

まぁこんな感じになってるので、

「ＤＸライブラリ Windows版 VisualStudio( C++ )用(Ver3.24f)をダウンロードする(zip圧縮形式(約206MB))」

ってやつをクリックします。
そうすると、
![2025-04-04_14h26_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/c8f30a4b-c98b-4b90-b8b7-6bd698fe880f.png)

上のように出るはずなので、名前をつけて保存をクリック。
で、DL終わったらzipファイルを解凍します。
ちょっと時間かかると思うので、タバコ吸うなり、コーヒー淹れるなどして待っててください。

解凍が終わったら以下のフォルダ構成になってると思うので、
それを、Cドライブ直下に置きます。
![2025-04-04_14h32_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/e32365a7-73d5-4908-91c4-f89e21dcc85e.png)

これで、とりあえず、DxLibの準備は完了です。
次はプロジェクトの作成ですよ～！！
休憩しながらやってくださいね。眼精疲労と腰痛はエンジニアの敵ですから。

## いよいよプロジェクト作成！！
いい感じに休めましたか？私はぶっ続けで書いてるので休憩なしです。
でもこれ書いたら私は少し休憩するのでいいんです。

さて、まずはVisualStudioを起動しましょう！
....まぁいいんですが、Riderの画面出しておきましょうか。

Riderを起動するとこのような画面になります。
![2025-04-04_14h40_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/f4267023-7a1d-47b0-8c23-f7a946a1d8a4.png)

まだ使ったことない人は多分何もプロジェクトは表示されないはず。。。
私はちょくちょく遊んでるので出てます。ぼかしてはいますが。

で、新規ソリューションというところがあるの見えますね？
そこをクリックすると以下のようになります。
![2025-04-04_14h42_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/6ca174f1-2b14-4532-8adf-391f7ad186fa.png)

見ての通りC#とVBしかないんです。当然ですよね。
.Net系しか本来は対応してないので。
それを無理やりC++プロジェクトを使うわけです。

さて、今度こそプロジェクト作成です。
VSを開きましょう。

![2025-04-04_14h46_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/bed28c20-b37b-488a-8bba-6114b581ff86.png)

いつもの見慣れた画面ですね。
では、いつも通り、新しいプロジェクトの作成をクリックしましょう。
Windowデスクトップウィザードってのがあるので、それをクリックしてください。
![2025-04-04_14h47_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/8575842f-4f72-4fd9-81aa-6e87c7452b34.png)

プロジェクト名は何でもいいです。
hogeでもfugaでも何でも。
まぁ私はDx_app_qiitaにしますが。
で、場所は後で使うのでメモしといてください。
![2025-04-04_14h50_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/0f8d7725-c283-412f-a5e5-46417bae4668.png)
で、コンソールアプリケーションからデスクトップアプリケーションに変更し、
下は必要に応じてチェックしてください。
私はディレクトリの管理画面道になるのでチェック入れません。
(後で気づいたけどからのプロジェクトにチェックをいれるべきだった)
![2025-04-04_14h51_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/2af1cd88-57ae-42a9-b89c-5a8aa523a7c0.png)

それで、そのままOKを押下。
で、このような画面になるはず。(私はミスったので全部のファイルを除外しました)
![2025-04-04_14h56_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/c97e57e9-76ef-49eb-863b-8ec40b42773a.png)
(Github Copilotは気にしないで)

プロジェクトの作成が終わったらそのままVSを閉じましょう。
なにかダイアログが出てきたら特に気にせず保存でOK。

次に、先程メモした保存先に行きましょう。
いつでもコピペできるようにね！！

そしてもう一度Riderを開く。
次は開くを選択。
![2025-04-04_15h07_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/6da1f87f-4357-4b80-abde-5e422cadd901.png)

先程作ったプロジェクトの.slnがあるので、それをクリック
そうしたらこのようなダイアログが出るので気にせず信頼して開くを押下。
![2025-04-04_15h08_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/37de7479-b83b-4d2d-bc23-f069efc3c71b.png)
そうしたらこのような画面になるので、
まずはディレクトリとソースファイルを作成しちゃいましょう！
![2025-04-04_15h10_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/07d4085b-930d-48a0-abd1-4a468ce383bd.png)

とりあえず、以下の感じになります。
![2025-04-04_15h12_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/3d513c68-17c4-4bc0-8d40-9ee42efbad09.png)

当然、まだなんにも設定してないので、コード書いても認識されるわけ無いです。
装備は買っただけでは意味がないように、
ライブラリもインストールしただけでは意味はありません(当然ですが)

## DxLibの設定

赤い枠のところ(プロジェクト名)のところで右クリックしてツールの下のプロパティを
選択。

![2025-04-05_12h06_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/840e9315-09d8-4142-9d91-215ec7f42604.png)

すると、以下のような画面が新たなウインドウとして出ます。
![2025-04-05_12h09_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/4c2077f4-61d8-4c11-97c9-7f554d8f23a5.png)

これらはVSで見慣れた画面ですね。
ここからライブラリの設定にいけます。

多分VSだとまずこの表示です。Riderと少し違う上に設定は比較的ラクですね。
![2025-04-05_12h12_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/6b39d4ea-f887-464e-bedf-502672b04f78.png)

で、Rider。
![2025-04-05_12h14_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/f5447b7e-3187-450d-b372-ff8cfd03ea47.png)

まぁ大体同じだけどすべての構成が無いのが面倒なところ...
まぁまず、文字セットをUnicodeからマルチバイト文字セットに設定を変更。

### ・すべての構成の設定

で、次ですが、上のタブをC/C++にしてください。
そうすると追加のインクルードディレクトリとかあると思いますが、
一番上の赤枠のところに、"C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用"を
指定してください。(Debug, Release(Win32,x64)共に)

次はタブをリンカーにして、少しスクロールを下げてもらって、
また追加のライブラリディレクトリにさっきと同じパスを入れます。(Debug, Release(Win32,x64)共に)
![2025-04-05_12h29_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/09825aaf-fa9c-4b50-b55d-df90ed8e68ed.png)

### ・Releaseの設定

次はReleaseだけの設定です。(Win32, x64)
構成でReleaseを選択(とりあえずどっちでもいい)して、C/C++タブを選択。
コード生成までスクロール。
ランタイムライブラリを「マルチスレッドDLL」から「マルチスレッド」へ変更。
(Win32, x64)
![2025-04-05_12h37_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/14e7d938-0c1e-4b30-b5e2-605d432e10ba.png)

### ・Debugの設定

同じように、次はDebugへ。
またReleaseと同じようにコード生成までスクロールして、
ランタイムライブラリを「マルチスレッドデバッグDLL」から「マルチスレッドデバッグ」に変更。
![2025-04-05_12h40_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/fbd2a705-c13a-48b8-a149-459743c62e3f.png)

最期にOKをおして完了。
一応すべてDxlibの使い方に載ってます。
なんかエラーが出たら以下のリンクを踏んで、私にクレーム入れてください。

https://dxlib.xsrv.jp/use/dxuse_vscom2022.html

![2025-04-05_13h06_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/4bfca63c-cb8d-4ceb-a105-a9d2ad3fe2a5.png)

### ・ついにデバッグ/実行

今回書くソースコードです。参考にしてください。
```rb
#include <stdio.h>
#include "DxLib.h"
#include <windows.h>

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    ChangeWindowMode(true);
    SetWindowSize(640,480);

    if( DxLib_Init() == -1 )		// ＤＸライブラリ初期化処理
    {
        return -1 ;			// エラーが起きたら直ちに終了
    }

    DrawPixel( 320 , 240 , GetColor( 255,255,255 ) ) ;	// 点を打つ

    WaitKey() ;				// キー入力待ち

    DxLib_End() ;				// ＤＸライブラリ使用の終了処理

    return 0 ;				// ソフトの終了 
}


```
このコードをコピペすれば大丈夫なはず....。
私はこれで動いた。。。

![2025-04-05_13h09_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733744/c0b3d4a1-07fe-4b3d-a0db-3afcd4e363b7.png)

デバッグをしたときに、Unicodeにしろ！！ってエラー出ますが無視でいいです。
とりあえず上の画面のように問題なく実行できれば設定は終了です！
お疲れ様でした！！

# さいごに
いやぁ長かったですね。記事も、作業も。
私なんかはこの記事を書くときにほんとにこれ需要あるんか？いや絶対ない。
と思いながらメモしてました。

この記事を書く際、情報元のソースとかやり方の確認とかやってたんですが、
環境構築の仕方を教えるのって大変ですね.....。
ちょくちょくMicrosoft Copilotに相談したり、文章を足したり、、、
今回が初めての記事でしたが、見づらくなかったでしょうか...？

僕はMarkdownで何かを書くのは初めてなのでほんとにこれでいいかはわかってないです。
Githubとかで何か書いたりして練習してみます。。

今度はEclipseでの環境構築とかやってみましょうかね？需要があるかは不明ですが。。

今後希望があるとすれば、クラスとか構造体とか作れるのになんでC++のソリューションだけないん？とかは思うので、RiderでもC++でプロジェクト作成できたらいいですね。

では皆さんの開発がこれからも快適になりますよう願っております！
それではまた～！