[CODE] [FREE ONLINE RANKING SERVICE] Servicio de rankings online en BennuGD.

Started by Erkosone, September 09, 2013, 05:21:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Erkosone


Hola gente, lo prometido es deuda, os traigo algo que creo que gustará a mas de uno, se trata de un servicio de alojamiento, gestión y procesamiento de rankings online gratuito y por ahora alojado en mi servidor web.


Que es?
- Esto es un servicio de gestión y almacenamiento de tablas de ranking en internet.


Cuesta dinero usarlo/mantenerlo?
- No, esto corre de mi cuenta.


Que puedo hacer con esto?
- Crear/actualizar tablas de rankings para mis juegos.


Que limites tiene este servicio?
- Por ahora el número de rankings online que podéis crear es ilimitado, ya que se trata de un servicio en fase de pruebas.


Que capacidad de almacenamiento tiene un archivo de ranking online?
- Consta de una estructura de 10 posiciones y 2 campos, 'nick' y 'score'.


Portabilidad y reutilización:
- El servicio está en fase experimental, lo cual quiere decir que necesita ser usado para su testeo, una vez pasado un tiempo prudencial procederé a liberar el código fuente del host para rankings online, ya que lo ideal para aplicaciones serias es que cada programador aloje sus propios rankings en su propia web, aunque no me importa alojar rankings ajenos, siempre y cuando alguno de los juegos no se convierta en un top ventas y me consuma todo el ancho de banda con cientos de visitas cada minuto XD.. lo cual dudo que pase así que no hay problema. :)


COSAS A TENER EN CUENTA:
- El carácter '@' está prohibido, cualquier envío de datos al post con el caracter ARROBA corromperá la tabla de ranking haciendo ilegible su posterior contenido, es responsabilidad del programador el controlar que no se envíe jamás este char a la web.


NOTA FINAL PARA EL PROGRAMADOR:
- Aunque el sistema está limitado a tablas de 10 posiciones, una vez liberado el motor es extremadamente simple ampliar este límite a tantas posiciones como sean necesarias, simplemente he limitado a 10 el sistema por motivos de rendimiento y almacenamiento, cuando libere el sistema tu puedes usarlo como mejor te convenga ;)




FUNCIONAMIENTO:
- Una vez enviados los datos indicando el nombre del archivo que debe procesar la información, un COMMAND "que por ahora no hace nada", un nick y un score "ojo!, todo son STRINGS!", el formulario realiza una petición de procesamiento a un archivo PHP, y esto es lo que sucede:


1)
- Si el archivo de ranking no existe se crea en el servidor.
- Si el archivo de ranking existe se abre para lectura.
2)
- Se cargan los datos del archivo a memoria en el servidor.
3)
- Si el nick indicado ya existe en el archivo se guarda su posición temporalmente.
- Si el nick indicado no existe en el archivo -> se comprueba si score es mayor que la menor del ranking, si es así se añade nick y score al ranking.
4)
- Se ordenan de forma descendente las puntuaciones acompañadas de sus correspondientes nick´s.
5)
- Se actualiza el archivo de ranking en el servior.
6)
- Se envía el contenido del nuevo ranking a la aplicación en formato texto plano en el siguiente formato:
nick[0]@score[0]@nick[1]@score[1]@......


El ejemplo que os cuelgo ya parsea esta trama de datos y los ubica en una estructura para poder pintarlos en pantalla comodamente ;)
Comentad cualquier inquietud, sugerencia, o lo que sea, me interesa depurar esto al máximo para dejar un sistema funcional para todos, esto lo necesitamos todos, particita, no te cortes, comenta, da tu opinión..




MUY IMPORTANTE
- Los archivos de ranking tienen que coexistir en un mismo directorio, POR FAVOR, seguid este formato para el nombre del archivo de ranking que uséis:
USERNAME_GAMENAME_XXXXXX.TXT


Ejemplos: erkosone_wormed_01.txt, erkosone_wormed_rank2.txt, erkosone_superranking.txt, myName_myGame.txt

[/size]

Erkosone

Como podréis comprobar la velocidad de acceso al servicio es prácticamente instantánea, así que por esto lo he compartido con la comunidad, aunque no es una pasada de sistema.. funciona que no es poco XD..


Espero que os sea de utilidad.
Un saludo.

gecko

MUY BUENA INICIATIVA!

Cosas como esta me dan ganas de revivir y actualizar todos mis proyectos juntos! :P

ya mismo, karma.
Torres Baldi Studio
http://torresbaldi.com

panreyes


Erkosone

Todo el código del sistema trabaja bajo licencia ZLIB, creo que es la mas adecuada para que cada cual pueda recolectar las partes que le interesen y modificarlas o no a su gusto sin ningún tipo de atadura, osea, podéis usarlo en juegos gratuitos o de pago.


No existe ningún concepto que limite el uso de esto, ni siquiera es necesario que se me mencione en ningún sitio, es libre para cualquier propósito ya sea comercial o gratuito, lo he creado con la esperanza de aportar un granito mas de arena a los juegos independientes que hacemos, y como se que muchos host´s gratuitos no dan demasiado soporte a bases de datos multiples he creado el host para que trabaje con archivos .txt simples ya que se pueden almacenar a miles sin problema en cualquer host.


Es tan simple de instalar en una web como copiar 2 archivos, uno html y otro php y ya está, hasta la propia web de bennu podría contenerlos y ofrecer el servicio de rankings a todos XD..
He contratado un host .com por un año, será el tiempo que esté esto activo, supongo que lo renovaré, pero creo que un par de semanas serán suficientes para testear el sistema a fondo y publicarlo completo, luego cada cual puede colgar los 2 archivos en una web y no hace falta nada mas para usarlos que conocer el link a los 2 archivos como se ve en el ejemplo que he colgado para bennu.

panreyes

En el fichero que has compartido no he visto ni el PHP ni el HTML, ¿están ya liberados?


Si interesa podríamos albergar los records en el servidor de BennuGD sin problema ya que no creo que tenga mucho consumo, y pensaremos un servicio para que sea fácil hacerlo


Un detalle: Si guarda los datos en un TXT y un juego tiene varias peticiones de records a la vez podría provocar un problema.
Casi mejor utilizaríamos una base de datos, aunque le quede algo grande.


Por cierto: Aunque liberes el código fuente no significa que no te tengan que mencionar en los créditos por aprovechar tu trabajo.

Erkosone

Hola Pixel, sobre lo que comentas de las peticiones simultaneas lo he estado mirando, creo que no habrá problema, tengo que añadir una variable de entorno que se ponga a true|false mientras se esté actualizando el archivo, algo parecido a un semáforo, según he leido es funcional y sencillo.


Sobre lo de mencionarme si se hace uso del sistema de rankings.. aunque es tentador prefiero que no, creo que sería pecar de soberbia, este es un servicio que si se aloja con garantías de disponibilidad puede ser usado por muchas aplicaciones, y no es plan de aparecer en los creditos de todo dios solo por esto hombre, no soy una garrapata XD..


Sobre el código, bueno, ya tiene mas de 100 usos y no ha dado ningún problema, supongo que se puede liberar con la seguridad de que es estable, aquí va.






Erkosone


panreyes