Javascript Webworkers

Publicadas por Jose Carlos Tamayo

Estaba pensando en como hacer un demo de mi juego y se me ocurrio que quizas con un poco de inteligencia artificial se ponga divertida la cosa. Divertida pero un poco dificil de implementar:
Generalmente la inteligencia artificial en juegos de video es un proceso en paralelo que consume recursos computacionales (memoria ram, ciclos de reloj, el hamster que le da potencia a tu cpu,etc) de forma moderada en el mejor de los casos.

IA Desde el Servidor
La primera idea que paso fugazmente por mi mente fue que los calculos los haga el servidor como en el siguiente esquema:

Efectivamente, es un Hamster, un Hamster bien inteligente en el servidor

La Solucion seria regular a buena, con pocos usuarios funcionaria bien, pero conforme aumente el numero de jugadores, el sistema no escalaria bien. Y aun asi se comprara un servidor mejor, no existiria una solucion mejor?, ademas no hay que olvidarnos de la usabilidad y el tiempo de espera para el usuario, tengan en cuenta que los usuarios web en general son desesperados. Me pregunte entonces ¿El cliente podra correr la IA?

Inteligencia Artificial desde el cliente
Asi que me decidi a investigar un poco que se necesitaria para correr la IA en el cliente. Estamos hablando por supuesto de usar javascript para los calculos de IA. Seria quizas mas facil usar algun plugin como javafx, flash o hasta silverlight, pero hay algo en esas tecnologias que no me gustan, el tiempo de espera quizas, que se yo.

Asi que investigando un poco encontre a los fabulosos Web Workers, que me podrian ayudar a pasar el calculo de IA del servidor al cliente. Chequen el siguiente esquema:

Ahora el AI funciona dentro de cada cliente liberando de esa carga al server

Web Workers y Tu
WebWorkers es una tecnologia que te permite ejecutar codigo Javascript en forma paralela al codigo javascript de la pagina web. Recordemos que el codigo Javascript se corre en un solo hilo. John Resig habla un poco de como funciona este hilo principal con ejemplos del timers. La situacion se vuelve mas compleja en la mayoria de los navegadores ya que actualmente, con excepcion de Chrome y su sandboxing, no solo el javascript de la pagina se corre en un solo hilo, si no el javascript de todas las paginas abiertas se corre en un solo hilo.

Comparacion del hilo de Javascript en Chrome y los otros navegadores. Chrome usa varios hilos,uno por pagina, los otros navegadores usan un solo hilo para todas las paginas. El Webworkers nos ayuda a ejecutar un nuevo hilo de javascript

Si no usaramos ese hilo especial del webworker, nuestra pagina detendria todas sus acciones hasta que haya terminado de computar el codigo fuerte. Imaginate 10 segundos sin poder usar tu pagina web, ¿Nada usable verdad?

Ahora no todo es color de rosa ya que por ahora esta en la etapa de Draft por la WHATWG la comunidad que dicta los estandares sobre HTML, CSS, Javascript y esas cosillas web.

¿Que que significa Draft? Pues que pueda que esta en proceso de ser estandar. Lo bueno es que hay navegadores como Firefox3, Safari 4 y por ahi dicen que una version de pruebas de Chrome, ya tienen funcional el uso de WebWorkers.

¿Y con los demas navegadores que hariamos? Pues no todo esta perdido, Google Gear ofrece WebWorkers, con el nombre de WorkersPool, solo que tendriamos que instalar el plugin primero. Nada mal, si lo pensamos bien podriamos hacer un wrapper para usar Webworkers Nativos si existiesen o en su defecto usar GoogleGear.

¿Que les parece esta idea?. webworkers puede llegar a convertirse en una tecnologia muy poderosa, no solo para juegos si no para paginas web en general. Imaginen una pagina muy visitada, con un webworker calculando secuencias de ADN o codigo para desencriptar un password. El poder de muchas computadoras en un solo sitio.

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Desarrollo de Juegos en Peru

Publicadas por Jose Carlos Tamayo

Yo me acuerdo cuando de niño, iba a lo que en Peru conocemos como "Vicio" o lugar donde alquilaban SuperNintendos a un sol la hora, osea algo de 30 centavos de dolar actualmente.

Y bueno resulta que en mis andadas por esos lares escuche alguna vez al televisor vociferar "Fuuuutbol Excitanteeee.. horriblee oyeeeeeee" y el sonido de la hinchada gritando fuerte.

No lo podia creer, un juego de supernintendo en español. ¿Como lo habrian hecho?. Por supuesto en esa epoca de chaval ni pensaba remotamente en esas situaciones metafisicas de creacion de juegos de video, todo lo que me importaba era destruir algun jefe en Tortuninjas o lo que estuviese de moda en ese tiempo.


La gente de TEG, primeros pasos
Pasado el tiempo y ya con la gracia del internet y las ganas de hacer juegos, encontre la razon de ser de ese escandaloso grito en el vicio: Una pirateada del juego International SuperStar Soccer hecho por un grupo de hackers compatriotas, conocidos como los TEG o Twin Eagle Group, en su pagina web tienen toda su interesante, aunque larga historia, incluyendo sus problemas legales con una conocida empresa de hardware.

He de mencionar que ellos lograron sacar un juego comercial para SuperNintendo, legal!! . Fue un Shooter llamado Gunbee F99 y fue publicado por una empresa alemana llamada APC&TCP. Si mas no me equivoco debe de ser el primer juego peruano para Super Nintendo

Imagenes pirateadas vilmente de la pagina de TEG. Say Hello to Bumble

¿Hay Vida despues de TEG?
Muchos dicen que TEG se dedica ahora a crear juegos para moviles, aunque su pagina este atrasada por 3 años. Sin embargo encontre estas empresas Peruanas que desarrollan juegos, y curiosamente juegos webs estan en su cartelera:

ArtiGames: Empresa Peruana que creo un racing game de carrerras ilegales (sic) segun dice su pagina web, llamado Full Speed. Te lo puedes descargar gratis aunque es un juego para Desktop. Nunca escuche de esta empresa pero en su pagina web informan que ademas estaban haciendo una Pelicula animada llamada Once Upon a Time in Space, ademas de un juego basado en esta pelicula. La verdad no he conseguido mucha informacion sobre esto pero seria interesante ver un resultado de esto. Youtube someone?


BamTang: A mi parecer la empresa peruana lider en creacion de juegos, comercialmente hablando claro. Tienen varios juegos en flash creados para Cartoon Network muchos de ellos sobre esa serie llamada Ben10. Ademas y a mi parecer su juego mas resaltante segun las imagenes que dan es uno llamado Dove and Vultures, no se si lo habran finalizado, pero las imagenes se ven bien interesantes. Y este ya no es un juego en flash si no hecho con C++ y el Torque Engine. supongo que para la playstation.

Imagen de su juego Dove and Vultures, tiene que ver las imagenes en su web!!!

Y asi como lo ven existe vida despues de TEG. Ustedes conocen de alguna otra empresa? Quizas algun grupo desarrollador de juegos Latinos?

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Xeno: En Camino a la Version 0.6.5

Publicadas por Jose Carlos Tamayo

Y con ustedes la version 0.6. Hay dos grandes avances que trae esta version.

1) Envio y Extraccion de Tropas al Campo de Batalla
La primera de estas mejoras es que se puede ingresar y extraer tropas del campo de batalla. La forma de hacer eso es por acciones. Por ahora le puse un coste de energia de 400 unidaes pero esto es solo de prueba.

Accion Aterrizar y Accion Orbitar. Creo que cambiare esos nombres. ¿Sugerencias de Nombres?, al chat por favor =)

Lo estuve probando en Firefox y todo esta bien, pero como siempre el caprichoso IE trae ciertos problemas. Aunque nada graves.

2) El Aclamado menu de Jugadores y Unidades
Es un nuevo menu que muestra primero a todos los jugadores y despues a todas las unidades del jugador seleccionado como un tab. Con esto uno se puede dar una idea de que hay en el mapa.

Las unidades del jugador Josekus que se encuentran en el planeta u orbitando el planeta se muestran debajo de su nombre. El fondo negro con un planeta indica que la unidad esta orbitando el planeta, el fondo verde indica que es la unidad seleccionada. Mientras que el fondo azul indica que esta decendiendo u aterrizando.


Aqui las unidades del Juagdor Dgenerexus

Planeo mejorar este nuevo menu para mostrar mas informacion util de estas unidades, como que esta siendo atacada o que esta envenenada.

Y bueno la siguiente mejora seran para arreglar posibles Bugs y Errores con IE, ademas de arreglar la interface, estoy empezando a pensar que el fondo de imagenes en el menu de unidades puede marear un poco. Despues de esta mejora empezare el modulo de Manejo y Construccion de Tropas y con esto un Login y asi empezar un Beta del juego.

Importante:
Sugerencias y Errores que quieran decirme ( se que quieren decirlo), escribanlo en el chat del blog o en el del juego ( que es el mismo) . Tambien personas que quieran participar en una futura prueba Alpha, mandenme un mensaje a mi correo designbyeeba@gmail.com

Enjoy!!!

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Guia de Mapas en 2D: Primera Parte

Publicadas por Jose Carlos Tamayo

Un juego de estrategia involucra siempre un terreno donde se realizaran las acciones del juego. Para un diseñador de juegos, el terreno no es un simple fondo secundario, puede ejercer un factor de decision para el jugador, lo que se traduce en: mas diversion para el usuario.

Mi objetivo con esta entrada es brindar una cabeza de playa al diseñador de juegos , que le permita conocer los diferentes tipos de mapas en 2D existentes. Aunque en la actualidad en los juegos Desktop normales alguna de estas tecnicas ya no son usadas, con el nacimiento de la industria de los Juegos Web, estas tecnicas han tenido un renacimiento.


Previos acerca del terreno
Todo mapa se divide en unidades minimas que podriamos definir como una celda. Estas celdas pueden servir basicamente para "pintar" el terreno. Ademas de servir de grafico, podemos dar cierto sabor a nuestro mapa con:

  • Dificultad de Movimiento: Por ejemplo que cruzar por un terreno demore mas tiempo que otros terrenos, o quizas tambien hacerlo impasable, como por ejemplo rios o el mar.
  • Addons al Terreno: Como recursos o construcciones que permitan añadir mas decisiones al jugador. Las construcciones podrian ser por ejemplo destructibles. Imagina una unidad que pueda lanzar fuego quemando un bosque (se salio el instinto piromano). No es muy ecologista pero le añade un toque de interaccion asombroso.
Las celdas ademas pueden tener diferente formas, siendo las mas comunes, la rectangular y la forma hexagonal, muy popular en juegos de tableros.

Notan los hexagonos en este mapa?

Tipos de Vistas: Ademas de las celdas existen diferentes tipos de vistas del mapa.
XXs
Hay 2 tipos de vistas basicos:

Vista Top Down:Conocida tambien como vista de aguila es la mas facil de desarrollar. Un array de 2 dimensiones se transforma en un mapa visto desde arriba. El mayhor problema de este tipo de vista es que no aporta mucho "Eye Candy" al jugador, es decir, se podria ver mucho mejor.



Vista Axonometrica: La vista axonometrica es dicho de forma simple, poner un angulo a una vista topdown. Es mas dificil de desarrollar si no se cuenta con un engine grafico de 3D, pero los graficos tienden a ser mas realistas generalmente. Hay 3 tipos de vistas axonometricas, la isometrica, la trimetrica y la dimetrica tambien conocida como vista 3/4


Las diferencias entre cada, a pesar del nombre, son faciles de diferenciar. En la vista isometrica, sus 3 dimensiones tienen el mismo tamaño, en la dimetrica, 2 dimensiones tienen el mismo tamaño mientras que la tercera dimension puede dibujarse mas grande o mas chico.

Un viejo conocido: Alpha Centaury de Sid Meiers utiliza una vista dimetrica

La Trimetrica no es muy usada en juegos de estrategia. Trata basicamente de que las 3 dimensiones son representadas con una longitud diferente.

Links Interesantes:
Para la creacion de este blog encontre 4 links que pueden ayudarles a crear sus mapas

  • Tile Based Games por Tonya (ingles): Es un tutorial mas tecnico acerca de como crear mapas con tiles, esta bueno y completisimo, aunque los ejemplos son hechos en flash.
  • Reiners Tileset (ingles, aleman): Pero que importa el idioma, aqui hay bastantes recursos graficos de tiles. Para vistas isometricas y topdown, imperdible.
  • Accidental Intricasy (ingles): Aqui enseñan una forma interesante de crear mapas de forma aleatoria usando la teoria del caos. Para gente hardcore!
  • Danc's Miraculously Flexible Game Prototyping Graphics for Small Worlds: Aparte de que su pagina madre, Lost garden, es una pagina que trata sobre desarrollo de juegos web, esta web esta regalando unas imagenes que se ensamblan como legos. Ademas contiene una lectura interesante para otro punto de vista acerca de los tiles.
Los Tiles prototipos de Danc

Disfruten el post y hasta nuevo aviso.

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me