お世話になっております。
SolutionPlatformのWin64を使用して複数ストア対応を行おうと思っています
(例としてSteamとEpicGameStoreなど)
下記の認識は合っていますでしょうか。
1.OSSを使用する場合
・SDK切り替え :iniで指定 ([OnlineSubsystem] DefaultPlatformService=
・SDK切り替えに :ビルド不要
・iniを編集して、同一パッケージで複数のストアに対応可能
2.ストアSDKを直使用する場合
・SDK切り替え :defineで指定(USE_STEAM_SDK or USE_EOS_SDK など)
・SDK切り替えに :ビルドが必要
・ストアごとにパッケージを作成しなければならない
また、2.を行う場合
・ビルド引数として、define定義を渡す
・目的別のTarget.csを作成
というのが思いつくのですが
・SolutionPlatformを追加する(Win64_Hogeのような)
などの他の手法は有りますでしょうか。
その他、複数ストア対応について有用なスレッドやページなどがあれば
教えていただければと思います。
以上、よろしくお願いします。
お世話になっております。
ご質問の複数ストア対応について、下記の通り整理いたします。
1) Online Subsystem(OSS)を使用する場合
DefaultEngine.iniのDefaultPlatformServiceを変更することで、オンラインサービスのみを切り替えることが可能です。
必要な OSS プラグインがすでにビルドに含まれている場合、iniの変更だけで再ビルドは不要です。
技術的には 同一パッケージで複数ストアに対応可能ですが、各ストアの審査・ランチャー要件により、同一 EXE をそのまま提出できるかはストア側の規約に依存します。
Online Subsystem 概要
https://dev.epicgames.com/documentation/en-us/unreal-engine/online-subsystem-in-unreal-engine
OSS Steam
https://dev.epicgames.com/documentation/en-us/unreal-engine/online-subsystem-steam-interface-in-unreal-engine
OSS EOS
https://dev.epicgames.com/documentation/en-us/unreal-engine/online-subsystem-eos-plugin-in-unreal-engine
2) ストア SDK を直接使用する場合
USE_STEAM_SDKなどの defineによりコードパスを切り替えるため、defineの変更ごとに再ビルドが必要です。
リンクするライブラリ等も変わるため、ストアごとに別パッケージの作成が必要となります。
3) 切り替え方法について(推奨)
ご記載いただいた通り、ストアごとに Target.cs を分ける方法が最も一般的で管理しやすい構成です。
例:MyGameSteam.Target.cs, MyGameEpic.Target.cs
Visual Studio の Solution Platform(Win64_Hoge など)を増やす方法は、Unreal Build Tool と直接連動しないため、推奨されません。
Unreal Build Tool ,Target.cs
https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-build-tool-target-reference
ご不明点がございましたら、いつでもお気軽にお知らせください。
どうぞよろしくお願いいたします。
ご確認いただきありがとうございます。
ご期待に沿える内容でお役に立てて何よりです。
また何かございましたら、いつでもお気軽にご相談ください。
引き続きよろしくお願いいたします。