PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
Entrar
Formatos personalizados e criações dos jogadores
Documentação

Comece aqui

Visão geralSeu primeiro jogoJogos do PlayDropPerguntas frequentes

Crie com o Cloud

Criação com CloudPlanos e gerações

Conecte seu app de IA

Todos os conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publique e compartilhe

Publicar pelo seu app de IAJogos em HTML simplesEmpacotamento e .playPublicação e importaçãoArquivos do jogoVisibilidade e alcanceArte e vídeo da listagemGêneros e tagsLocalizaçãoJogos instantâneos

Experiência de jogo

Carregamento, pausa e áudioTela cheia e áreas segurasSalvamentos na nuvemGrupos locais e controles

Jogue junto

Compartilhamento, amigos e convitesPlacaresConquistasGrupos online e vozServidores em tempo real

Ganhe

MonetizaçãoCréditos e recompensas

Assets

Assets de jogoGeração de assets com IAFormatos personalizados e criações dos jogadores

Referência

SDK de clienteSDK de servidorcatalogue.jsonErros e recuperaçãoSolução de problemas
DocumentaçãoFormatos personalizados e criações dos jogadores
Assets

Formatos de asset personalizados e criações dos jogadores no PlayDrop

Defina formatos de asset com especificações, declare os que um jogo lê ou grava e deixe os jogadores salvar e publicar criações com sdk.assets.custom.

As especificações de asset permitem que um jogo defina seu próprio tipo de asset, como uma fase, um personagem ou um baralho, na forma de um contrato de arquivos. Os jogadores podem então criar, salvar e publicar criações nesse formato, e outros jogos compatíveis com ele podem abri-las.

Defina uma especificação de asset

Uma especificação de asset é declarada na lista assetSpecs do catalogue.json, ao lado de 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"
  }]
}

O contrato indica os arquivos de cada asset e como verificá-los:

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" }
  ]
}

Os papéis podem trazer um JSON Schema, que o PlayDrop verifica a cada salvamento. Publique uma nova versão da especificação quando o formato mudar; os assets antigos mantêm a versão deles.

Declare o que um jogo suporta

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

As capacidades são READ, WRITE, EDIT, PREVIEW e IMPORT.

Salve e carregue as criações dos jogadores

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 guarda um rascunho privado; publish o torna público. Os dois precisam do conjunto completo de arquivos.
  • As referências de asset têm o formato asset:creator/name@r2. loadJson, loadText e downloadFile leem assets publicados; loadOwned, loadOwnedJson e loadOwnedFile leem os do próprio jogador, incluindo rascunhos.
  • supports(versionRef, capability) faz a verificação antes de abrir um asset de outra versão.
  • Os erros usam códigos como custom_asset_capability_unsupported e custom_asset_role_type_mismatch.

Os jogadores precisam estar logados para salvar. Revise o que os jogadores publicam como você faria com qualquer conteúdo de usuário: a política de conteúdo do PlayDrop se aplica a ele.

O que o conector aceita

Assets e especificações personalizados só de dados são enviados como os outros arquivos. Modelos executáveis, ou seja, assets MODEL_3D com a subcategoria procedural ou com o formato CUSTOM, são recusados pelo conector porque a API não executa código do criador; converta-os em arquivos fixos (bake) ou faça referência a uma versão publicada. Veja assets de jogo.

Guias relacionados

  • Assets de jogoImagens, som, vídeo e 3D no seu jogo: arquivos no pacote, assets do jogo no catalogue.json, assets e packs públicos e consulta em execução com sdk.assets.
  • catalogue.jsonOs campos do catalogue.json que os jogos do PlayDrop usam: identidade, listagem, modos de jogo, superfícies, login, Instantâneo, pré-carregamento, mídia, traduções, pontuações e servidores.
  • SDK de clienteReferência do SDK de navegador: init, host, jogador e salvamentos, controles, social, multijogador, loja, anúncios, placares, conquistas, assets e IA.
AnteriorGeração de assets com IA para jogos do PlayDropPróximoReferência do SDK de cliente do PlayDrop
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Nesta página

Defina uma especificação de assetDeclare o que um jogo suportaSalve e carregue as criações dos jogadoresO que o conector aceita
Ver Markdown