本文へスキップ
ドキュメント
このページの内容

公開プロファイル

サービスは、受け付けるレベルの条件をPublishProfileファイルで記述します:ライセンス、リソースの入手元、必須フィールド、サイズの上限。サービスを追加するにはファイルを書けばよく、アナライザーを編集する必要はありません

プロファイルはデータ

公開プロファイル(PublishProfile)は、他のルートと同じようにシリアライズされるモデルで、自分の世代を持ちます

レベルの行き先には、Steamワークショップ、公式サーバー、コミュニティサーバー、ストア版ビルドのカタログがあります。どの行き先も、同じ質問にそれぞれの答えを出します。答えは年月とともに変わりますが、コードは変わりません

プロファイルが決めること:

フィールド意味
ProfileKeyどのサービスか。すべてのレポートに繰り返し記載される
AllowedLicensesサービスが受け付けるTypicalLicenseTypeの値
AllowedUriTypesリソースの取得方法。空のリストはどの方法でもよいという意味
AllowUnknownLicense、AllowPermissionInstead不明なライセンスや書面の許可で足りるか
RequireResourceMeta、RequireResourceUrl、RequireAttribution、RequireAgeRating、RequireLevelAuthors、RequireHashes入力が必須の項目
MaxResourceBytes、MaxDataFileBytes、MaxTotalBytesサイズの上限。0は無制限
Sources、UnknownSourceTrustサイトの一覧と、一覧にないサイトの評価

許容できるライセンスを決めるのはプロファイルだけです。ライセンスの性質のように見えますが、実際には受け取る側のサービスの性質です

4つの組み込みプロファイル

ファクトリーProfileKey用途
CreateOpen()localデバイス上のレベル。何も必須ではない
CreateStandard()standard公開サーバー
CreateWorkshop()workshopSteamワークショップ。CC BYの派生はどれも通り、書類の不足は警告だけ
CreateStrict()strictストア版ビルド。standardより厳しい
項目standardstrict
ライセンスCC0 1.0、CC BY 4.0と3.0、CC BY-NC 4.0と3.0、SIL OFL 1.1、MIT、Apache 2.0、Unlicensestandardと同じ
リソースの入手元レベルフォルダー、ゲーム、または直接リンクリンクは不可
作者表示とハッシュ-必須
リソースあたりの上限64 MiB32 MiB
データファイルあたりの上限32 MiB16 MiB
レベルあたりの上限256 MiB128 MiB
推奨

自分のサービス用にファクトリーを追加するのではなく、4つのプロファイルのどれかを元に必要なフィールドを変更し、JSONファイルとして配布することをおすすめします

これらのライセンスとサイズにした理由

  • GPL系のライセンスはstandardから除外されています。App Storeで配布されるGPLの作品は、Appleの規約と衝突します
  • CC BY-SAは除外されています:ShareAlikeにより、レベル自体のライセンスの変更を強いられるためです
  • CC BY-NDは除外されています:NoDerivativesは、ゲームの土台である編集を禁じるためです
  • strictのサイズは、スマートフォンがモバイル回線でダウンロードできる量です

リソースの入手元

ライセンスのフィールドは、作者が何を主張しているかを示します。SourceTrustは、リソースの入手元のサイトを踏まえて、その主張にどれだけの価値があるかを示します:

評価結果例
Approved公開するKenney、ccMixter、Incompetech
PartiallyApproved公開する。記録は確認する価値があるPixabay、SoundImage
RequiresLicenseCheck実際のページでライセンスを確認するOpenGameArt、Free Music Archive、Wikimedia Commons
RequiresResourceCheckまず作品そのものを特定するRawpixel、itch.io
NotAllowed拒否するYouTube、SoundCloud、Spotify
Unknown記録なし。UnknownSourceTrustで決まる-

TrustedSourceCatalog.CreateDefault()は25のサイトを返します。これは出発点となる一覧で、運営者がそれぞれ変更することが前提です。そのため、ある記録が存在することを当てにしてよいものは何もありません

Sourcesリストが空なら、入手元の評価はオフになります

ストリーミングプラットフォームは、一覧から外すのではなくNotAllowedとして載せています。一覧にないサイトはUnknownSourceTrustで評価され、standardとstrictではその評価は拒否ではなく確認を求めるものになっているからです

カタログとユーザーレベルのライセンスポリシーは同じことを記述しており、一緒に編集されます

結果の扱い

呼び出すのはValidationFacade.ValidateForPublishです。詳細:検証

PublishReadinessReportには次のものがあります:

  • HasErrors:Errorグループの問題
  • NeedsManualReview:Warningグループの問題
  • IsReady

その後どうするかは、プロファイルが決めるわけではありません。クライアントはエラーがあるとアップロードを止めます。サーバーはレベルを公開せず、審査キューに入れます

作者側から見た同じチェック:公開の準備