PlayDrop logoPlayDrop Studio
MakenSpeelruilVerdienenLerenConnectorsAssetsCommunitySupport
PlayDrop logoPlayDrop Studio
MakenSpeelruilVerdienenLerenConnectorsAssetsCommunitySupport
Inloggen
Eigen formaten en creaties
Documentatie

Begin hier

OverzichtJe eerste gamePlayDrop-gamesFAQ

Maken met Cloud

Maken met CloudAbonnementen en generaties

Verbind je AI-app

Alle connectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publiceren en delen

Publiceren vanuit je AI-appEenvoudige HTML-gamesVerpakken en .playPubliceren en importerenGamebestandenZichtbaarheid en bereikAfbeeldingen en video voor de gamepaginaGenres en tagsLokalisatieInstantgames

Spelervaring

Laden, pauze en audioSchermvullend en veilige zonesCloudsavesLokale groepen en controllers

Samen spelen

Delen, vrienden en uitnodigingenRanglijstenPrestatiesOnlinegroepen en spraakRealtime gameservers

Verdienen

InkomstenCredits en beloningen

Assets

Game-assetsAI-assets genererenEigen formaten en creaties

Referentie

Client-SDKServer-SDKcatalogue.jsonFouten en herstelProblemen oplossen
DocumentatieEigen formaten en creaties
Assets

Eigen assetformaten en creaties van spelers op PlayDrop

Definieer een eigen assetformaat met een assetspec, geef aan wat een game leest of schrijft en laat spelers creaties opslaan en publiceren met sdk.assets.custom.

Met assetspecs kan een game een eigen soort asset definiëren, zoals een level, een personage of een kaartspel, als een contract van bestanden. Spelers kunnen dan creaties in dat formaat maken, opslaan en publiceren, en andere games die het ondersteunen kunnen ze openen.

Een assetspec definiëren

Een assetspec wordt gedeclareerd in de lijst assetSpecs van catalogue.json, naast 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"
  }]
}

Het contract noemt de bestanden van elke asset en hoe ze worden gecontroleerd:

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 kunnen een JSON Schema bevatten, dat PlayDrop bij elke save controleert. Publiceer een nieuwe versie van de spec als het formaat verandert; oude assets behouden hun versie.

Aangeven wat een game ondersteunt

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

De mogelijkheden zijn READ, WRITE, EDIT, PREVIEW en IMPORT.

Creaties van spelers opslaan en 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 bewaart een privéconcept; publish maakt het openbaar. Beide hebben de volledige set bestanden nodig.
  • Assetverwijzingen zien eruit als asset:creator/name@r2. loadJson, loadText en downloadFile lezen gepubliceerde assets; loadOwned, loadOwnedJson en loadOwnedFile lezen die van de speler zelf, concepten inbegrepen.
  • supports(versionRef, capability) controleert dit voordat je een asset uit een andere versie opent.
  • Fouten gebruiken codes zoals custom_asset_capability_unsupported en custom_asset_role_type_mismatch.

Spelers moeten ingelogd zijn om op te slaan. Controleer wat spelers publiceren zoals je elke gebruikersinhoud zou controleren: het inhoudsbeleid van PlayDrop is erop van toepassing.

Wat de connector accepteert

Eigen assets en specs die alleen uit gegevens bestaan, upload je zoals andere bestanden. Uitvoerbare modellen, dus MODEL_3D-assets met de subcategorie procedural of het formaat CUSTOM, worden door de connector geweigerd omdat de API geen code van makers uitvoert; bak ze of verwijs naar een gepubliceerde versie. Zie game-assets.

Gerelateerde gidsen

  • Game-assetsLever afbeeldingen, geluid, video en 3D mee: meegeleverde bestanden, eigen assets in catalogue.json, openbare assets en pakketten, en opzoeken met sdk.assets.
  • catalogue.jsonDe catalogue.json-velden die games gebruiken: identiteit, gamepagina, speelwijzen, weergaven, inloggen, Instant, vooraf laden, media, vertalingen, scores en servers.
  • Client-SDKDe PlayDrop-browser-SDK: init, host, speler en saves, controllers, sociaal, multiplayer, winkel, advertenties, ranglijsten, prestaties, assets en AI.
VorigeAI-assets genereren voor PlayDrop-gamesVolgendeReferentie van de PlayDrop client-SDK
Markdown bekijken
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Op deze pagina

Een assetspec definiërenAangeven wat een game ondersteuntCreaties van spelers opslaan en ladenWat de connector accepteert
Markdown bekijken