OpenSiv3Dで作ったゲームをSteamに公開してみた。（Steamライブラリ 実装編）

今回、この記事では「OpenSiv3D」で作ったゲームにStemライブラリを実装する方法について説明します。

私は「OpenSiv3D」にSteamライブラリを実装しましたが、Visual Studioで制作したものであれば、やり方にそれほどの差はないはずです。

Steamライブラリを実装するためにはSteamworksアカウントを製作しストア設定などを済ませてからのほうがいいでしょう。
Steamworksでのストア設定などは[こちらのサイト](https://tsukinowa.hatenablog.jp/entry/2018/07/30/194153 )を参考にしてみてください。Steamworksのバージョンが少し異なりますが、この記事を見れば設定はうまくいくでしょう。私も参考にしました。

このSteamライブラリを実装することによってSteamを通してランキングやSteamCloudへのデータの保存が可能になります。では、順を追って説明します。

#環境
・Windows 10
・Visual Studio 2019　v16.7.7
・OpenSiv3D SDK v0.4.3
・Steamworks SDK v1.50（後から説明します。）

後の情報はバージョンによって変化する可能性があるります。予めご了承ください。
#Steamライブラリのダウンロード
まず初めにSteamライブラリのダウンロードです。

Steamworksに開発者アカウントでログインしダッシュボードのSteamworks SDKをダウンロード、
![steamworksSDK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/49513926-86d4-0baa-7c8d-9de2c0daa238.png)
もしくは[Steamworksドキュメント](https://partner.steamgames.com/doc/sdk)から最新バージョンをダウンロードすることができます。
![steamworksSDK2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/6254173c-316e-1812-0f0b-6fadcdcf5796.png)
（どちらでも構いません。）

ダウンロードに成功したら、任意の場所にフォルダを解凍します。フォルダをたどり「\sdk\public\steam」の場所に![steamworksライブラリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/753faf76-f670-56a7-d233-558b5ffc818e.png)
ずらりとヘッダーファイルが存在しているはずです。
これらのヘッダーファイルと[lib]フォルダを全て別の任意の場所にコピーしてください。(私はドキュメントの下に[Steam API]フォルダを作りそこに入れました。)

次に[sdk\redistributable_bin]に存在するすべてのフォルダ、ファイルをコピーし、先ほどと同じ場所にコピーしてください。
![steamworksライブラリ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/c05a6592-c34d-cfc8-5fe0-2d4a561660b5.png)
[lib_2]など何かしらのフォルダの中にコピーしても問題ありません。

(そのほうが見やすくなると思います。また今後の説明では[lib_2]フォルダに入れたという前提で説明します。)

そして次に、先ほどコピーした[lib]フォルダの中にある[win64]（お使いのOSに合わせてフォルダを選択してください）の中にあるライブラリファイル(拡張子が[.lib]のもの)をヘッダーファイルと同じ場所にコピーしてください。
![steamworksライブラリファイル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/e4f683d7-4770-9026-cc77-8003f2ec6802.png)
同じように、[lib_2]フォルダの中にある[win64]（お使いのOSに合わせてフォルダを選択してください）の中にあるライブラリファイル(拡張子が[.lib]のもの)をヘッダーファイルと同じ場所にコピーしてください。(win32のライブラリファイルは[lib_2]の真下にあるはずです)
![steamworksライブラリファイル2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/3de02908-dc6c-3a95-4238-f52a03e73864.png)
![steamworksライブラリファイル3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/6edb5172-b612-781b-adc7-4afe70e5bf92.png)
これでSteamライブラリのダウンロードは完了です。

#Visual Studioへの実装
次に先ほどダウンロードしたSteamライブラリをVisual Studioへ実装します。

まず、Visual Studioを立ち上げゲームのプロジェクトを開きます。
そして[プロジェクト→プロパティ]でプロパティページを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/42ceefc2-ef4b-bc83-f663-867e155d926e.png)
まず初めに、構成を[すべての構成]にしてください。
これをしないと[Debugモード]と[Releaseモード]で環境が変わってしまします。
また状況に合わせてプラットフォームも調整してください。
![プロパティページ0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/bf3112f3-6c00-108b-b625-4d116c9d60ff.png)
[(C/C++) → (全般) → (追加のインクルード ディレクトリ)]に先ほどライブラリファイルやヘッダーファイルなどをコピーしたフォルダのファイルパスを入力します。
![プロパティページ1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/64ebce56-2a9b-f3d9-61dd-8cb9ac0e698d.png)
次に、[(リンカー) → (全般) → (追加のライブラリ ディレクトリ)]に先ほど同じようにライブラリファイルやヘッダーファイルなどをコピーしたフォルダのファイルパスを入力します。
![プロパティページ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/357cfd2e-7fbd-e52e-174a-94469fd7ea0f.png)
そして次に[(リンカー) → (入力) → (追加の依存ファイル)]の入力欄の左にある矢印を押し[<編集...>]を押してください。![プロパティページ3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/108b96c6-c986-911b-7ac6-c50531f52d6e.png)
[追加の依存ファイル]というページが出てきたら、先ほどコピーしたライブラリファイルのファイル名を入力してください。(順番は関係ありません。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/0e39bd33-d39f-2923-143d-8e741334f293.png)
次に[(C/C++) → (詳細設定) → (指定の警告を無効にする)]という欄に[4996]と入力してください。
steamライブラリでこの警告が出る命令を使っているため無効にしておかないと警告が出て実行できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/6a441563-8fc2-7f5e-34ef-e6336e9c98e2.png)

そしてプロパティページを閉じるとき注意してほしいのは、必ず[適用(A)]か[OK]ボタンを押して閉じてください。そうしないと入力したものが保存されません。

ソースファイルに[#include""]でsteamライブラリのヘッダーファイルが出てくれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/8c5da985-f2b9-a6f5-3daa-618486165477.png)
#拡張ファイルを保存
まず、ライブラリファイルやヘッダーファイルを保存した場所の[lib]フォルダの中にある[win64]（お使いのOSに合わせてフォルダを選択してください）の中にあるアプリケーション拡張ファイル(拡張子が[.dll]のもの)をゲームの実行ファイルが出力される場所に保存してください。(OpenSiv3Dでは[App]フォルダの下です)
![steamworks拡張リファイル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/3f83f6e3-6e85-3c65-6ee0-cb5ce75d5fcf.png)
同じように、[lib_2]フォルダの中にある[win64]（お使いのOSに合わせてフォルダを選択してください）の中にあるアプリケーション拡張ファイル(拡張子が[.dll]のもの)をゲームの実行ファイルが出力される場所に保存してください。(OpenSiv3Dでは[App]フォルダの下です)(win32のライブラリファイルは[lib_2]の真下にあるはずです)
![steamworks拡張リファイル2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/3b69992c-1213-984d-f314-1b301305ed0b.png)
![steamworks拡張リファイル3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637404/57514209-2d9d-7628-c5ff-5105bc8e11a6.png)

これでVisual Studioを実行しエラーが出なければ成功です。

---------------------------------
これで[Steamライブラリ実装編]は終了です。

[Steamサーバー編](https://qiita.com/ryota11ryota11/items/3a8eb8a43ff04f860a90)も紹介しているので良ければご覧ください。

何か間違った点がございましたら、ご指摘よろしくお願いします。

------
Steamに[私の作ったゲーム](https://store.steampowered.com/search/?developer=Matsuta%20App.)を公開しています。
無料体験版もあるのでぜひ遊んでみてください。