Saltar al contenido
MegaPokDevelopers Portal
MegaPok para desarrolladores

Publica tu juego o tu app dentro de MegaPok.

Un archivo HTML y nuestro SDK. La gente lo abre desde megapok.com y desde las apps de iPhone y Android con su cuenta de MegaPok: sin registros nuevos, sin servidores tuyos y con guardado, rankings, salas multijugador y cobro por suscripción ya resueltos.

  • 70 %de cada suscripción es tuyo
  • 3 MBun solo archivo HTML
  • 0servidores que mantener
  • 3plataformas: web, iPhone y Android
mi-juego.html
<script src="https://medallovip.com/webapps/megapok-sdk.js"></script>
<script>
  MegaPok.listo().then(({ yo }) => {
    saludar('Hola, ' + yo.nombre);
  });

  async function finDePartida(puntos) {
    await MegaPok.puntuacion.guardar(puntos);
    const { filas } = await MegaPok.puntuacion
      .top({ periodo: 'semana', n: 10 });
    pintarRanking(filas);
  }
</script>

Qué puedes publicar

Juegos y apps web (HTML5) que corren dentro de MegaPok. Puedes usar canvas, WebGL, Phaser, Three.js o JavaScript puro.

Juegos de un jugador

Arcade, puzles, carreras, mesa… con guardado de progreso y rankings de siempre, de la semana y de amigos.

Juegos multijugador

Salas con código de hasta 16 personas, estado compartido, eventos, tiempo real (~0,1 s), voz y retos con notificación.

Apps web

Utilidad, productividad, social, entretenimiento, crear, herramientas, educación y servicios: las mismas categorías de la tienda.

¿No programas? Crea con IA.

Describe tu juego en el portal y la IA lo escribe; otra IA lo prueba y corrige. Ves el precio en créditos antes de confirmar, lo editas con vista previa, lo descargas (.html o .zip) y lo envías a la misma revisión.

Crear con IA

Hechos con el mismo SDK

MegaCraft
MegaCraftConstrucción multijugador
MegaKart
MegaKartCarreras multijugador
El Impostor
El ImpostorRoles secretos con voz

Cómo funciona

  1. Crea un archivo HTMLTu juego en un solo .html (UTF-8, con <!DOCTYPE html>) que carga el SDK de MegaPok.
  2. Pruébalo en tu navegadorÁbrelo con ?megapok_demo=1 al final de la dirección: el SDK simula una cuenta de prueba y guarda todo en tu navegador.
  3. Envíalo con tu cuentaEn el portal, con tu cuenta de MegaPok: nombre, descripción, categoría, ícono, portada opcional, dominios y cobro.
  4. RevisiónValidación automática al instante y luego el equipo lo abre y lo juega en un entorno aislado.
  5. PublicadoAparece en megapok.com y en las apps. Ves usuarios, suscripciones y ganancias en «Mis apps».

El SDK de MegaPok

Un solo script expone el objeto global MegaPok. Todas las llamadas devuelven promesas. Dentro de las apps la sesión llega sola; fuera, usa el modo demo.

<script src="https://medallovip.com/webapps/megapok-sdk.js"></script>

Identidad y sesión

Recibes el nombre y la foto públicos y un jugadorId propio de tu app (no es el id de MegaPok). En apps de terceros la persona acepta antes qué datos ves. Nunca correo ni teléfono.

const s = await MegaPok.listo();
s.yo;      // { jugadorId, nombre, foto, usuario }
s.idioma;  // 'es', 'en'…
s.tema;    // 'claro' | 'oscuro'
MegaPok.on('cuentaCambio', () => location.reload());

Guardar datos y progreso

En el servidor y por persona: hasta 60 claves de ≤ 16 KB (200 KB en total). guardarEstado recuerda dónde iba para seguir después. El juego corre aislado: no uses localStorage.

await MegaPok.datos.guardar('nivel', 3);
const nivel = await MegaPok.datos.leer('nivel');

MegaPok.on('pausa', () =>
  MegaPok.guardarEstado({ nivel: 3, vidas: 2 }));
const antes = await MegaPok.leerEstado();

Rankings, amigos y retos

MegaPok arma las tablas (siempre, semana, amigos). Puedes retar a un amigo con notificación y tener un muro de comunidad.

await MegaPok.puntuacion.guardar(1250);
const { filas, mio } = await MegaPok.puntuacion
  .top({ periodo: 'amigos', n: 10 });

const amigos = await MegaPok.amigos();
await MegaPok.retar(amigos[0].jugadorId,
  { mensaje: '¿Me ganas?' });

Multijugador y voz

Salas de hasta 16 personas que viven 24 h: estado ≤ 32 KB, eventos ≤ 4 KB, tiempo real por Realtime Database y voz de la sala (pide el micrófono desde un toque).

const codigo = await MegaPok.sala.crear({ max: 4 });
const parar = MegaPok.sala.escuchar(codigo,
  (sala, eventos) => pintar(sala.estado, eventos));
await MegaPok.sala.enviar(codigo, {
  evento: { tipo: 'jugada', datos: { x: 2 } } });

boton.onclick = () => MegaPok.voz.unirse(codigo);

Cobros y créditos

El cobro por suscripción no necesita código: lo configuras al enviar y MegaPok muestra su ventana de pago. Para artículos dentro del juego existe una tienda con los créditos de la billetera: el precio lo pone el servidor y la compra nunca cobra dos veces.

const { items, saldo } = await MegaPok.tienda();
const r = await MegaPok.comprar({ item: 'skin_oro' });
if (r.ok) desbloquear(r.item);
else if (r.motivo === 'saldo') avisar('Sin créditos');
// motivo: 'cancelado' | 'saldo' | 'error'

Permisos, cámara y dispositivo

Consulta permisos sin preguntar y pide cámara, galería o ubicación solo cuando hagan falta. En las apps lo resuelve el contenedor nativo; en la web, el selector de archivos del navegador. Las notificaciones locales solo funcionan dentro de las apps.

const p = await MegaPok.permisos();
// { ubicacion, camara, galeria, notificaciones }
const foto = await MegaPok.camara.foto();
// { nombre, tipo, base64, url, ancho, alto, bytes }
const [img] = await MegaPok.galeria({ max: 1 });
const { lat, lng } = await MegaPok.ubicacion();

Contenedor

Informa el progreso de carga, guarda al pasar a segundo plano, comparte, vibra, gira la vista en horizontal o cierra el juego.

MegaPok.progreso(0.4, 'Cargando mapa');
MegaPok.on('pausa', guardarTodo);
MegaPok.on('reanudar', seguir);
MegaPok.nativo.compartir('¡Hice 1250!', url);
MegaPok.nativo.giro(90);
MegaPok.cerrar();

Errores y límites de ritmo

Los errores del servidor traen status (401, 403, 404, 409, 413, 429) y un mensaje legible: 429 es ritmo (espera y reintenta) y 413 es tamaño. Las funciones del dispositivo usan code: cancelado, permiso_denegado, no_disponible, limite, invalido, tiempo.

try {
  await MegaPok.camara.foto();
} catch (e) {
  if (e.code === 'permiso_denegado') pedirPermiso();
  else if (e.code !== 'cancelado') console.warn(e);
}

Referencia completa del SDK

Requisitos técnicos

ArchivoUn HTML UTF-8 de máximo 3 MB, con <!DOCTYPE html> y el SDK. No se aceptan .zip ni varios archivos.
Recursos pesadosImágenes, audio, fuentes, motores u otros .js se cargan desde tus dominios declarados (con CORS abierto).
Dominios externosMáximo 5, solo https, sin IP ni puertos raros. Cualquier otra conexión se bloquea.
ÍconoPNG, JPEG o WebP de máximo 300 KB, cuadrado (512 × 512 recomendado). Nunca SVG.
PortadaOpcional: PNG, JPEG o WebP 16:9 de máximo 600 KB.
AislamientoSe sirve desde otro dominio con CSP sandbox (origen opaco): sin cookies, localStorage, ventanas emergentes ni redirecciones. Guarda con el SDK.
PantallasDebe funcionar en el celular y en el computador. Eliges vertical u horizontal al enviar.
EnvíosHasta 3 en revisión a la vez y 10 por día.

Revisión y políticas

Proceso de revisión

  1. Validación automáticaTamaño, UTF-8, <!DOCTYPE html>, SDK, sin <base> ni redirecciones, ícono real. Si falla, te decimos qué arreglar al instante.
  2. AvisosDominios no declarados, falta de <meta viewport> o uso de localStorage generan avisos que no bloquean.
  3. En revisiónEl equipo abre y juega tu envío en un marco aislado. Mientras tanto puedes retirarlo.
  4. Aprobada o rechazadaSi se rechaza, ves el motivo en «Mis apps» y envías una versión nueva. Cada actualización pasa la misma revisión y la versión anterior sigue publicada.

Políticas

  • Nada de contenido sexual, violencia extrema, odio, apuestas con dinero real, estafas ni copias de juegos ajenos.
  • No pidas contraseñas, datos de tarjetas ni datos personales.
  • No intentes salir del entorno aislado, minar criptomonedas ni rastrear a las personas.
  • Cobros solo con la suscripción o la tienda de MegaPok; anuncios solo con MegaPok.anuncios().
  • El juego debe ser tuyo o debes tener los derechos.
  • Podemos retirar una app que incumpla; las ganancias de cobros fraudulentos se revierten.

Cómo ganas dinero

TúMegaPok

Suscripción mensual

Marca tu app como gratis o «requiere suscripción» con un precio de $1.000 a $200.000 COP al mes y de 0 a 30 días gratis de prueba. Quien juega paga con su billetera de MegaPok.

70 % para ti

El reparto se hace en el servidor, en la misma transacción del cobro. Lo ves en «Mis apps» (total y por app) y lo retiras desde la billetera con las reglas de retiro de los creadores.

Consigue jugadores

Publica un video de tu juego y promociónalo con el botón «Jugar», que lleva directo a tu app. Puedes cambiar el precio o pasar a gratis cuando quieras.

La tienda con créditos (MegaPok.comprar) y los anuncios dentro del juego (MegaPok.anuncios()) existen en el SDK, pero el catálogo de artículos lo configura el equipo de MegaPok y el reparto para desarrolladores externos aún no está definido. Si quieres usarlos, escríbenos antes a soporte@medallovip.com.

Dónde aparece tu app

Al aprobarla entra al catálogo de MegaPok en la web (megapok.com/apps) y en las apps de iPhone y Android. Su ficha muestra tu nombre como desarrollador.

Juegos

Pestaña Juegos

Los juegos van aquí: «Lo más jugado» se ordena solo por uso, y hay filas por categoría (fiesta, mesa…) y «Te pueden gustar».

Apps

Pestaña Apps

Las apps van aquí: «Las más usadas», «Top gratis» y «Top pagadas» se arman solos con el uso, más «Sugeridas para ti» y las nuevas con la insignia «Nuevo».

Hoy

Hoy y destacados

Hoy y los banners son editoriales: los elige el equipo de MegaPok. Si quieres proponer tu juego, escríbenos. Arcade está reservado a los juegos propios de MegaPok.

Empieza hoy

  1. Copia el ejemplo mínimoEstá en «Primeros pasos» de la documentación.
  2. Pruébalo con ?megapok_demo=1En el celular (360 px) y en el computador, mandando la pestaña a segundo plano y de vuelta.
  3. Prepara ícono y portadaÍcono cuadrado ≤ 300 KB y portada 16:9 ≤ 600 KB.
  4. Envíalo desde el portalInicia sesión con la cuenta de MegaPok donde recibirás tus ganancias.

Atajos

¿Dudas, alianzas o un juego grande que no cabe en estas reglas? Escríbenos a soporte@medallovip.com con el asunto «Desarrolladores».

Preguntas frecuentes

¿Cuánto cuesta publicar?

Enviar una app no tiene costo. Crear con IA sí cobra créditos, y ves el precio antes de confirmar.

¿Puedo subir un .zip o varios archivos?

Todavía no. Se publica un solo HTML de hasta 3 MB; lo pesado va en tus dominios declarados.

¿Puedo usar Phaser, Three.js o Unity WebGL?

Sí. Inclúyelos en el HTML o cárgalos desde tu dominio declarado. Unity WebGL suele pesar más de 3 MB: sirve los .data y .wasm desde tu dominio.

¿Por qué no funciona localStorage?

El juego corre aislado (origen opaco). Usa MegaPok.datos y MegaPok.guardarEstado.

¿Recibo el correo o el teléfono de quien juega?

No. Solo nombre, foto y un jugadorId propio de tu app, después de que la persona acepta.

¿Cuánto tarda la revisión?

Depende de la cola. Ves el estado en «Mis apps» y puedes tener 3 envíos en revisión a la vez.

¿Cómo pruebo el multijugador?

Con ?megapok_demo=1 las salas se simulan en tu navegador. Con personas reales, en la revisión el equipo lo abre con cuentas reales.

¿Cómo cobro mis ganancias?

El 70 % de cada suscripción entra a tus ganancias de MegaPok; lo retiras desde la billetera con las mismas reglas de retiro de los creadores.