SolutionPlatformのWin64を使用して複数ストア対応を行う場合

お世話になっております。

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

ご不明点がございましたら、いつでもお気軽にお知らせください。

どうぞよろしくお願いいたします。

ご確認いただきありがとうございます。

ご期待に沿える内容でお役に立てて何よりです。

また何かございましたら、いつでもお気軽にご相談ください。

引き続きよろしくお願いいたします。

返答ありがとうございます。

概ね此方の認識と同じで安心しました。

この質問はクローズとさせていただきます。

対応ありがとうございました。​