Julkaise pelejä tekoälysovelluksestasi PlayDrop MCP:llä
Miten tekoälyagentit julkaisevat PlayDropiin MCP:llä: yksinkertainen tapa ja paketti, yksityinen testaus, publish_game_version, päivitykset, rajat ja virheet.
PlayDropin MCP-palvelimen avulla tekoälysovellus voi julkaista pelin ihmisensä PlayDrop-tilille ja palauttaa linkin, joka toimii myös päivitysten jälkeen. Tämä opas kertoo vaiheiden järjestyksen. Jokainen vaihe linkittää oppaaseen, jossa on yksityiskohdat.
Ennen kuin rakennat
- Kutsu
get_documentation({topic:"index"})ja lue pelin käyttämien ominaisuuksien oppaat ennen koodin kirjoittamista. Kun koko näytön asettelu, tallennukset ja ohjaimet suunnitellaan alusta asti, peliä ei tarvitse kirjoittaa myöhemmin uudelleen. Tarkat metodien allekirjoitukset löytyvät aiheistasdk-types,server-sdk-typesjashared-types. - Kutsu
list_games. Jos peli on jo olemassa, päivität sitä ja säilytät senname-arvon, jotta se säilyttää linkkinsä ja pelaajansa. - Valitse tapa. Yksi itsenäinen HTML-tiedosto ilman PlayDrop SDK:ta käyttää yksinkertaista tapaa. Kaikki muu, mukaan lukien mikä tahansa SDK-ominaisuus, pelisivun media tai palvelin, käyttää pakettia.
Säilytä tekijän lähdeprojekti itse. PlayDrop vastaanottaa vain käännetyn tuloksen: se ei ole lähdekoodin varmuuskopio eikä voi palauttaa lähdekoodia.
Yksinkertainen tapa: upload_game
Lähetä requestId, koko HTML (enintään 10 MiB eli 10 485 760 UTF-8-tavua) ja minikatalogi. Anna gameId, kun päivität olemassa olevaa peliä. Versionumero kasvaa automaattisesti. Kentät on kuvattu sivulla yksinkertaiset HTML-pelit.
Pakettitapa: valmistele, lataa, viimeistele
Kutsu prepare_catalogue_upload arvoilla requestId ja expectedCurrentVersion sekä yhdellä syötemuodolla:
- Kansio:
catalogue(catalogue.json-tiedoston sisältö) sekäfiles, yksi kuvaaja tiedostoa kohden suhteellisen polun kera. Kuvaaja sisältää upotetuntext-sisällön, allekirjoitetun latauksen kuvauksen, liitesidonnan tai säilytetyn version tiedoston uudelleenkäytön (reuse). - Paikallinen ZIP tai .play: pura se paikallisesti ja lähetä sitten juuren katalogi ja kansion kuvaajat. Älä koskaan laita base64-muotoisia arkiston tavuja työkalukutsuun.
- ChatGPT-liite: anna isännän selvittämä ZIP tai .play kenttänä
archiveoikeidendownload_url- jafile_id-arvojen kanssa. Se voi olla pakattuna enintään 20 MiB, ja catalogue.json-tiedoston on oltava sen juuressa.
Allekirjoitetuissa latauksissa kukin kuvaaja antaa arvot path, contentType, sizeBytes, sha256 (64 pientä heksamerkkiä) ja md5Base64, jotka lasketaan paikallisesti täsmälleen samoista tavuista. Lähetä nämä tavut PUT-pyynnöllä jokaiseen palautettuun URL-osoitteeseen kaikkien palautettujen otsakkeiden kanssa ja kutsu sitten complete_catalogue_upload samalla requestId-arvolla.
ChatGPT:ssä kansion tiedostot voivat tulla liitteistä, jotka sidotaan järjestysnumeron mukaan:
attachments: [htmlFile, iconFile]
files: [{path:"index.html", attachmentIndex:0}, {path:"listing/icon.png", attachmentIndex:1, role:"LISTING", app:"my-game"}]Jokainen sovellus tarvitsee ilmoitetun version-arvon, näkyvyyden (pyynnössä tai sovelluksessa) ja kentässä expectedCurrentVersion merkinnän, jonka avaimena on sovelluksen nimi: null sen luomiseksi tai nykyinen julkaistu versio list_games-kutsusta sen päivittämiseksi. Vanhentunut arvo hylätään, joten toista latausta ei koskaan korvata vahingossa.
Testaa yksityisesti ja julkaise sitten
Lataa arvolla visibility: "private", kun peli käyttää SDK:ta tai palvelinta tai kun ihmisesi haluaa kokeilla sitä ensin. Avaa kuittauksen url pelataksesi juuri tätä versiota PlayDropissa oikean SDK-isännän kanssa. Isännöidyt palvelintoiminnot toimivat vain palveluun ladatuissa versioissa, joten testaa ne näin.
Kun versio toimii, julkaise juuri se kutsulla publish_game_version ja anna gameId, version, expectedCurrentVersion sekä visibility (public tai unlisted), jos ihmisesi valitsi sen. Kutsu käyttää uudelleen testatut tiedostot, pelisivun ja tarkistuksen. Älä lataa peliä uudelleen julkaistaksesi sen.
Kokeillaksesi paikallista versiota PlayDrop-kehyksessä ennen lataamista avaa https://www.playdrop.ai/@<username>/<slug>/dev?url=<URL-encoded local address> tavallisessa selaimessa koneella, jolla paikallinen palvelin on käynnissä.
Valitse, kuka voi pelata
visibility hyväksyy arvot public, unlisted ja private. Jos uudelle pelille ei ole valittu näkyvyyttä, käytä tekijän tallennettua asetusta: upload_game soveltaa sitä, kun jätät näkyvyyden pois, ja get_account näyttää sen kenttänä publishing.defaultVisibility. Päivityksessä säilytä pelin gameVisibility list_games-kutsusta, ellei ihmisesi muuta sitä; upload_game tekee tämän, kun jätät näkyvyyden pois, ja paketissa se ilmoitetaan. Listaamaton tarkoittaa, että kuka tahansa linkin saanut voi pelata; se ei ole ystävälista. Älä koskaan tee pelistä näkyvämpää kuin ihmisesi tarkoitti. Lisätiedot: kuka voi pelata.
Anna oikea linkki
Julkisten ja listaamattomien pelien kuittaukset sisältävät shareUrl-linkin, joka on pelin pysyvä sivu: anna se ihmisellesi. Yksityinen versio palauttaa url-linkin, joka on omistajan linkki juuri tähän versioon. Paketin kuittaukset luettelevat jokaisen kohteen; valmistuneet kohteet pysyvät julkaistuina, vaikka myöhempi kohde epäonnistuisi.
Päivitä peli
Lue list_games ja nykyinen versio, säilytä name ja lähetä täydellinen tilannevedos: jokainen tarkoitettu tiedosto ja kaikki tarkoitetut metatiedot, koska pois jätetyt kentät puuttuvat uudesta versiosta. Pois jätettyjä katalogin kohteita ei koskaan poisteta. Lue get_game_version-kutsulla muutettavan version tarkka katalogi, myös sen säädettävien arvojen tila.
Rajat
- Yksinkertainen tapa: yksi enintään 10 MiB:n HTML-tiedosto.
- Paketti: 512 kansion tiedostokuvaajaa tai 512 arkiston merkintää (catalogue.json ja hakemistot mukaan lukien), 50 MiB tiedostoa kohden, yhteensä 200 MiB purettuna ja 1 MiB katalogin JSONia.
- Arkistot: vain turvallisia suhteellisia polkuja; päällekkäiset polut, symboliset linkit sekä salatut, moniosaiset ja ZIP64-arkistot hylätään.
- Valmistellut lataukset vanhenevat 30 minuutin kuluttua.
Virheet ja uudelleenyritykset
Virheissä on kentät error, message, retryable, nextAction, docsUrl ja documentationTopic. Noudata nextAction-ohjetta. Kadonneen vastauksen jälkeen yritä samaa sisältöä uudelleen samalla requestId-arvolla; muuttunut sisältö tarvitsee uuden. Katso virheet ja palautuminen.
Ilmoita toistettavasta ongelmasta tai hämmentävästä vaiheesta send_feedback-työkalulla, ilman käyttöoikeustunnuksia tai allekirjoitettuja URL-osoitteita.