Kongregate es uno de los portales de juegos Flash más grandes de la red, y tiene su propia API que se puede integrar en tus juegos (por lo cual Kongregate incluso te recompensa financieramente). En este tutorial, te mostraré cómo implementar la API de Kongregate en tus juegos y también te explicaré de qué es capaz la API y por qué debes usarla..
(Tenga en cuenta que este tutorial asume que ya tiene una cuenta de Kongregate; si no lo tiene, cree una ahora).
Echemos un vistazo a lo que la API nos permite hacer:
Insignias
Mensajes masivos
Puntuaciones altas
Hay otra gran razón para implementar la API ...
Antes de profundizar en los aspectos técnicos de la implementación de la API de Kongregate, avancemos un poco y asegurémonos de que realmente queremos implementarla.
Hay muchas razones para implementar la API, pero para la mayoría de los desarrolladores, nada habla más fuerte que el dinero, y hay mucho de eso involucrado. Cuando subes tu juego a Kongregate, automáticamente ganas el 25% de todos los ingresos por publicidad generados por la página de tu juego.
Se pone mejor Si implementas su "API de estadísticas y desafíos", ¡recibirás un 10% adicional! Finalmente, si su juego es exclusivo de Kongregate, o patrocinado por ellos, recibirá un 15% adicional. Esto le da la oportunidad de ganar hasta el 50% de los ingresos por publicidad para su juego en Kongregate. Si te estás preguntando cuánto es eso, echa un vistazo a algunas de mis estadísticas personales:
Para este tutorial, usaremos FlashDevelop, un editor de código abierto gratuito (y sorprendente) para desarrolladores. Haremos todo en archivos .as simples, por lo que si desea seguir utilizando el IDE de Flash, no debería tener ningún problema. Si desea utilizar FlashDevelop y no está familiarizado con él, consulte esta excelente guía para principiantes de FlashDevelop para comenzar con lo que consideraría el mejor editor de AS3 del mercado..
Para comenzar, abra FlashDevelop, vaya a la pestaña Proyecto y seleccione "Nuevo proyecto". Desde aquí, seleccione "Proyecto AS3 con Pre-Loader". Alternativamente, puedes agarrar el Preloader.as
y Main.as
archivos de la fuente de descarga, y simplemente seguir a lo largo.
Tu archivo debe ser un barebones Main.as
archivo, como este:
paquete import flash.display.Sprite; import flash.events.Event; / ** *… * @author Your Name * / [Frame (factoryClass = "Preloader")] public class Main extiende Sprite función pública Main (): void if (stage) init (); else addEventListener (Event.ADDED_TO_STAGE, init); función privada init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // punto de entrada
Nada arriba debería ser nuevo para ti; si es así, todo lo que necesita saber es que este archivo es el punto de entrada para nuestro programa, aquí es donde comienza todo. Si compila esto con FlashDevelop, debería obtener una pantalla en blanco en blanco, sin errores de compilación.
Antes de sumergirnos en todas las características geniales de la API, debemos asegurarnos de que la API esté en funcionamiento..
A diferencia de muchas API patrocinadoras, la API de Kongregate no es un conjunto de archivos independiente que necesitamos compilar con nuestro proyecto. La API se almacena realmente en el servidor Kongregate, y la cargamos en tiempo de ejecución. Hay varias maneras de hacer esto en sus proyectos, pero por el bien de este tutorial, simplemente nos conectaremos dentro de nuestros Main.as
, y guardar una referencia allí.
Para empezar, copie el siguiente código en nuestro Main.as
archivo justo debajo de las importaciones existentes:
importar flash.display.LoaderInfo; importar flash.display.Loader; importar flash.net.URLRequest; import flash.events.Event; importar flash.system.Security;
Lo anterior son solo unas pocas importaciones simples que nos permitirán usar las clases necesarias para cargar en la API de Kongregate.
A continuación, agregaremos una variable para almacenar nuestra referencia a la API de Kongregate. Continúe y agregue lo siguiente justo encima del constructor de nuestro archivo Main.as.
var kongregate privado: *;
Observe que el tipo de datos de nuestra variable kongregate es *
. Si no está familiarizado con esto, simplemente le estamos diciendo al compilador que kongregate
La variable aceptará cualquier tipo de datos, como un comodín.
(Además, tenga en cuenta que en un juego real desearía almacenar su referencia a la API en algún lugar al que tenga acceso todo su proyecto, como un const estática pública
. Esta referencia es necesaria para que pueda usar la API desde cualquier lugar de su proyecto, para cualquier propósito, en lugar de solo en el Main.as
archivo cuando iniciamos por primera vez.)
Esta siguiente pieza de código estará contenida en una función personalizada con el nombre de initKongregateAPI ()
. Esto no es realmente necesario, pero prefiero encapsular ideas al escribir código, ya que ayuda a mantener el código legible y fácil de trabajar..
Continúa y agrega esta función debajo de la en eso
funcionar en Main.as
.
función privada initKongregateAPI (): void // Extraiga la ruta de la API de la FlashVars var paramObj: Object = LoaderInfo (root.loaderInfo) .parameters; // La ruta de la API. La API "sombra" se cargará si se prueba localmente. var apiPath: String = paramObj.kongregate_api_path || "http://www.kongregate.com/flash/API_AS3_Local.swf"; // Permitir el acceso de la API a este SWF Security.allowDomain (apiPath); // Cargar la API var request: URLRequest = new URLRequest (apiPath); var loader: Loader = new Loader (); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete); loader.load (solicitud); this.addChild (cargador);
Si bien puede parecer mucho código, en realidad no es mucho, y con los comentarios, es bastante fácil de seguir..
Como verás, en la primera parte estamos creando una variable para almacenar la ruta de la API desde FlashVars (si no sabes qué son, búscalos muy rápido, es una gran cosa que entender).
En la segunda parte, determinamos si el SWF está en el sitio web de Kongregate o se está ejecutando localmente, y asignamos la información adecuada a la apiPath
variable.
A continuación, le damos acceso a la API al SWF, con un simple security.allowDomain
llamada, donde pasamos en el apiPath
como el parámetro.
Entonces creamos un nuevo Solicitud de URL
objeto, que obtiene el apiPath
Pasado al constructor, un nuevo Cargador
objeto, y agregue un detector de eventos para el cargador que llamará carga completa
cuando termine.
Por último, llamamos loader.load
y pasar en nuestra solicitud (el recién creado Solicitud de URL
objeto, que contiene el apiPath
de la API de Kongregate). Si entiendes lo que acaba de pasar, genial; Si no, no te preocupes, ya que no tendrás que volver a tocar esto.
Ahora que se creó la función initKongregateAPI, y contiene todo el código de conexión, ¡probablemente deberíamos asegurarnos de que esta función realmente sea llamada! Simplemente vuelve a la en eso
función que nuestra Main.as
archivo ya contenido, y agregar una función llamada a initKongregateAPI
después de la línea que marca el "punto de entrada", así,
función privada init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // punto de entrada initKongregateAPI ();
Finalmente, necesitamos añadir que carga completa
función, para ser llamado cuando el COMPLETAR
evento se dispara desde nuestro código anterior. Agregue esta función debajo de initKongregateAPI
funcionar en Main.as
.
// Se llama a esta función cuando la carga está completa. Función privada loadComplete (event: Event): void // Save Kongregate API reference kongregate = event.target.content; // Conectar con el back-end kongregate.services.connect (); // Ahora puede acceder a la API a través de: // kongregate.services // kongregate.user // kongregate.scores // kongregate.stats // etc ...
El código anterior es super simple; vamos a repasarlo Comenzamos guardando una referencia a la API de Kongregate. Como puede ver, estamos haciendo referencia a la API de Kongregate a través del parámetro de evento pasado, a través de event.target.content
- Suficientemente simple.
Ahora todo lo que tenemos que hacer es conectarnos, y nuestro SWF está listo. Como puedes ver, nos conectamos llamando al kongregate.services.connect
método. No se requieren argumentos.
Si bien eso puede parecer mucho trabajo, realmente no lo fue. Simplemente repasé el proceso de conexión con mucho detalle, para que pueda comprender cómo realmente estamos obteniendo acceso a la API, en lugar de tener ese acceso y usarlo. Ahora que lo entiendes, puedes usar todo lo anterior como código repetitivo.
Ahora que estamos conectados, podemos echar un vistazo a la característica más importante de toda la API: la parte de Estadísticas y Desafíos. Esta API envía las estadísticas relacionadas con el jugador al servidor Kongregate, que permite varias cosas.
En primer lugar, esta es la forma más básica de permitir que los usuarios compitan por puntajes altos en Kongregate. Con la API integrada, la barra lateral de Kongregate incluirá una nueva pestaña denominada "LOGROS", que se puede encontrar junto a la pestaña "CHAT". Los jugadores pueden ver las tablas de clasificación para cualquier estadística que envíes a los servidores, que puede ser desde una puntuación alta básica hasta el número total de enemigos derrotados..
El segundo y mucho más importante uso es permitir que Kongregate use las estadísticas que envíes para crear "insignias" para tus juegos. Las insignias son una parte central de la experiencia del usuario de Kongregate, y se parecen mucho a los sistemas de logros en plataformas como Xbox LIVE.
La mejor parte de tener insignias agregadas a su juego es que su juego se presentará durante un breve período de tiempo, lo que aumentará considerablemente la cantidad de visitas que obtendrá y, por lo tanto, aumentará considerablemente los ingresos de sus anuncios. Incluso después de que su juego esté fuera del centro de atención, todos los juegos con placa en Kongregate continúan recibiendo más visitas que los juegos normales, lo que le brinda una excelente fuente de ingresos de larga cola.
Tenga en cuenta que las insignias no son agregadas por los desarrolladores, sino que son creadas por el personal de Kongregate. Necesitará un juego con una calificación alta para ser seleccionado, pero también necesitará la API para configurarlo, así que dejemos a la mitad de la batalla fuera del camino!
Para utilizar realmente las estadísticas que enviaremos, Kongregate primero nos obliga a informar a su servidor qué información debe estar preparada para recibir de nosotros..
Para hacer esto, simplemente vamos a la página de Estadísticas de nuestro juego en el sitio web de Kongregate. Esto se puede encontrar en la página "Editar juego", o agregando /estadística
hasta el final de la URL de su juego (por ejemplo, http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). Para este tutorial, simplemente subiremos nuestro SWF de prueba como el "juego".
Antes de agregar estadísticas a la API de estadísticas y desafíos, primero debemos comprender los cuatro tipos de estadísticas que se pueden usar y las reglas a las que están vinculados. Los valores deben ser positivo, y debe ser enteros enteros. Los cuatro tipos son los siguientes:
Saber cuál de los tipos anteriores necesita usar para cada una de sus estadísticas de juego es extremadamente importante, así que asegúrese de familiarizarse con la lista anterior. Obviamente, desearás una lista de estadísticas que quieras que tu juego envíe a Kongregate, así que asegúrate de tenerlas preparadas antes de sumergirte en el siguiente paso cuando envíes un juego..
Por el bien de este tutorial, simplemente usaremos las siguientes estadísticas:
Una vez que haya preparado su lista, diríjase a la página de Estadísticas de su juego e ingrese los datos requeridos. Una vez que el trabajo de back-end se realiza en la página de Estadísticas, el juego estará listo para enviar datos al servidor Kongregate.
Para enviar datos al servidor, simplemente llamamos a la función "enviar", que se ve así:
enviar (statName: String, valor: Number): void
Como puedes ver, la función toma dos parámetros:
statName
es el nombre de tu estadística Es muy importante que la cadena pasada sea idéntica (distingue entre mayúsculas y minúsculas) al nombre de la estadística que enumeró en el paso anterior cuando preparó el servidor para manejar sus estadísticas.valor
es el valor numérico real que se va a pasar. Aunque el tipo de datos es Número, recuerde que su valor debe ser un positivo, entero entero.Para llamar a esta función en tu juego, simplemente haz lo siguiente:
kongregate.stats.submit ("Your Stat String", statValue); // el valor estadístico podría ser 1, 500, 5342324, etc..
Aunque teníamos cuatro tipos diferentes de estadísticas que podríamos enviar, esta función solo envía el valor; el propio servidor examinará la información que proporcionamos en el paso anterior para determinar cómo tratar los datos entrantes. Es tan simple como eso; Ahora sabemos cómo enviar datos al servidor..
Ahora que hemos preparado el back-end en el sitio web de Kongregate, y ahora sabemos cómo enviar datos, demos una vuelta a este proyecto.
Lo primero que debemos hacer es agregar algo de código a nuestro proyecto para enviar nuestras estadísticas. Dado que lo más fácil de rastrear es la entrada del mouse, elegí las estadísticas relacionadas con el mouse. Como vimos en nuestro paso anterior, elegí Max Clicks, Total Clicks y Last X.
Max Clicks será el puntaje más alto en la cantidad de veces que hagamos clic en un solo juego, para demostrar el tipo Max; Los clics totales serán el total general de todos los clics que hemos realizado, para demostrar el tipo de Agregar; y la última X será la posición x de nuestro clic más reciente, para demostrar el tipo Reemplazar.
Para rastrear nuestros clics del mouse, necesitaremos importar el MouseEvent
clase. Vuelva a Main.as y agregue lo siguiente a sus importaciones:
import flash.events.MouseEvent;
Ahora vamos a necesitar agregar una variable para nuestra estadística de Max Clicks, para realizar un seguimiento del número total de clics por sesión de juego. Justo debajo de donde agregamos el kongregate
variable de referencia (de tipo de datos *
), agregue lo siguiente:
privado var maxClicks: int;
Vamos a necesitar un detector de eventos para escuchar nuestros clics, así que lo agregaremos ahora. En el en eso
función, justo debajo de la llamada a initKongregateAPI
, agregue lo siguiente:
// Detector de eventos para clics del mouse stage.addEventListener (MouseEvent.CLICK, clicked);
Como puede ver en el código anterior, la función llamada siempre que se llama al evento que disparó hecho clic
. Sigamos adelante y creemos esa función. Agregue lo siguiente debajo de su carga completa
función:
función privada pulsada (evento: Evento): void maxClicks ++; kongregate.stats.submit ("Total Clicks", 1); kongregate.stats.submit ("Max Clicks", maxClicks); kongregate.stats.submit ("Última X", mouseX);
Todo lo que estamos haciendo aquí es incrementar la maxClicks
variable por 1
, y luego enviar toda la información requerida al servidor Kongregate. Esto agregará 1 a la estadística de clics totales, envíe el actual maxClicks
variable al servidor, que luego determinará si es más alto que el valor anterior y lo reemplazará si es así, y enviará la posición x de nuestro clic anterior, que reemplazará automáticamente el valor anterior.
Nuestro SWF puede ser simplemente una pantalla en blanco, pero están pasando muchas cosas y estamos a punto de verlo en acción. Asegúrate de compilar el proyecto antes de continuar.
Ahora es el momento de subir nuestro proyecto y verlo en acción..
Regresa al sitio web de Kongregate, dirígete a la página de tu juego y sube la versión final de nuestro proyecto. Una vez que haya cargado el proyecto, pasará a una pantalla de vista previa, donde podemos probar nuestro proyecto antes de publicarlo. Para ahorrarle tiempo y energía al personal de Kongregate, hágales un favor a todos y no presione publicar en su prueba SWF. (Si estás trabajando en un juego real, adelante, pero por este tutorial no publicaremos este proyecto).
Una vez que estés en la página de prueba, dale al juego unos pocos clics. Actualice la página y ahora debería ver que hay una pestaña de "PUNTOS ALTOS" junto a la pestaña "CHAT" y "JUEGO". Si ha hecho todo correctamente hasta este punto, debería tener un cuadro desplegable que actualmente lea "Última X" que también contiene "Máx. De clics" y "Total de clics". Tenga en cuenta que hacer clic rápidamente dará como resultado estadísticas inexactas, ya que el servidor no puede mantenerse al día con todas las solicitudes, así que haga clic lentamente para obtener los mejores resultados. Esta es la razón por la que le informé antes de enviar grandes lotes de datos al momento de la muerte o la finalización del nivel, cuando sea posible.
Bueno, ya está: ahora tiene la parte más importante de la API de Kongregate en funcionamiento. Si su proyecto no está funcionando en este momento, asegúrese de que los nombres de estadísticas de back-end de Kongregate estén escritos exactamente como están en su función de envío (distingue entre mayúsculas y minúsculas), ya que ese es el problema.
También puede encontrar el código completado en el archivos finales carpeta en la descarga de origen, así que compare su código con eso si todavía tiene problemas.
¿Alguna vez lanzaste un juego, y luego, realmente querías llegar a todos tus fans? Bueno, con la API de Kongregate, puedes hacer eso, al menos para todos tus fanáticos de Kongregate..
Existen algunas restricciones sobre quién puede hacer esto, pero estas restricciones son muy beneficiosas para los desarrolladores y los jugadores. Para calificar, tu juego debe recibir una calificación de 3.75 o superior y tener al menos 10k partidas de juego..
Puede enviar un mensaje de "jugadores activos" como máximo una vez cada siete días. Estos mensajes se enviarán a los jugadores que hayan jugado el juego al menos tres veces, y al menos una vez en los últimos diez días..
Puede enviar un mensaje de "jugadores inactivos" como máximo una vez cada 30 días. Estos mensajes serán recibidos por cualquier jugador que haya jugado al menos cinco veces en total, pero no en los últimos diez días..
Hay muchas razones para enviar estos mensajes a sus jugadores, como alertarlos sobre correcciones de errores o quizás informarles de una próxima secuela. Independientemente de para qué lo uses, es un sistema increíblemente útil que puede ayudarte realmente a aprovechar tus seguidores..
Para más información, consulte esta guía..
Si bien hemos cubierto mucho en este tutorial, la API de Kongregate es capaz de hacer mucho más. Desafortunadamente, tendría que escribir un pequeño libro para repasar todas las características, especialmente aquellas que son útiles para los MMO basados en la web. Si está interesado en ver qué otras funciones ofrece la API, le recomiendo que visite el Centro de Desarrolladores de Kongregate para obtener más información..
Ahora que ya sabe cómo hacer funcionar el API de Kongregate, le recomiendo que lo agregue a todos sus juegos futuros; Si tienes suerte, incluso puedes conseguir algunas insignias, y ahí es cuando comienza la verdadera diversión..