Generi propran Pokémon: esplora prototipo ene de la ludo
julio 2026
Superrigardo
Mi konstruis esploran prototipon, kiu generas novan Pokémon-specion el ses vortoj elektitaj dum ludado. Kelkajn minutojn poste ĝi aperas en alta herbo, kie la ludanto povas renkonti ĝin, kapti ĝin kaj doni al ĝi kromnomon. La prototipo generas ĝiajn aspekton, nomon, tipon, bazajn statistikajn valorojn, movojn kaj la datumojn necesajn por integri ĝin en la ludon.
La prototipo kunligas enludan konversacion, vortelekton, fonan generadon, sovaĝajn renkontojn, kaptadon kaj nomadon sen haltigi la ludon. Ĉiu generita specio estas registrita en formo uzebla de la ekzistantaj ludsistemoj.
Mi koncentriĝis pri la generada kadro: difini postulojn por konservi la ludekvilibron kaj vidan koherecon, poste lasi AI esplori ene de tiuj limoj. Mi ankaŭ mem ludis la prototipon por fari preparan takson pri tio, ĉu unika rolulo sufiĉas por estigi emocian ligon.
Demando: ĉu unikeco estigas emocian ligon?
Ludoj ebligas al ludantoj elekti, kreskigi kaj nomi rolulojn ĝis ili sentas ilin unike siaj. Sed la deirpunkto ankoraŭ estas aro de ebloj preparitaj de la programisto. Se generativa AI ebligus al ludantoj formi rolulon jam dekomence, ĉu ili sentus pli fortan emocian ligon?
Nura generita bildo ne sufiĉas por esplori tiun demandon. La rolulo devas eniri la ludmondon, esti renkontata kaj kaptata, kaj resti uzebla poste. Mi kreis du vojojn kun malsamaj gradoj de ludanta partopreno: paroli al la maljunulo ekigas generadon sen enigo; paroli al la maljunulino ebligas elekti ses vortojn. La unua el tiuj roluloj, kun kiu la ludanto parolas, difinas la genermetodon por tiu ludpartio.
La prototipo ne establas konkludon pri emocia ligiĝo. Ĝia celo estas integri generitan enhavon en ordinaran ludadon kaj identigi kondiĉojn por estontaj komparoj.
Kiel ĝi funkcias dum ludado
La suba sinsekvo montras la vojon gvidatan de la ludanto. En la arbaro Petalburg la ludanto parolas al maljunulino kaj elektas ses vortojn el la ekzistanta vortprovizo Easy Chat de la ludo. Generado daŭras fone, dum la ludanto plu ludas. Krio signalas, ke la nova specio estas preta; eniri altan herbon ekigas renkonton, kaj la ludanto povas kapti ĝin per la kutimaj regiloj. Ĉiu generado produktas nomon, tipon, bazajn statistikajn valorojn, movojn, antaŭan kaj malantaŭan batalbildetojn, kaj grupikonon. La demonstra filmeto montras la tutan sinsekvon.
Dezajna defio: teni generitajn rolulojn ludeblaj
Generi novan rolulon kaj igi ĝin funkcii en ludo estas apartaj defioj. Tro altaj statistikaj valoroj povas perturbi la ekvilibron de ludmalfacileco, dum nekongruaj tipoj kaj movoj povas malfaciligi trejnadon de rolulo. Tro komplika aspekto povas fariĝi nerekonebla post redukto al bildeto de 64 × 64 pikseloj.
Fiksi ĉiun detalon nuligus la celon generi malsaman rezulton ĉiufoje. Mi devis distingi la elementojn esencajn por la ludado de tiuj, kiuj povus varii.
Mi tial koncentriĝis pri dezajno de la spaco de eblaj Pokémon. Homoj difinas la celojn, limigojn, malpermesitan enhavon kaj kontrolmetodojn; AI ellaboras kandidatojn ene de tiu kadro. Ĉi tiu funkcianta prototipo praktike aplikas mian aliron de dezajno laŭ limigoj.
Aliro: difini la kondiĉojn de generado
La sistemo petas grandan lingvomodelon (LLM) plenigi antaŭdifinitajn kampojn, kiel nomo, tipo, bazaj statistikaj valoroj, movoj, korpoformo kaj koloro, anstataŭ verki liberan prozon. Kontrolilo ekzamenas ĉiun respondon antaŭ ĝia akcepto. Se respondo malobservas regulon, la sistemo redonas la specifan malobservon kaj petas regeneradon ĝis la postuloj estas plenumitaj.
- Homoj difinas la limojn. Postuloj pri ludekvilibro, rekoneblaj bildetoj kaj akceptebla enhavo fariĝas eksplicitaj, kontroleblaj reguloj.
- AI ellaboras kandidatojn. La modelo uzas la vortojn de la ludanto por proponi valorojn por la permesitaj kampoj.
- La sistemo kontrolas la eligon kontraŭ la reguloj. Ĝi aŭtomate kontrolas nombrajn intervalojn, kombinojn de movoj kaj malpermesitan enhavon.
- La reagoj celas nur malobservojn. Kandidato, kiu malobservas regulon, estas resendata kun la kialo kaj regenerata.
Limigoj por protekti la ludadon. Mi fiksis la sumon de la bazaj statistikaj valoroj je 280–360, kun supra kaj malsupra limoj por ĉiu valoro. Movoj estis eltiritaj el la fontkodo de la ludo kaj limigitaj al movoj kongruaj kun la tipo de la specio aŭ al normal-tipaj movoj. Mi ekskludis movojn kaŭzantajn tujan senkapabligon per unu frapo, memdetruon, fiksan damaĝon aŭ troan potencon. La kontrolilo ankaŭ kontrolis la nombron de atakaj movoj kaj ĉu la specio havas movojn kongruajn kun sia tipo. Kaptoprobablo, kreskorapido kaj aliaj faktoroj estis fiksitaj por teni la generitajn diferencojn ene de amplekso taŭga por komparo.
Limigoj por konservi vidan klarecon. Korpoformoj estas elektataj el ebloj kun siluetoj rekoneblaj eĉ en malgrandaj bildetoj. Ankaŭ la vortprovizo por koloroj kaj trajtoj estas limigita. Homecaj trajtoj, sango, armiloj kaj teksto estas ekskluditaj. La bildogeneraj instrukcioj ĉiam enhavas protektajn kondiĉojn kiel «nur unu estaĵo», «montru la tutan korpon» kaj «neniuj kromaj membroj».
Dum unu registrita rulado la modelo unue proponis sumon de bazaj statistikaj valoroj de 380. La kontrolilo detektis la malobservon kaj petis regeneradon, kiu fine produktis specifon kun sumo de 320. La kontribuo estis procezo, kiu malakceptas eligojn ekster la difinitaj limigoj, sen dependi de hazarde sukcesa rezulto.
Teni la sperton ene de la ludo
La ludanto uzas nur enludajn konversaciojn, vortelekton kaj renkontojn en la herbo; ne ekzistas aparta genera ekrano. La kompute intensa laboro estas plenumata en Python-procezo sur la komputilo, kiu interŝanĝas datumojn kun la ludo per dosieroj. Lua-skriptoj rulantaj en la emulilo mGBA kunligas la du flankojn, konservante la konatajn regilojn de la ludo dum la AI-prilaborado restas ekstera.
- Generi la specifon. Loka lingvomodelo transformas la ses vortojn en datumojn de specio, kiuj estas kontrolataj antaŭ uzo.
- Generi la bildojn. Bildmodelo kreas referencan ilustraĵon, poste vide koherajn antaŭan kaj malantaŭan bildetojn kaj grupikonon.
- Konverti al ludaj datumoj. Bildoj estas reduktataj al 15 koloroj, poste konvertataj kaj kunpremataj al bildetoj kaj paletroj kongruaj kun Game Boy Advance (GBA).
- Integri en la rulantan ludon. Datumoj estas skribataj en rezervitan areon, enkondukante la novan specion sen restartigi la ludon.
La samaj datumoj estas skribataj ankaŭ surdiskon, do la generita specio restas post reŝargo de la ludo. Generado okazas nur unufoje kaj ne estas malfarebla. Se la ludanto fuĝas aŭ perdas la batalon, la Pokémon restas en la mondo. Se la ludanto venkas ĝin, ĝi neniam reaperas. Tiu neinversigebleco faras «nur unu en tiu ludpartio» parto de la sperto.
Kion la prototipo konfirmis
Mi konstruis ĉi tiun prototipon sola por provi teknikan realigeblon. Ĝi estas nek finita ludo nek studo kun uzantoj. La sekva listo distingas tion, kion mi kontrolis, kion mi realigis kaj kio restas neprovita.
- Kontrolita de komenco ĝis fino. En mGBA mi konfirmis la tutan sinsekvon: enluda konversacio, sesvorta enigo, fona generado, integriĝo en la rulantan ludon, sovaĝa renkonto, kaptado kaj enigo de kromnomo.
- Realigita por estonta komparo. Mi aldonis du enirvojojn: pasivan generadon sen enigo kaj generadon gvidatan de la ludanto per vortelekto. Konversacioj, renkontoj kaj kaptoj povas esti registrataj por komparo.
- Ligita al ekzistantaj sistemoj, sed ne provita per longdaŭra ludado. Nivelaltiĝo post kapto, lernado de movoj, batalado, konservado de Pokémon en kestoj kaj pluuzado post konservado de la ludo estas integritaj kun la ekzistantaj ludsistemoj. Mi ne provis ilin dum longaj ludsesioj.
- Estonta laboro. Generado de evoluintaj formoj dum ludado ne estas realigita, kaj komparaj studoj pri emocia ligiĝo kun pluraj partoprenantoj ne okazis.
Kion mi lernis ludante: unikeco sola ne estigis emocian ligon
Mem ludi la prototipon ne estigis ĉe mi fortan emocian ligon al la generita Pokémon. Tio estas mia propra impreso kiel programisto, ne rezulto ĝeneraligebla al aliaj ludantoj. Ĝi tamen sugestis, kion varii en estonta komparo.
Du faktoroj ŝajnis esplorindaj.
- Kvalito de la eligo. Se la aspekto kaj koncepto de rolulo ne estas sufiĉe allogaj, esti «la sola en tiu ludpartio» eble ne sufiĉas por daŭrigi emocian ligon.
- Profundo de partopreno. Elekti ses vortojn igis la rezulton ŝajni pli io liverita al mi ol io kreita de mi. Mi supozas, ke partopreno dependas de la kvalito de la kreoprocezo: rekonsideri elektojn, kompari alternativojn, revizii detalojn kaj preni respondecon pri la rezulto, anstataŭ simple doni pli da enigo.
Kontraste, mi sentas emocian ligon al Hanagitsune, rolulo kreita ekster la aŭtomata luda generprocezo per ripetaj konversacioj kun pluraj generativaj AI-iloj kaj mana prilaborado. Mi komparis kandidatojn, korektis detalojn kaj daŭrigis ĝis mi estis kontenta. Mi opinias, ke kaj la kvalito de la rezulto kaj mia partopreno en la ripeta kreoprocezo kontribuis al tiu ligiĝo.
Ĉi tiu prototipo ne respondas, ĉu generita enhavo estigas emocian ligon. Ĝi transformas tiun vastan demandon en du faktorojn intence varieblajn: la kvalito de la eligo kaj la profundo de partopreno. Estonta studo aldonus eblojn elekti, kompari kaj revizii dum kreado, portus la eligojn al konsekvenca kvalitnivelo, kaj komparus spertojn de pluraj partoprenantoj.
Realigo
La generada procezo, la kadro de limigoj kaj kontroloj, la konverto al GBA-datumoj kaj la ludflankaj modifoj estas publikigitaj en la GitHub-deponejo.
Ĉi tiu sendependa esplorprojekto baziĝas sur la malkompilado pret/pokeemerald. Ĝi distribuas nek ROM-ojn, nek ROM-flikaĵojn, nek ludajn rimedojn. Pokémon estas varmarko de Nintendo, Creatures Inc. kaj Game Freak Inc.; la projekto estas nek ligita al tiuj kompanioj nek aprobita de ili.