PlayDrop logoPlayDrop Studio
ErstellenSpieltauschVerdienenLernenConnectorsAssetsCommunityHilfe
PlayDrop logoPlayDrop Studio
ErstellenSpieltauschVerdienenLernenConnectorsAssetsCommunityHilfe
Anmelden
Eigene Formate und Spielerkreationen
Dokumentation

Hier starten

ÜbersichtDein erstes SpielPlayDrop-SpieleFAQ

Mit Cloud erstellen

Cloud-ErstellungTarife & Generierungen

KI-App verbinden

Alle ConnectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Veröffentlichen und teilen

Aus deiner KI-App veröffentlichenEinfache HTML-SpielePakete und .playVeröffentlichen und importierenSpieldateienSichtbarkeit und ReichweiteBilder und Videos für den SpieleintragGenres und TagsLokalisierungSofortspiele

Spielerlebnis

Laden, Pause und AudioVollbild und sichere BereicheCloud-SpielständeLokale Partys und Controller

Zusammen spielen

Teilen, Freunde und EinladungenBestenlistenErfolgeOnline-Partys und SprachchatEchtzeit-Spielserver

Verdienen

MonetarisierungCredits & Belohnungen

Assets

Spiel-AssetsKI-Asset-GenerierungEigene Formate und Spielerkreationen

Referenz

Client-SDKServer-SDKcatalogue.jsonFehler und WiederherstellungFehlerbehebung
DokumentationEigene Formate und Spielerkreationen
Assets

Eigene Asset-Formate und Spielerkreationen auf PlayDrop

Eigenes Asset-Format definieren, unterstützte Formate angeben und Spieler Level, Figuren und mehr mit sdk.assets.custom speichern und veröffentlichen lassen.

Mit Asset-Spezifikationen kann ein Spiel eine eigene Art von Asset definieren, etwa ein Level, eine Figur oder ein Kartendeck, als Vertrag über Dateien. Spieler können dann Kreationen in diesem Format erstellen, speichern und veröffentlichen, und andere Spiele, die das Format unterstützen, können sie öffnen.

Asset-Spezifikation definieren

Eine Asset-Spezifikation wird in der Liste assetSpecs der catalogue.json deklariert, neben apps:

json
{
  "assetSpecs": [{
    "name": "moon-level",
    "version": "1.0.0",
    "displayName": "Moon Jump level",
    "symbol": "specs/moon-level.svg",
    "contract": "specs/moon-level.contract.json"
  }]
}

Der Vertrag benennt die Dateien jedes Assets und legt fest, wie sie geprüft werden:

json
{
  "primaryRole": "level",
  "roles": [
    { "name": "level", "required": true, "contentTypes": ["application/json"], "mode": "TEXT",
      "jsonSchema": { "type": "object", "required": ["tiles"], "properties": { "tiles": { "type": "array" } } } },
    { "name": "thumbnail", "required": false, "contentTypes": ["image/png"], "mode": "BINARY" }
  ]
}

Rollen können ein JSON Schema enthalten, das PlayDrop bei jedem Speichern prüft. Veröffentliche eine neue Version der Spezifikation, wenn sich das Format ändert; alte Assets behalten ihre Version.

Angeben, was ein Spiel unterstützt

json
{
  "assetSpecSupport": [
    { "assetSpec": "asset-spec:your-name/moon-level", "versionRange": "^1.0.0", "capabilities": ["READ", "WRITE"] }
  ]
}

Die möglichen Fähigkeiten sind READ, WRITE, EDIT, PREVIEW und IMPORT.

Spielerkreationen speichern und laden

js
const levels = sdk.assets.custom.forSpec("asset-spec:your-name/moon-level");

await levels.saveDraft({ assetName: "crater-run", displayName: "Crater run",
  files: { level: new Blob([JSON.stringify(level)], { type: "application/json" }) } });
await levels.publish({ assetName: "crater-run", displayName: "Crater run", files: { level: levelBlob, thumbnail: pngBlob } });

const mine = await levels.listMine();
const latest = mine[0]?.latestPublicVersion;
if (latest) startLevel(await levels.loadJson({ assetRef: latest.assetRef, role: "level" }));

const community = await levels.listPublic({ limit: 20 }); // { assets, pagination }
  • saveDraft speichert einen privaten Entwurf; publish macht ihn öffentlich. Beide brauchen den vollständigen Satz an Dateien.
  • Asset-Referenzen sehen so aus: asset:creator/name@r2. loadJson, loadText und downloadFile lesen veröffentlichte Assets; loadOwned, loadOwnedJson und loadOwnedFile lesen die eigenen Assets des Spielers, Entwürfe eingeschlossen.
  • supports(versionRef, capability) prüft vorab, bevor ein Asset aus einer anderen Version geöffnet wird.
  • Fehler verwenden Codes wie custom_asset_capability_unsupported und custom_asset_role_type_mismatch.

Spieler müssen angemeldet sein, um zu speichern. Prüfe, was Spieler veröffentlichen, so wie du alle Inhalte von Nutzern prüfen würdest: Die Inhaltsrichtlinie von PlayDrop gilt auch dafür.

Was der Connector annimmt

Eigene Assets und Spezifikationen, die nur aus Daten bestehen, werden wie andere Dateien hochgeladen. Ausführbare Modelle, also MODEL_3D-Assets mit der Unterkategorie procedural oder dem Format CUSTOM, lehnt der Connector ab, weil die API keinen Creator-Code ausführt; backe sie vorab oder verweise auf eine veröffentlichte Version. Siehe Spiel-Assets.

Verwandte Anleitungen

  • Spiel-AssetsBilder, Sound, Video und 3D mit einem PlayDrop-Spiel ausliefern: gebündelte Dateien, spieleigene Assets, öffentliche Assets und Packs, Abruf mit sdk.assets.
  • catalogue.jsonDie catalogue.json-Felder, die PlayDrop-Spiele verwenden: Identität, Texte, Spielweise, Formate, Anmeldung, Sofort, Vorladen, Medien, Übersetzungen, Punktestände und Server.
  • Client-SDKReferenz zum PlayDrop-Browser-SDK: init, Lebenszyklus, Spieler und Spielstände, Geräte, Soziales, Multiplayer, Shop, Werbung, Bestenlisten, Erfolge, Assets, KI.
ZurückKI-Asset-Generierung für PlayDrop-SpieleWeiterReferenz zum PlayDrop-Client-SDK
Markdown anzeigen
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Auf dieser Seite

Asset-Spezifikation definierenAngeben, was ein Spiel unterstütztSpielerkreationen speichern und ladenWas der Connector annimmt
Markdown anzeigen