Skip to content

Misiones y checkpoints

Las misiones son objetivos que los estudiantes completan para ganar XP adicional dentro de Ecotic. Tu juego puede alimentar esas misiones enviando checkpoints con datos de progreso.


¿Qué es un checkpoint?

Un checkpoint es un evento intermedio que envías durante la partida. Contiene datos sobre el estado actual del juego — racha de aciertos, nivel alcanzado, movimientos realizados, etc.

El GameCenter usa esos datos para actualizar en tiempo real los indicadores de misiones activas del jugador.

// Después de que el jugador responde correctamente:
sdk.checkpoint({
streak: 5, // racha actual de aciertos
question_idx: 3, // pregunta en la que va
correct: true, // si la respuesta fue correcta
});

Tipos de misiones que tu juego puede alimentar

Tipo de misiónCampo que debes enviar en checkpointEjemplo
Racha de aciertosstreak (número){ streak: 5 }
Puntaje acumuladoscore (número){ score: 1500 }
Nivel alcanzadolevel (número){ level: 3 }
Partidas completadasSe cuenta en complete() automáticamente
Precisión mínimaaccuracy (porcentaje 0–100){ accuracy: 80 }

Ejemplo: quiz con misiones de racha

quiz-game.js
let streak = 0;
let maxStreak = 0;
let score = 0;
let correctas = 0;
function responder(esCorrecta) {
if (esCorrecta) {
score += 200;
streak += 1;
correctas += 1;
if (streak > maxStreak) maxStreak = streak;
} else {
streak = 0; // la racha se rompe
}
// Enviar checkpoint para actualizar misiones de racha
sdk.checkpoint({
streak: streak,
score: score,
correct: esCorrecta,
});
}
async function terminar() {
const accuracy = Math.round((correctas / totalPreguntas) * 100);
const resultado = await sdk.complete(score, {
accuracy: accuracy,
max_streak: maxStreak,
correct: correctas,
total: totalPreguntas,
});
mostrarBanner(resultado.reward);
}

¿Cuándo llamar a checkpoint()?

Llama a checkpoint() cada vez que ocurra algo significativo en tu juego:

  • Al responder una pregunta (quiz).
  • Al completar un nivel o etapa.
  • Al alcanzar una racha determinada (cada 3 aciertos, por ejemplo).
  • Al destruir una cantidad de enemigos (juego de acción).

No hay un límite estricto, pero evita llamarlo en bucles muy rápidos (más de una vez por segundo) para no saturar la red.


Checkpoint vs. complete

checkpoint()complete()
¿Cuántas veces?Muchas vecesSolo una vez por sesión
¿Otorga recompensa?No directamenteSí — XP y monedas
¿Para qué sirve?Actualizar misiones en tiempo realFinalizar la sesión

Misiones especiales: mission_completed

Si el servidor detecta que el jugador completó una misión durante una partida, enviará un evento mission_completed de vuelta. El SDK lo recibe y el GameCenter muestra una animación de celebración al jugador.

No necesitas hacer nada especial para esto — ocurre automáticamente cuando el jugador alcanza el objetivo de una misión.