Ikariam 0.3.2 Como Ganar Guerras Terrestres

Publicadas por Jose Carlos Tamayo

Actualizacion Julio 2011: Te gusto el Ikariam pero sientes que las batallas, como decirlo politicamente, son hojas de calculo? Prueba Xhelos - Organismos de Batalla, un verdadero juego de estrategia por turnos y dame tu opinion del juego en el foro del juego.


En esta nueva version de Ikariam, ha cambiado totalmente el enfoque de las batallas. Ya no solo los que tienen mayor ejercito ganan como en otras versiones, un memorable esfuerzo para traer algo de estrategia al juego aunque no lo cumple en modo 1 vs 1. Ahora antes de explicar como es esto de que no hay mucha estrategia en un 1 vs 1, pasare a explicar como funciona este sistema:

Veran basicamente cada unidad de tu ejercito cumple ciertos roles que son los siguientes:son:
  • Infanteria Pesada: Son las unidades que de verdad pelean cuerpo a cuerpo. En teoria son las unidades mas poderosas pero en la practica, son las que mas mueren. Puedes usar Hoplitas y Gigantes a vapor, en los dos casos, como son las unidades que mas van a morir, sugiero que compres Hoplitas si no te sobra el azufre, los gigantes son mas resistentes a las unidades de rango que vamos a ver ahorita.
  • Unidades de Rango: Pelean detras de tus unidades pesadas.Pueden ser honderos, arqueros y fusileros. Pon arqueros si la batalla va a ser larga y no tiene muchos gigantes a vapor. De lo contrario pon a tus fusileros, que tienen mas ataque pero se les acaba la municion al toque. Si tienes unidades de rango mientras tus unidades Pesadas se esten peleando, haras mas daño a la Infanteria Pesada. Aqui con unos 300 fusileros o arqueros la haras bien en cualquier pelea, siempre y cuando tengas suficiente Infanteria Ligera:
  • Infanteria Ligera: Es la infanteria que pelea al lado de tu pesada. Pueden ser los lanceros (apestan) o mejor usas a los espadachines (yeah.. pero caros en mantenimiento). Lo primero que hace la infanteria ligera es acabar con la Infanteria Ligera de tu enemigo y si no hay mas infanteria ligera es ahi donde empiezas a eliminar a las Unidades de Rango, y aqui es el truco para ganar las batallas, generalmente en la version 0.3.1 no habia muchos jugadores que compraran Espadachines, porque se iban por el combo Hoplitas + Fusileros, asi que lo que si tienes mas espadachines que tu contrincante, va a llegar un momento en que emepzaras a atacar a sus fusileros y ahi es donde ganaras la batalla, el enemigo generalmente no va a poder resistir mas de 2 rondas, a pesar de que el tenga mas infanteria pesada.
  • Artilleria: Son las que abren los muros de la ciudad enemiga, y despues atacan a la Infanteria pesada, pero su efecto no es tan grande. Aqui es un poco dificil elegir entre las catapultas que te brindan mas tiros (hacen mas daño a las tropas enemigas) o los morteros que tienen mayor ataque (abren el muro al toque). Yo prefiero abrir el muro al toque para empezar el ataque ya que mientras los muros no se derrumben tus unidades de Rango no pueden disparar, y las unidades de rango del contrario si podran. Comprar los arietes es una estupidez, Ya que no te brindan ni mas defensa (no entran a pelear) ni rompen los muros rapidamente, asi que no los compres. Pero eso si ten masomenos unos 3 Morteros por nivel de muro que quieras romper.
  • Cazador: El Girocoptero, se encarga de atacar otros girocopteros y despues de eso eliminar bombarderos enemigos si sobro alguno. Simplemente si el enemigo tiene mas girocopteros que tu te va a ganar. Pero si el enemigo tiene girocopteros y tu no, no pasa nada asi que a veces es mejor no llevar girocopteros si sabes que vas a perder.
  • Bombarderos: Son los globos, te sirven de defensa nomas, ya lo probe. Si te estan atacando y tienes bombarderos y el enemigo no tiene girocopteros , tus bombarderos atacaran las unidades de tipo Artilleria. Ojo solo te sirven al defender nomas, no las traigas a una batalla porque si tu enemigo tiene Giros, hara picadillo tus globos y por gusto encima. Ademas te demora 30 minutos en llegar a la base enemiga. En Resumen usalo en DEFENSA nomas.
  • Medicos y Cocineros: Aqui lleva la mayor cantidad que puedas, mientras mas, mejor.
El truco en esta version si vas a enfrentarte en un 1 vs 1, es tener la suficiente cantidad de unidades en cada rol para ganarle a tu contrincante. Es decir si tiene la misma cantidad de Infanteria Pesada, pero tienes mas infanteria ligera, con el tiempo tu venceras. Excepciones a este caso son las Unidades de Rango, tener mas que tu enemigo no te hara ganar la batalla (Pero ojo necesitas TENER unidades de rango, el numero suficiente como para llenar todos tus casilleros de unidades de rango, unos 300 en una batalla grande) .

Aqui a pesar que el enemigo tiene mas Pesados, yo ya le gane en -ligeros, en el siguiente moviminto gane la batalla.

En las batallas que tuve, perdi mas unidades que el enemigo pero aun asi gane. Las batallas se ganan cuando uno de los bandos pierde mucha mas tropa que el enemigo. Es por eso la importancia de los roles. De hecho ahora que lo pienso, la infanteria ligera juega el rol mas importante en esta version, gana con la ligera y ganaras la batalla.

Para lo que son batallas entre muchas personas, aqui gana quien traiga mas jugadores aliados. Cuando viene un jugador aliado, sube el nivel de moral entre tus tropas, por ende el enemigo pierde mas tropas y se rinde. No importa que tu aliado traiga 200 hoplitas, lo importante es que venga.

Creo que con las explicaciones de los roles queda bastante claro porque Ikariam no es un juego de estrategia en un 1 vs 1. Siempre ganara:
  • Quien traiga mas variedad de tropa a la batalla.
  • Quien gane en el rol de Infanteria Ligera.
Y en VS ganara quien:
  • Traiga mas aliados.
No hay mucho que pensar en Ikariam, simplemente cumple con los puntos expuestos aqui y gana tu pelea.

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

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

Drupal, para Juegos Web?

Publicadas por Jose Carlos Tamayo


Ademas de Desarrollador de Videojuegos Casual, soy tambien desarrollador de Sistemas webs, y en mis recorridos por buscar herramientas que faciliten el trabajo, encontre un Sistema de Control de Contenidos (CMS por sus siglas en gringo) o quizas seria mejor decir, un MetaSistema de Control de Contenido llamado Drupal.

Un Content Management System (CMS otra ves) es un sistema que te permite ingresar contenido a algun sistema de una forma sencilla. Piensen en Blogger, donde creas entradas de Blogs que es en si "contenido", o tambien Wikipedia donde cada entrada es "contenido", wiki tambien es un CMS.

Lo genial de Drupal es que no es en si un CMS, mas bien piensenlo como piezas de lego que te permiten crear un CMS. Estas piezas son llamadas Modulos y con los modulos adecuados tu podrias crear desde un carrito de compras a un blog. La variedad de Modulos es increible y lo mejor es que cada modulo esta interconectado con los otros Modulos, dandote lo que llamaria Supercombos de Modulos, ademas cada modulo tiene submodulos que te permiten ampliar el modulo. Y todo perfectamente calculado para que no haya problemas con instalar muchos modulos, es mas instalar muchos modulos es lo que tienes que hacer para que funcione Drupal

Algo asi de emocionantes son los Kombo en Drupal , y si es el Guason peleando contra Subzero, imagen pirateada sin verguenza de WePlay360, sin rencores muchachos pero su foto es excelente, denle una visitada a ese blog.

Lo Interesante
¿Ahora que tiene que ver Drupal con crear un PBBG? Pues casi todo, en Drupal todo contenido es conocido como un nodo. Y con ciertos modulos como el CCK tu puedes definir modulos. El ejemplo clasico es el nodo pagina de blog, que, ademas del texto e imagenes contiene, un titulo, un autor una fecha, y metatags asociados. Ahora que pasaria si creamos el modulo Unidad, que contiene digamos el poder de ataque, sus puntos de defensa, cuanto de vida tendran ademas de su nombre?


El nodo tipo Blog y usando CCK podriamos crear el nodo tipo unidad


Ok podemos crear un nodo Unidad,pero, ¿ y como lo usamos? bueno es ahi donde uno debe de hacer un poco de research. Por ahi vi un modulo llamado Trigger que realiza una accion cuando le pasa algo especifico a un modulo.

Otra de las joyas que vi por ahi es el modulo Openlayers que en resumen te permite crear mapas ala GoogleMaps, imaginate Tiles de tu mapa creado con la facilidad de Openlayers, esto en combo con tus nodo tipo unidad. Como nota especial ese modulo es en si un port a la libreria en javascript llamada tambien Openlayer que ya de por si esta interesante.

Cheken tambien el proyecto RPG en Drupal, son un conjunto de modulos que te podria ayudar a crear un juego RPG,aunque no lo he probado aun, y derrepente esta un poco desactualizado, pero sin duda te puede dar una idea de que hacer.

Mencione tambien que Drupal viene integrado con un sistema de control de usuarios demasiado bueno para ser real?. Manejo de Roles y creacion de usuarios de todo tipo. Cada rol puede ser definido tan finamente que haria sonrojar a un perfeccionista. Y eso que no he mencionado la seguridad en Drupal, Oh!! la Seguridad....

Drupal ES Seguridad, hell, tienen un grupo de vigilantes de codigo llamado Drupal Security Team que se encargan de descubrir problemas de seguridad en Drupal, modulos varios,y hasta los temas (digamos el skin de un Sistema Drupal )!!!, ellos tienen el poder de eliminar Modulos de Drupal si consideran que el modulo tiene graves defectos de seguridad!!!. Esto es Madness, muy buen madness =).


Vean la placa y diganme si no estoy siendo lo suficientemente enfatico respecto a la seguridad en Drupal. Imagen sacada de este blog (ingles) . Lean la historia y sientanse seguros

Ahora viene los puntos en contra
Drupal por supuesto tiene sus contra respecto a la creacion de juegos. El primer contra es que su curva de aprendizaje es bien inclinada, con tantos modulos por concoer, ademas de la posibilidad de crear tu propio modulo, no es para impacientes definitivamente. Claro que si lo aprendes no solo podras crear juegos sino sistemas Webs completos. Alguien dijo ERP?

Lo otro es la menor velocidad y los recursos extra que tendra que consumir tu Host. Es simple de verlo. Para que todos los modulos puedan hablar entre ellos es necesario una especie de Middleware (que seria el Core de Drupal) que permita a los modulos conversar en forma segura entre ellos. Esta capa extra da a los sistemas Drupal ( y bueno cualquier framework de cualqueir lenguaje de programacion, asi que Drupal no es el unico pecador en esto) mas tiempo de procesamiento. No esto seguro que tan lento se volvera el sistema comparandolo con una programacion mas directa, quien sabe hasta quizas sea mas rapido pero si he leido historias sobre como mezclar modulos puede llevar a ciertos bugs de eficiencia.

En fin...¿ quien se anima a desarrollar un juego en Drupal?

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

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

Arsenal del Dev: FirePHP

Publicadas por Jose Carlos Tamayo


En el desarrollo de juegos PBBG, el combo Javascript + PHP es un ejemplo clasico de como crear tu juego. En el lado Javascript tienes al poderoso Firebug que te ayuda excesivamente a debugear tu fabuloso y egocentrico codigo. ¿Pero que hay de PHP?

¿Hay vida despues de hacer echo en cada variable que quieras conocer su contenido ? Pues la forma general de debugear es mediante alguna extension a tu servidor apache como Xdebug, o quizas torturarte un poco tratando de instalar todos los requisitos para el Zend Debugger, que aunque es una excelente herramienta, seamos sinceros, no es nada sencillo de instalar y usar.

Pero hay luz al final del camino, hijos mios, y esta luz se llama FirePhp. FirePHP es una extension de Firebug que te permite, entre muchas otras cosas, ver el estado de tu variable/array/objeto en la consola firebug, muy util para debugear llamadas de AJAX, y lo mejor de todo esto es que la instalacion es demasiado sencilla para ser verdad.

Requerimientos de Instalacion

  • Mozilla Firefox
  • Extension Firebug de Mozilla
Pasos de Instalacion
  • Bajate la libreria de FirePhp en cualquier parte de tu proyecto. (Basicamente son otros archivos PHP)
  • Pon este codigo al comienzo del archivo donde quieras probar Fire PHP:
                      require_once('Direccion/de/FirePHPCore/FirePHP.class.php');
$firephp = FirePHP::getInstance(true);
  • Y Listo comienza a usar Firephp de esta forma:
                     global $firephp;
$firephp->log($unArregloXEjemplo);


Aqui la respuesta del Server en la Consola

Aqui la respuesta del Server, se muestra en la pantalla

La funcion log es una de muchas que tiene firebug, recomiendo se lo instalen, ayuda demasiado

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

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

Google Closures, Nueva libreria javascript, que parece java

Publicadas por Jose Carlos Tamayo


Por la excelente lista de correo de Sitepoint, me puse al tanto del nuevo framework javascript de google, Google Closures. Despues de la novedad de su propio lenguaje de desarrollo llamado Go, Google esta con bastantes sorpresas estos ultimos meses.

Google siempre se caracterizo por sus excelentes servicios webs como google docs o gmail, y tambien por sus deficientes interfaces (vamos, quien me puede decir que google docs es user friendly?) . Asi que no sabia que esperar de un framework javascript hecho por google, asi que.. a embarrarnos de google...

Como sabran soy fanatico de la libreria Jquery, simplemente hace las cosas bien y de una forma simple. Asi que usare Jquery para comparar a Closures. Esto a mi parecer, es una justa comparacion.

Empecemos por lo mas obvio: el Hello World de Closures

goog.require('goog.dom');

function sayHi() {
var newDiv = goog.dom.createDom('h1', {'style': 'background-color:#EEE'},
'Hello world!');
goog
.dom.appendChild(document.body, newDiv);
}

A) goog.require('goog.dom');
Notaron esa funcion require() ? Es parecida al require de php, solo que inserta el codigo "ala" Ajax, . Esto puede ser bueno, porque tu pagina sera, en el mejor de los casos veloz, ya que tu codigo se inserta despues de que la pagina finalice de cargar, como hacer una llamada Ajax pero a tu codigo. Es parecido a la funcion getScript de Jquery, solo que lo tienes que usar de forma obligatoria. Esa libreria goog.dom carga funciones necesarias para manipular el DOM de tu pagina, pero no es la unica libreria, en total deben de haber mas de 50 archivos js que componen este framework.

Ahora goog es una variable publica, espero que la unica variable publica que tenga.

b) var newDiv = goog.dom.createDom('h1', {'style': 'background-color:#EEE'}, 'Hello world!');

¿What the heck? Aqui es donde todo esto empieza a decaer. quizas porque Jquery me maleduco con la facilidad con la que puedes crear un objeto DOM, e insertarlo donde quieras, pero esto me parece demasiada verbosidad. Serio, en jquery harias algo como esto:

$('body').html("pon un tag h1 con su style background-color:#EEE");
Y eso seria todo, definitivamente esto me lleva a pensar que la curva de aprendizaje de Closures es recontra alta en comparacion de las suaves caricias que te da Jquery al aprenderlo. ¿Sera necesario aprender otra libreria de javascript, realmente Closures brinda algo que las demas librerias no brinden?

Quizas si, chekando su API, me di cuenta de algunas cosas como la implementacion de la Comunicacion bidireccional que usa gmail, cosa que tambien tiene la libreria Dojo y estoy seguro que debe de haber un plugin para jquery de esto. Y aqui es donde Closures gana puntos extras: Tiene bastantes plugins ya creados y principalmente probados y testeados, cosa que en jquery no hay. Aceptemoslo,jquery tiene plugins geniales, pero son pocos en un mar de herrores ( con h de horror).

Puntos en contra de Closures son ciertos problemas de seguridad y bueno esta version al parecer no es compatible con otros frameworks, ni tampoco es compatible con Dmitry Baranovskiy,(si, pun intented!) el mitico creador de Raphael, solo lean el raje que hizo en la conferencia "Edge of the Web", realmente se puede sentir el odio hacia google closures en las letras.

En fin Google es una marca y como muchos dicen, sera el logo de google el que impulse este nuevo framework, tiene cosas buenas y como todas las cosas nuevas tiene tambien sus enemigos. Espero me den noticas de Aplicaciones creadas con este nuevo framework, que ademas tiene un compilador y una fabrica de templates. La pregunta es: ¿Sera bueno para Juegos Web?

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

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

Se viene un gran cambiazo!!!

Publicadas por Jose Carlos Tamayo

Bueno ya con la version 0.6.6 del modulo de batallas finalizado, he decidido crear ya la primera aproximacion al juego.

Si han probabo lo que hay actualmente en el demo, es solo el modulo de batallas, no es digamos un juego completo con login, manejo de tu imperio y demas cosas como en otros juegos, asi que para ir avanzando creo que es necesario crear estas interfaces, sera la verdadera version 0.1 del Juego.

Version 0.1

  • Contiene la version 0.6.6 del modulo de batallas. No pongo imagenes porque ustedes ya lo conocen ;).
  • Contiene una actualizacion de la pagina principal: Con un login incluido (lo hice full ajax), esto seria la version 0.2. Agradezco a la gente que me dio un buen feedback sobre la interfaz de la pagina web. No se preocupen cambiare las letras a una fuente mas .. interesante.
Abra un cambiazo de colores
  • Nuevo Modulo de Administracion de Imperio: version 0.1, este modulo tendra varios submodulos en el futuro .Usare bastante Ajax y gadgets web2.0, osea una pagina excesivamente rapida para los gamers. Me enfocare en esta version en crear el submodulo de Administracion de Ejercitos, lo suficiente como para que elijas que unidades mandaras a atacar.
Aqui un mockup rapido de como sera esr version. Podras usar Drag&Drop paramovilzar tu ejercito

Tambien dare un poquito mas de enfoque al blog ya que es mi principal medio de comunicacion.

Por mientras si les gusto el juego avisen a todos sus amigos para que apoyen en la primera prueba Beta real del juego. Ya tendremos usuarios y otros freebies interesantes. Saludos y les pasare la voz de cuando sale la nueva version. Stay tuned

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

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