<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Undead Code: Internet, web 2.0, videojuegos y software &#187; Win or Defeat</title>
	<atom:link href="http://www.undeadcode.com/category/proyectos/wod/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.undeadcode.com</link>
	<description>Blog tecnológico Undead Code: web 2.0, desarrollo, internet, videojuegos, programación, proyectos...</description>
	<lastBuildDate>Mon, 06 Sep 2010 10:44:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WoD, abierta beta pública</title>
		<link>http://www.undeadcode.com/proyectos/wod-abierta-beta-publica/</link>
		<comments>http://www.undeadcode.com/proyectos/wod-abierta-beta-publica/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 10:41:18 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[counter strike]]></category>
		<category><![CDATA[e-sports]]></category>
		<category><![CDATA[juegos online]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[mmo]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=458</guid>
		<description><![CDATA[Aunque desde hace varios días el registro en Win or Defeat era libre, hoy comunicamos de forma oficial la apertura de la beta pública. Hemos acelerado un poco el proceso, debido a que tenemos un especial interés en ir recibiendo feedback masivo de mejoras y nuevas funcionalidades deseadas. Tenemos ya muchas en mente, pero debido [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque desde hace varios días el registro en <a title="Manager online de e-sports.." href="http://www.winordefeat.com		">Win or Defeat</a> era libre, hoy comunicamos de forma oficial la apertura de la beta pública. Hemos acelerado un poco el proceso, debido a que tenemos un especial interés en ir recibiendo <em>feedback</em> masivo de mejoras y nuevas funcionalidades deseadas. Tenemos ya muchas en mente, pero debido a la magnitud de la aplicación y otros factores, el avance de esas nuevas características no será inmediato. La depuración de todo el proyecto urge más, así que en unas semanas iremos ajustando cada parte de <a title="WoD: juego online multijugador masivo" href="http://www.winordefeat.com">WoD</a>, observando la coherencia lógica, la jugabilidad, el diseño&#8230;</p>
<p>¡Te esperamos! <img src='http://www.undeadcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <img src='http://www.undeadcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/wod-abierta-beta-publica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajustando el sistema de patrocinadores</title>
		<link>http://www.undeadcode.com/proyectos/ajustando-el-sistema-de-patrocinadores/</link>
		<comments>http://www.undeadcode.com/proyectos/ajustando-el-sistema-de-patrocinadores/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 15:02:21 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[juego web]]></category>
		<category><![CDATA[patrocinadores]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=420</guid>
		<description><![CDATA[Estas últimas semanas hemos realizado importantes avances, tanto en temas de funcionalidad e interfaz, como en temas de intelegencia artificial y procesos automáticos. Una de las características que tocaba redefinir concretando su funcionamiento era el sistema de patrocinadores. A nivel de estructura interna, no ha habido cambios drásticos, pero sí hemos añadido detalles para ajustar [...]]]></description>
			<content:encoded><![CDATA[<p>Estas últimas semanas hemos realizado importantes avances, tanto en temas de funcionalidad e interfaz, como en temas de intelegencia artificial y procesos automáticos. Una de las características que tocaba redefinir concretando su funcionamiento era el sistema de patrocinadores. A nivel de estructura interna, no ha habido cambios drásticos, pero sí hemos añadido detalles para ajustar aún más el sentido de los mismos.</p>
<ul>
<li><strong><em>WoDBot</em> y usuarios reales.</strong> De forma inicial, todo el control / administración de los patrocinadores iba a ser llevado por nuestro bot. Eso era muy cómodo para contratar las campañas de publicidad de forma manual bajo precio fijo, impresiones&#8230;. pero la ficha de cada patrocinador se quedaría algo coja (o nos llevaría mucho trabajo cambiar manualmente los datos de cada patrocinador, cuando éste lo desee). Así, optamos por dar la posibilidad a los usuarios de que pudiesen crear (y editar) sus propios patrocinadores. (El proceso de creación / edición lleva un alto cargo en wodies (la moneda del juego) para entre otras cosas, evitar el spam masivo.</li>
<li>Derivado del punto anterior, teníamos el problema de que los <strong>datos</strong> de cada <strong>juego</strong> (<em>CS, DoD y T34</em>) son accesibles sólo cuando el usuario está manejando su clan asociado. De tal forma, un usuario que tuviera un patrocinador creado, no podría ver las fichas en las que sale su patrocinador, si no maneja un clan para cada juego. La solución estuvo es dejar mostrar los datos (pero negando la interactividad con ellos), pasándolo al menu general de la aplicación.</li>
<li>Tras esto, ampliamos la posibilidad de que un <strong>patrocinador</strong> sólo ejerciese en un juego, en lugar de en los 3 como hasta ahora. Ser un patrocinador activo en un juego, será más barato para el usuario que estar activo en los 3.</li>
</ul>
<p>En cuanto a la parte no visual, también estamos haciendo ajustes, para controlar por ejemplo, qué pasa cuando un patrocinador no tiene créditos suficientes para dar a los clanes que patrocina. Un patrocinador paga una serie de créditos, de forma mensual, a cada clan que patrocina. Esta cantidad se resta de la cuenta del usuario que administra el patrocinador. Pero puede que el usuario no tenga crédito&#8230; y en este sentido&#8230;</p>
<ul>
<li>Varios días antes del pago a cada clan (se realiza cada 30 días naturales desde la fecha del acuerdo de patrocinio entre clan y patrocinador), se comprueba la solvencia del usuario, reservan los créditos que hacen falta para pagar a todos los clanes que patrocina una entidad. Si no hay dinero suficiente&#8230; saltan las alarmas&#8230;.</li>
<li>En el momento del pago&#8230; si no hay créditos en la reserva, se tira directamente de la cuenta de usuario. Si tampoco es suficiente, dependiendo de la cantidad debida&#8230; se rescinde el contrato al instante (<em>WoDBot</em> se encarga de los trámites) o se avisa a ambas partes de lo sucedido, dejando en manos del clan la decisión de abandonar o no el patrocinio.</li>
</ul>
<p>Además se realizan otra serie de comprobaciones y cálculos, a fin de tener todo los procesos controlados relacionados con los patrocinadores, una entidad más del juego en el que basamos el modelo de negocio de <a title="Win or Defeat: Juego web multijugador" href="http://www.winordefeat.com">WoD</a>.</p>
<p>Por otro lado, se mantiene que el <em><strong>bot</strong></em> pueda manejar patrocinadores, estando reservado a empresas o anunciantes de mayor nivel o que deseen integrarse en el sistema sin llevar un control exhaustivo de lo que pasa en el juego.</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/ajustando-el-sistema-de-patrocinadores/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El sistema multi &#8211; idioma de Earwyn / WoD</title>
		<link>http://www.undeadcode.com/proyectos/el-sistema-multi-idioma-de-earwyn-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/el-sistema-multi-idioma-de-earwyn-wod/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 11:18:15 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Earwyn]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=387</guid>
		<description><![CDATA[En la mayoría de aplicaciones, incluidas las basadas en entorno web, los detalles pueden complicar mucho el desarrollo / implementación de un proyecto. Cuanto más refinados están, más dificultades o trabas van apareciendo. E incluso algunas de ellas, se tornan insalvables. El sistema multi &#8211; idioma de Earwyn, que da soporte a Win or Defeat, [...]]]></description>
			<content:encoded><![CDATA[<p>En la mayoría de aplicaciones, incluidas las basadas en entorno web, los detalles pueden complicar mucho el desarrollo / implementación de un proyecto. Cuanto más refinados están, más dificultades o trabas van apareciendo. E incluso algunas de ellas, se tornan insalvables. El sistema <strong>multi &#8211; idioma</strong> de <a title="Earwyn: Framework PHP" href="http://earwyn.undeadcode.com">Earwyn</a>, que da soporte a <a title="Win or Defeat: Juego web multijugador" href="http://www.winordefeat.com">Win or Defeat</a>, es capaz de manejar un número ilimitado de idiomas conviviendo en el mismo servidor (o en diferentes, si se necesita), haciendo uso de base de datos, ficheros <em>php</em>, ficheros de texto&#8230;, pero para llegar a la versión actual, hubo que resolver varios problemas y optar por algunas soluciones a ellos.</p>
<p>La parte más básica del sistema que permite el multi &#8211; idioma no supuso mucha complicación. El sistema de plantillas reconoce <strong><em>tags</em></strong> asociados a literales, definidos en ficheros <em>.php</em>, donde a través de variables se declaran la traducción para ese idioma. Es decir&#8230;</p>
<ul>
<li>Existe un fichero <strong><em>.php</em></strong> por cada idioma, llamado con el esquema <em>cod.php</em>, donde <span style="color: #000080;"><em>cod</em></span> es el código de idioma. <em>Earwyn</em> sabe qué fichero cargar según el idioma marcado por el usuario, haciendo un <em>include</em> de él.</li>
</ul>
<blockquote><p>$GLOBALS["TXT_MY_TEXT"]=&#8221;Este es mi texto, definido en sp.php&#8221;;</p></blockquote>
<ul>
<li>En la plantilla <strong><em>.html</em></strong> escribimos algo como:</li>
</ul>
<blockquote><p>&#8230;.&lt;body&gt;¡txt_my_text!&lt;/body&gt;&#8230;</p></blockquote>
<ul>
<li>Y cuando la plantilla se carga, el <em>framework</em> <strong>sustituye</strong> el <em>tag</em> marcado entre exclamaciones por su texto equivalente, definido en el fichero de idioma incluido.</li>
</ul>
<blockquote><p>&#8230;.&lt;body&gt;Este es mi texto, definido en sp.php&lt;/body&gt;&#8230;</p></blockquote>
<p>Todos los literales presentes en las plantillas, se traducen con este procedimiento. Pero un juego de idiomas también afecta a otros elementos, como literales más largos, mensajes y avisos del sistema, campos de la base de datos&#8230;. En muchas páginas, es corriente ver un formulario, en español, menos las opciones de un <em>select</em>, por ejemplo de países. Ese listado se genera a partir de leer una tabla, en la que se escribe el valor del campo en un idioma. Y no queda del todo bien leer todo en español menos ciertas partes. Para evitar este problema nuestra opción fue implementar un sistema de ficheros de texto asociado a los campos identificadores (<strong><em>id</em></strong>, campo clave), que tradujese en consecuencia. Es decir&#8230;</p>
<ul>
<li>La tabla de países tiene un campo <strong>id</strong>, un número entero, único para cada registro.</li>
<li>Existe una carpeta, que a su vez contiene subcarpetas, donde según la naturaleza del dato se guardan los ficheros de texto asociados. En el caso de países, la carpeta es <em><strong>countries</strong></em>.</li>
<li>En esa carpeta existen tantos ficheros como países haya en la base de datos, nombrados como <em>id.txt</em>, donde <strong><em>id</em></strong> es el valor del campo <span style="color: #000080;"><em>id</em></span> en la tabla. (<em>1.txt, 2.txt, 3.txt&#8230;</em>)</li>
<li>A través de <em>Earwyn</em>, cuando leemos la tabla y, por tanto, el <em>id</em>, <strong>leemos</strong> el fichero asociado, sacando el valor traducido para ese campo.</li>
</ul>
<p>Para la traducción de entidades de la base de datos, usamos este método, siendo aplicable también a otros elementos. Cuando necesitamos un nuevo tipo de mensaje o entidad a traducir, creamos la carpeta con los ficheros de texto y usando las funciones del framework somos capaces de tener cualquier contenido en multi &#8211; idioma. Sin embargo, para el informe del resultado de un partido, estamos refinando más aún el proceso, al tratarse de algo especial, que contaremos más adelante.</p>
<p>En cuanto al proceso de inclusión de un nuevo idioma, es muy cómodo; basta traducir esos ficheros e indicarlo en la configuración del sitio.</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/el-sistema-multi-idioma-de-earwyn-wod/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>El simulador de partidos de WoD</title>
		<link>http://www.undeadcode.com/proyectos/el-simulador-de-partidos-de-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/el-simulador-de-partidos-de-wod/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 08:52:15 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[juego web]]></category>
		<category><![CDATA[simulador]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=380</guid>
		<description><![CDATA[Estos días venimos avanzando a buen ritmo, metiéndonos hoy a refinar el simulador de partidos y todos los procesos relacionados con él, siendo uno de los núcleos del juego e implicando muchos cálculos y complejidad técnica, pues debemos tener en mente gran variedad de aspectos y puntos variables. Y al final del partido, también debemos [...]]]></description>
			<content:encoded><![CDATA[<p>Estos días venimos avanzando a buen ritmo, metiéndonos hoy a refinar el <strong>simulador de partidos</strong> y todos los procesos relacionados con él, siendo uno de los núcleos del juego e implicando muchos cálculos y complejidad técnica, pues debemos tener en mente gran variedad de aspectos y puntos variables. Y al final del partido, también debemos ser conscientes de las repercusiones en entidades como jugadores, clanes y usuarios.</p>
<p><strong>Fijación de un partido.</strong> En el primer prototipo, la fecha era elegida de mutuo acuerdo por los participantes, dentro de unas horas y días preestablecidos. Con el fin de evitar colapsos en el sistema, optamos por que fuera el sistema quién fijara la fecha del partido, repartiendo horarios en función de la carga del servidor. (Es decir, el <em>script</em> se encarga de velar porque no se jueguen muchos partidos a la misma hora, distribuyéndolos en fechas diferentes). Otra dificultad referente a esto es la frecuencia con la que el <em>cron job</em> es lanzado. De forma básica, cada cierto tiempo en función de esos horarios, el <em>cron</em> se lanza, comprobando los partidos que hay pendientes por jugar, de los que hace la simulación. Puesto que según el juego al que pertenezca el partido a disputar (<em>Counter, Day of Defeat ó Team Fortress</em>) las reglas, puntuaciones, clases de jugadores&#8230; son diferentes, disponemos de un simulador específico para cada uno. Sin embargo, estos días estamos reestructurando la base, migrando la funcionalidad común a una librería que sirva de fundamento para los tres simuladores, implementando las características extra aparte.</p>
<p><strong>El simulador.</strong> Las primeras versiones del simulador apenas controlaban el nivel del equipo y las habilidades de los jugadores en un modo generalizado, haciendo una estimación numérica sencilla. En la actualidad y, todavía con algunos detalles que implementar, el simulador ya puede llamarse tal, dependiendo de:</p>
<ul>
<li><strong>Mapa.</strong> <a title="Win or Defeat: Juego web multijugador" href="http://www.winordefeat.com">Win or Defeat</a> recrea los mapas de los juegos a través de un mapa 2D, implementado en una matriz, como si se tratara de un ajedrez. En ese mapa, se mueven los jugadores de un lado a otro e interactúan entre ellos (disparando, huyendo, matando, capturando banderas / cumpliendo objetivos, volviendo a la vida con el <em>respawn</em>&#8230;). Cada mapa tiene características diferentes: dimensiones, muros, paredes, dificultad&#8230;</li>
<li><strong>Habilidades.</strong> Los jugadores tienen ciertas habilidades (puntería, juego en equipo, moral&#8230;) y juegan mejor o peor en función de ellas. Durante toda la partida, estas habilidades van sufriendo cambios, según se desarrolle el encuentro y sus acciones. (Por ejemplo, si un mismo jugadores es matado varias veces seguidas sin llevarse a nadie por delante, su moral bajará&#8230; del mismo modo que si dispara muchas veces acertando a la primera, su puntería sufrirá un pequeño aumento&#8230;)</li>
<li><strong>Armas.</strong> El simulador tiene un control de las armas de cada juego. No sólo controla quién a matado a quién y dónde, sino también con qué arma. Por si fuera poco, el daño a los jugadores es sensible al arma. (Un rifle hace más daño que una pistola). Y, para el futuro, tenemos en mente tenerlo en cuenta a nivel de puntuación, sumando más puntos según que armas (puntuando más si se mata a cuchillo que con un rifle de francotirador).</li>
<li><strong>Niveles.</strong> El nivel del equipo, la media general de las habilidades de los jugadores&#8230;. se sigue teniendo en cuenta, aunque con menos peso.</li>
</ul>
<p>Como en otros artículos hemos comentado, la <em>IA</em> es de los puntos fuertes del juego, y de los más complejos. Y lo que queda&#8230;</p>
<p><strong>Repercusiones.</strong> Al finalizar un partido, la mejor puntuación dice el clan ganador. Con la nueva <a title="La dimensión social de WoD" href="http://www.undeadcode.com/proyectos/la-dimension-social-de-wod/">dimensión social</a> del juego, el sistema da más importancia cuando se ha ganado a un clan enemigo (y todavía más si se trata de un partido oficial y no de un amistoso). Además, se actualizan los puntos y créditos de clanes y usuarios, las estadísticas, los informes&#8230; Toda la simulación del partido es guardada en un fichero de texto, que se puede consultar desde la ficha de partido, observando toda la funcionalidad comentada. Una mejora (ya estamos en ello) es hacer compatible el informe con el sistema de plantillas, dotándolo de mayor potencia visual, acorde con el resto de la página.</p>
<p>pd.- seguimos necesitando socios&#8230; <a title="Únete a nuestro equipo" href="http://www.undeadcode.com/unete-a-nosotros/">¡únete!</a> <img src='http://www.undeadcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/el-simulador-de-partidos-de-wod/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>El análisis técnico de WoD</title>
		<link>http://www.undeadcode.com/proyectos/el-analisis-tecnico-de-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/el-analisis-tecnico-de-wod/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 10:44:36 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[aplicaciones web]]></category>
		<category><![CDATA[juegos web]]></category>
		<category><![CDATA[post-mortem]]></category>
		<category><![CDATA[proyectos web]]></category>
		<category><![CDATA[videojuegos online]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=304</guid>
		<description><![CDATA[Comentado el aspecto lógico del juego en artículos anteriores de este post &#8211; mortem, toca revisar la parte técnica de Win or Defeat. Tecnologías, bases de datos, fundamentos técnicos&#8230; La base siempre ha sido la misma, pero según fue evolucionando la lógica, fue necesario optar por implementaciones más potentes. Así&#8230; En la primera etapa del [...]]]></description>
			<content:encoded><![CDATA[<p>Comentado el aspecto lógico del juego en artículos anteriores de este <em>post &#8211; mortem</em>, toca revisar la parte técnica de <a title="Win or Defeat: juego online multijugador" href="http://www.winordefeat.com">Win or Defeat</a>. Tecnologías, bases de datos, fundamentos técnicos&#8230; La base siempre ha sido la misma, pero según fue evolucionando la lógica, fue necesario optar por implementaciones más potentes. Así&#8230;</p>
<p>En la primera etapa del proyecto, todo el código fue desarrollado desde cero, con <a title="PHP" href="http://www.php.net/">PHP</a>, sin utilizar ningún tipo de <a title="Framework" href="http://es.wikipedia.org/wiki/Framework" target="_blank">framework</a> o entorno. Puesto que urgía tenerlo cuanto antes, nos dividimos el trabajo en dos partes, haciendo reportes diarios de todo aquello que ibamos modificando. Al dar por finalizada esa parte, la estructura de la aplicación no era la adecuada, al menos para afrontar un proyecto de las dimensiones que tiene ahora. Al retomarlo y darle ese nuevo enfoque, nos dimos cuenta que habría que rehacer muchas cosas, desde el código de la parte <em>front end</em>, hasta las relaciones y tablas de la base de datos. <span style="color: #000080;"><em>¿Cómo reestructurar entonces?</em></span></p>
<p>En este punto, comenzamos a analizar el futuro. Es decir, no se trataba simplemente de hacer algo funcional bien organizado, sino que esa organización, tanto de código como de datos, fuese muy <strong>flexible</strong>, reduciendo los costes de mantenimiento posterior lo más posible. Y, además, que las funcionalidades pudiesen ampliarse sin resultar una experiencia traumática. El resultado de la deliberación y, con vistas a que fuera un <em>software</em> corporativo, nació <a title="Earwyn: framework PHP para el desarrollo de juegos web" href="http://www.undeadcode.com/category/proyectos/earwyn/">Earwyn</a>. Ya no teníamos una prisa especial para terminar el juego, así que decidimos sacrificar varios meses (que se convirtieron en bastantes) ganando un mayor control sobre la aplicación&#8230; y la verdad es que a nivel de productividad, se nota mucho que un <em>framework</em> te de tantas facilidades: código más limpio, más ordenado, control de errores, logs&#8230; fue un trabajo impresionante, pero ha merecido la pena.</p>
<p>De <em>php4</em> pasamos a <strong><em>php5</em></strong> (entre otras cosas, por que <a title="Earwyn: framework PHP " href="http://earwyn.undeadcode.com">Earwyn</a> se diseñó para la versión 5 del lenguaje); de unas 20 tablas <strong><em>mySQL</em></strong> hemos pasado a 46 (y aumentando); de <em>html</em> usando tablas y embebido en los ficheros <em>.php</em> hemos evolucionado a diseño y datos separados, con plantillas <em><strong>xhtml</strong> / <strong>css2</strong></em> sin código <em>php</em>; y nos hemos metido con <strong><em>AJAX</em></strong>.</p>
<p><strong>Back end.</strong> La parte de los <em>cron</em>, <em>jobs</em>&#8230; también corre bajo <em>PHP</em>, aunque en determinados procesos hemos  experimentado con algo de <em>PERL</em> y <em>Python</em>.</p>
<p><strong>¿Por qué PHP?</strong> Tanto <em>Thani</em> como yo, teníamos una base sólida en esta tecnología&#8230; así que, simplemente, por el hecho de sentirnos más cómodos desarrollando. En cuanto al uso de <a title="mySQL gestor de base de datos" href="http://www.mysql.com/"><em>mySQL</em></a>, porque suele ser un complemento muy habitual de <em>PHP</em> (muy fácil de encontrar en las características de cualquier servidor) y es eficiente para el volumen de datos que pretendemos manejar. Si en unos años la cosa adquiere mucha más carga de datos&#8230; puesto que las operaciones se hacen a través de <em>Earwyn</em>, cambiando esa parte del <em>framework</em>, no tendríamos que tocar muchas cosas para que fuera compatible, por ejemplo, con <a title="Postgre SQL" href="http://www.postgresql.org/">Postgre</a>. Sobre hacer uso de técnicas <a title="AJAX" href="http://es.wikipedia.org/wiki/AJAX">AJAX</a>, vimos que era necesario actualizarse a las nuevas tendencias, además de dotar de espectacularidad, mejorando la experiencia de usuario en ciertas operaciones. <em>Earwyn</em> trae un motor de <em>AJAX</em>, pero también hemos utilizado librerías como <a title="jQuery: Javascript" href="http://jquery.com/">jQuery</a> o <a title="JavaScript Framework" href="http://www.prototypejs.org/">Prototype</a>.</p>
<p><strong>¿Flash?</strong> Tenemos en mente, para desarrollar más adelante, hacer un simulador virtual en <a title="Flash" href="http://es.wikipedia.org/wiki/Adobe_Flash">flash</a> de los partidos. De tal forma que además del resultado en texto (ambientado con <a title="CSS Hojas de Estilos" href="http://es.wikipedia.org/wiki/Css">CSS2</a>) haya una animación que lo escenifique. Pero a falta de <a title="Diseñador - Creativo Web" href="http://www.undeadcode.com/unete-a-nosotros/">creativo web</a>&#8230;</p>
<p><strong>Servidor. </strong>Desde hace varios meses, el juego se aloja en un servidor compartido, alquilado a una compañía americana. Imaginamos que después de la <em>beta</em> abierta&#8230; habrá que plantearse migrar a un servidor dedicado, debido a que el volumen de datos (y la carga que conlleve al equipo) ya puede ser más que importante.</p>
<p>Y con esto y muchas horas&#8230;</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/el-analisis-tecnico-de-wod/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>La dimensión social de WoD</title>
		<link>http://www.undeadcode.com/proyectos/la-dimension-social-de-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/la-dimension-social-de-wod/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 08:35:38 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[juegos online]]></category>
		<category><![CDATA[juegos web]]></category>
		<category><![CDATA[proyectos web]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=296</guid>
		<description><![CDATA[En los post anteriores (lógica del juego y su continuación) relacionados con la lógica de Win or Defeat, dejamos pendiente hablar sobre la dimensión social del juego, una dimensión que no se planteó en un principio, pero que ahora es parte esencial del proyecto. Así&#8230; Cuando comenzamos a diseñar la lógica del juego, no se [...]]]></description>
			<content:encoded><![CDATA[<p>En los post anteriores (<a title="Planteamiento lógico Win or Defeat" href="http://www.undeadcode.com/proyectos/wod-planteamiento-logico/">lógica del juego</a> y <a title="Continuación Planteamiento lógico Win or Defeat" href="http://www.undeadcode.com/proyectos/continuando-con-la-logica-de-wod/">su continuación</a>) relacionados con la lógica de <a title="Win or Defeat" href="http://www.winordefeat.com">Win or Defeat</a>, dejamos pendiente hablar sobre la dimensión social del juego, una dimensión que no se planteó en un principio, pero que ahora es parte esencial del proyecto. Así&#8230;</p>
<p>Cuando comenzamos a diseñar la lógica del juego, no se nos pasó por la cabeza añadir posibilidades sociales al sistema, aunque sí veíamos que el proyecto debía tener un aspecto que lo diferenciara de otros juegos web, algún detalle que hiciera <strong><em>WoD</em></strong> único (o, al menos, que enganchara por tiempo indefinido). Como usuario de juegos web, como <a title="Ogame" href="http://www.ogame.com.es/">ogame</a> o <a title="Ikariam" href="http://ikariam.es/">ikariam</a>, siempre he echado en falta algunos puntos que en <em>WoD</em> estamos tratando de evitar,</p>
<ul>
<li>Tras el registro, te pones manos a la obra y creas los primeros edificios, vas aumentándolos de nivel, generas tropas, infraestructuras, atacas, te atacan&#8230;. pero llega un punto en que tu única opción se reduce a dedicar tiempo, tiempo y más tiempo (conectado, aunque no hagas mucho). Y si tienes algún despiste, todo aquello creado habrá sido destruido&#8230; quitándote las ganas de construir todo de nuevo&#8230; dejando el juego.</li>
<li>Cuando vas adquiriendo más nivel, subiendo en los <em>rankings</em> llega otro punto en el que te preguntas.. ¿y ahora qué? Soy demasiado grande para seguir progresando a buen ritmo.. y demasiado pequeño para enfrentarme en un guerra abierta&#8230;. en ese momento, sigues jugando, pero esperando a ver que vá pasando&#8230; y con un punto de desánimo&#8230; el <em>vicio</em> ha perdido tirón&#8230;</li>
<li>Si quieres dejarlo por un tiempo, puedes congelar la cuenta, pero no puedes tomarte vacaciones por tiempo indefinido.</li>
<li>Creas alianzas, pactos&#8230; pero más allá de los mensajes privados no puedes interactuar con otros usuarios.</li>
</ul>
<p>Pensando en cómo solucionar estos puntos flojos que veníamos observando, se nos ocurrió la idea de embeber una <strong>red social</strong>, de tal forma que</p>
<ul>
<li>El usuario se registra, pero no crea ningún equipo ni establece ningún paso que le obligue a jugar. Una vez dentro, puede crear sus clanes para competir en el juego, o utilizar sólo el ámbito social de la web. Del mismo modo, se puede dejar de competir&#8230; sin repercusiones en el sistema.</li>
<li>Los usuarios pueden definir amigos, enemigos&#8230; En función de esas relaciones, los efectos en el juego serán unos u otros. (Por ejemplo, los partidos ganados a enemigos puntúan más).</li>
<li>Sistema de <em>microblogging</em>: al margen de los mensajes privados, se puede compartir un mensaje con todos tus amigos, de tal forma que estos lo vean en su panel, desde su cuenta.</li>
<li>En el perfil se pueden indicar muchos datos, como parte de esa dimensión social. También se puede enlazar a tus perfiles en otras redes a través de un sistema de iconos&#8230;.</li>
<li>Los usuarios tienen la posibilidad de modificar su <em>avatar</em>, de subir fotos, de organizar eventos&#8230; de crear comunidad.</li>
</ul>
<p>Conseguir que un usuario entre y esté enganchado un par de meses&#8230; no es demasiado difícil. Lo complicado es hacer que se encuentre tan agusto que no desee marcharse, que adopte la plataforma como una más en su vida digital. La idea de <strong>socializar el juego</strong> fue esa, dotar al proyecto de una característica que lo hiciese algo más que un juego, una comunidad en donde se juega online. El tiempo y los primeros testers dirán si lo vamos consiguiendo&#8230; <img src='http://www.undeadcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/la-dimension-social-de-wod/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Continuando con la lógica de WoD</title>
		<link>http://www.undeadcode.com/proyectos/continuando-con-la-logica-de-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/continuando-con-la-logica-de-wod/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 12:49:52 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[juego web]]></category>
		<category><![CDATA[proyectos web]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[undead code]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=261</guid>
		<description><![CDATA[En la primera parte dedicada a analizar la lógica del juego, comentamos una serie de conceptos (y la variación sufrida) sobre el planteamiento del proyecto. En este artículo, a modo de segunda parte, seguiremos contando todos esos aspectos lógicos del diseño de Win or Defeat. Jugadores. Otro punto de inflexión, dada su complejidad, fue el [...]]]></description>
			<content:encoded><![CDATA[<p>En la primera parte dedicada a analizar la <a title="WoD: Planteamiento lógico" href="http://www.undeadcode.com/proyectos/wod-planteamiento-logico/">lógica del juego</a>, comentamos una serie de conceptos (y la variación sufrida) sobre el planteamiento del proyecto. En este artículo, a modo de segunda parte, seguiremos contando todos esos aspectos lógicos del diseño de <a title="Win or Defeat: Juego Online Multijugador" href="http://www.winordefeat.com">Win or Defeat</a>.</p>
<p><strong>Jugadores.</strong> Otro punto de inflexión, dada su complejidad, fue el diseño de todos los detalles relacionados con los jugadores, entidades que un usuario maneja, los <strong><em>gamers</em></strong> que forman la plantilla de cada equipo. Algo que quedaba claro en la idea inicial es que estas entidades, como los patrocinadores, habían de regirse por sí mismas, desarrollando una inteligencia artificial que se encargara de ello. Realizamos un conjunto de <em>scripts</em>, que controlaban las acciones, las decisiones y el estado de cada jugador:</p>
<ul>
<li>Un <em>gamer</em> puede desear causar baja en el equipo, así como ofrecerse para ingesar en las filas de otro clan.</li>
<li>También decide ante las ofertas que cualquier equipo le haga.</li>
<li>Con la progresión del equipo y en base a otros valores, aumentará sus habilidades.. o puede que su moral baje si no está satisfecho con su rendimiento&#8230;</li>
</ul>
<p>Programar tantas reglas, de modo que la reacción no sea previsible (en su totalidad), imitando un poco el comportamiento humano (dentro de las limitaciones evidentes) ha sido (y sigue siendo) una de las tareas más díficiles de llevar a cabo. De hecho, la dificultad radica en eso, en tener en cuenta muchos atenuantes para cada toma de decisión, añadiendo un componente que no sea mero cálculo, para que con situaciones muy similares, no siempre pase lo mismo. Al depender de muchos valores, cada opción tomada por el jugador la hace diferente a la de otro jugador, resultando un efecto más interactivo en el mundo virtual de <em>WoD</em>. En el desarrollo de esos algoritmos hemos invertido gran parte del tiempo&#8230;</p>
<p>Por otro lado, teníamos que solucionar un problema con la generación de estas entidades. Es decir, <em>¿quién metería los nuevos gamers?</em> Desde un panel de administración podríamos meterlos a mano, pero llegamos a la conclusión (ya no sólo para esto) de que debíamos automatizar el <em>99.99%</em> de los procesos para no volvernos locos con el mantenimiento de la base de datos. Se nos ocurrió programar un <a title="Definición de Cron Job" href="http://es.wikipedia.org/wiki/Cron_(Unix)">cron job</a>, que todas las noches comprueba el número de jugadores que no tienen clan y, en caso de que haya pocos jugadores <em>clanless</em>, genera una tanda de ellos. El <em>script</em> genera nombres, de forma aleatorea, basándose en unas normas para evitar <em>nicks</em> impronunciables. Más tarde y todavía en implementación, nos vino la idea de realizar un <em><strong>creador de jugadores</strong></em>, de tal manera que los usuarios podrían generar sus propios jugadores, editando sus habilidades, su <em>nick</em>, su <em>avatar</em> o imagen&#8230;.</p>
<p>El sistema de jugadores es un componente esencial del juego, así como los equipos en los que se integran. Pero los equipos no sirven de mucho si no tienen la posibilidad de competir. Y he aquí otro punto problemático, las <strong>competiciones</strong>. Tanto es así que seguimos dando retoques a este apartado, estando ya finalizado los partidos amistosos, pero no así la gestión automática de ligas. Cada liga tiene sus propias divisiones, y a su vez diferentes temporadas. Al término de una temporada, se ha de generar la siguiente, subiendo y bajando clanes de categoría. Además, hay que tener en cuenta el número de clanes en el juego, y en función de ello generar más competiciones, para no colapsarlas con muchos equipos ni que éstos se queden sin posibilidad de competir. Pero no sólo de ligas viven los trofeos, así que también se controlan torneos eliminatorios, copas&#8230; Total, mucho trabajo en el desarrollo del sistema que realiza los procesos relacionados con el control y organización de competiciones.</p>
<p>En cuanto al <strong>simulador de partidos</strong>, también ha sido un parte que ha sufrido muchos cambios y versiones. En la actual, el algoritmo está muy depurado, teniendo detalles como el arma con el que un jugador ha matado a otro. En nuestra mente está hacer sensible el algoritmo a cada mapa, hacer una versión flash del simulador (ahora el resultado se genera como texto) y depurar aún más su funcionamiento y eficiencia.</p>
<p>Otros aspectos interesantes son los relacionados con la socialización del juego, que dará para otro post&#8230; pues también está llevando un trabajo interesante&#8230;.</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/continuando-con-la-logica-de-wod/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WoD: planteamiento lógico</title>
		<link>http://www.undeadcode.com/proyectos/wod-planteamiento-logico/</link>
		<comments>http://www.undeadcode.com/proyectos/wod-planteamiento-logico/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 09:17:06 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[e-sports]]></category>
		<category><![CDATA[gamers]]></category>
		<category><![CDATA[half life]]></category>
		<category><![CDATA[juegos web]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[proyectos 2.0]]></category>
		<category><![CDATA[publicidad]]></category>
		<category><![CDATA[shooters]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=229</guid>
		<description><![CDATA[En este nuevo artículo perteneciente al post-motem del Win or Defeat, hablaremos del planteamiento lógico (cómo surgió la idea, aquello que deseamos hacer, sus cambios de concepto&#8230;) del juego, a lo largo de todo este tiempo. Hará varios días, publicamos una primera parte, titulada Idea y Evolución. Una vez tuvimos decidido el tipo de proyecto [...]]]></description>
			<content:encoded><![CDATA[<p>En este nuevo artículo perteneciente al <em>post-motem</em> del <a title="Win or Defeat: Juego Online Multijugador" href="http://www.winordefeat.com" target="_blank">Win or Defeat</a>, hablaremos del planteamiento lógico (cómo surgió la idea, aquello que deseamos hacer, sus cambios de concepto&#8230;) del juego, a lo largo de todo este tiempo. Hará varios días, publicamos una primera parte, titulada <a title="Win or Defeat: Idea y Evolución" href="http://www.undeadcode.com/proyectos/wod-idea-y-evolucion/" target="_blank">Idea y Evolución</a>.</p>
<p>Una vez tuvimos decidido el tipo de proyecto (juego web), faltaba por decidir el tema o la ambientación de éste, para ir desarrollando las ideas en torno al reglamento de juego, la mecánica, la jugabilidad&#8230; Recuerdo que estuvimos alguna semana valorando temáticas, haciendo propuestas y votando por ellas. Y el óscar fue para&#8230; el mundillo <a title="Definición de Gamer" href="http://es.wikipedia.org/wiki/Gamer" target="_blank">gamer</a>, un mundo que conocíamos (y que <em>Thani</em> todavía conoce bien, organizando ligas de <a title="Team Fortress 2" href="http://www.teamfortress.com/" target="_blank">TF2</a> y trabajando en eventos como la <a title="World Ciber Games" href="http://www.wcg.com/" target="_blank">WCG</a>) muy de cerca, formando parte activa de la comunidad y sintiendo una fuerte motivación por los <strong><em>shooters online</em></strong> cooperativos, en cuya gestión se basa <em>WoD</em>.</p>
<p>A nivel técnico, el hecho de recrear toda esa realidad suponía (y supone) un verdadero reto. Normalmente, el modelo de datos de un juego web no es muy complejo, y la dificultad de su inteligencia artificial radica en el simulador de batallas. En <strong><em>WoD</em></strong>, no sólo contamos con ese problema (simulador de partidos), sino que además había que pensar en todo el entramado de jugadores, patrocinadores, ligas&#8230; entes que el juego controla de forma automática, sin necesidad de que una mano humana esté pendiente.</p>
<p>Dejando la parte técnica (en próximos artículos hablaremos sobre ello) y volviendo a la lógica de juego, una de las cosas a definir era el juego real en el que basarnos para crear el mundo virtual. El <a title="Counter Strike" href="http://en.wikipedia.org/wiki/Counter-Strike" target="_blank">Counter Strike</a>, quizás el más famoso, era una apuesta segura que atraería a muchos <em>gamers</em>. Pero basarlo en un sólo juego, nos parecía algo pobre. Por afinidad con nuestros gustos, incluimos también el <a title="Day of Defeat" href="http://www.dayofdefeat.com/" target="_blank">Day of Defeat</a> y el <a title="Team Fortress Classic" href="http://es.wikipedia.org/wiki/Team_Fortress_Classic" target="_blank">Team Fortress Classic</a>. De los tres, el último fue el que nos dio más problemas, debido a su estructura más compleja de juego. <em>Mod Manager</em>, el nombre anterior del proyecto, viene de ahí, de la intención de hacer un <em>manager</em> para <a title="Definición de mod" href="http://es.wikipedia.org/wiki/Mod_(videojuego)" target="_blank">mods</a> del <a title="Half Life" href="http://es.wikipedia.org/wiki/Half-Life" target="_blank">Half Life</a>. Pero con la evolución del juego, convertido a 2.0, metidos en conceptos de redes sociales y mayor interacción con otros usuarios&#8230; decidimos desligarnos un poco de la base real. Sustituimos los nombres reales de los juegos por abreviaturas (para evitar conflictos de <em>copyright</em>, entre otras cosas) y dimos un pequeño vuelco al fundamento del juego. Ya no se trataría de administrar un clan de <em>Counter</em> o <em>Team Fortress</em>, sino de tener el control absoluto de equipos de <strong><em>e-sports</em></strong>. Aún así, y para no perder el sentido original, seguimos basándonos en el mundo real para emular ciertos aspectos, como por ejemplo los mapas o las clases manejadas por los <em>gamers</em>.</p>
<p>Otra entidad a la que cambiamos el diseño inicial fue los patrocinadores. En un principio, serían controlados en su totalidad por la <em>IA</em>, siendo éstos <em>sponsors</em> del panorama <em>gamer</em>. Esto suponía el problema de los derechos, no resultando factible que hibiese en el sistema, por ejemplo, un <a title="Servidores de juegos Online" href="http://www.nggn.net/" target="_blank">NGGN</a>, sin contar con su permiso. Una opción que se nos pasó por la cabeza, era contactar con todos ellos y proponerles el asunto. Esa ahora es una vía, pero creíamos que no debía ser la única, pues no sería tarea fácil (hasta que el juego consiguiese cierta fama) llegar a acuerdos. Por ello pensamos en abrir el sistema, adquiriendo un sentido de <strong>publicidad</strong>. Los patrocinadores aparecerían en las fichas de clan, en los partidos&#8230; de un modo totalmente integrado, formando parte activa del juego, resultando así mucho más atractivo para las empresas y posibles anunciantes. Además, los usuarios podrían crear patrocinadores desde su cuenta, teniendo el control de su imagen, textos, enlaces&#8230; con un seguimiento de estadísticas de impresiones, partidos patrocinados&#8230;</p>
<p>El sistema de puntos y de créditos también fue cambiado. Por las nuevas dimensiones, hubo que ajustar los parámetros, los puntos que da el sistema, la valoración de los <em>gamers</em>&#8230;. creando el concepto de <em>wodies</em>. Los <em>wodies</em> son el dinero en el mundo virtual de <em>WoD</em>. Con ellos se puede comprar jugadores, invertir en entrenamientos, en servidores&#8230;. En el concepto inicial, esos créditos servían para ello. Poco a poco, decidimos aplicarlo a todos los elementos del juego, creando esa moneda oficial que sirviera para todo. Más tarde, pensando en el <strong>modelo de negocio</strong>, se nos ocurrió que hubiese una equivalencia entre <em>wodies</em> y dinero real, y que el usuario pudiese transferir fondos a su cuenta para realizar cierto tipo de operaciones &#8220;<em>premium</em>&#8220;. Si bien la idea de las cuentas <em>premium</em> siempre estuvo ahí, adquirió un nuevo planteamiento, con ese engranaje con el sistema de <em>wodies</em>.</p>
<p>Continuará&#8230;</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/wod-planteamiento-logico/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WoD: idea y evolución</title>
		<link>http://www.undeadcode.com/proyectos/wod-idea-y-evolucion/</link>
		<comments>http://www.undeadcode.com/proyectos/wod-idea-y-evolucion/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 08:43:20 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[juego web]]></category>
		<category><![CDATA[juegos online]]></category>
		<category><![CDATA[post-mortem]]></category>
		<category><![CDATA[proyectos web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=184</guid>
		<description><![CDATA[Anunciada ya la serie de artículos post-mortem del proyecto Win or Defeat, comenzaremos a meternos en materia analizando los inicios del proyecto, recorriendo su evolución hasta el estado actual de la aplicación. La idea inicial. Tras nuestro nacimiento como grupo amateur, nos planteamos realizar un proyecto que sirviera como fuente de ingresos, para sufragar los [...]]]></description>
			<content:encoded><![CDATA[<p>Anunciada ya la serie de artículos <em><strong>post-mortem</strong></em> del proyecto <a title="Win or Defeat: Juego Online Multijugador" href="http://www.winordefeat.com" target="_blank">Win or Defeat</a>, comenzaremos a meternos en materia analizando los inicios del proyecto, recorriendo su evolución hasta el estado actual de la aplicación.</p>
<p><strong>La idea inicial.</strong> Tras nuestro nacimiento como grupo amateur, nos planteamos realizar un proyecto que sirviera como fuente de ingresos, para sufragar los gastos del servidor, asistencia a eventos y conceptos logísticos relacionados. Debatiendo sobre las posibilidades, sugiriendo proyectos, recopilando ideas&#8230; nos vino a la mente realizar un juego sencillo, basado en web, con el fin de insertar algo de publicidad y generar algunos fondos. Con la llegada de Agosto del 2006, decidimos ponernos las pilas&#8230; y en poco más de un mes, tuvimos lista una primera versión, llamada <em>Mod Manager</em>, que presentamos al <a title="Art Futura" href="http://www.artfutura.org/" target="_blank"><em>Art Futura</em></a>. <em>MM</em> estaba algo verde, pero era funcional. Por esas fechas, publicamos un conjunto de capturas.</p>
<p><strong>La evolución.</strong> El desarrollo fue muy rápido. Tenía que funcionar para una fecha y no podíamos retrasarnos. Así que olvidamos muchos detalles técnicos, en relación a estándares, usabilidad&#8230;. Después de eso, avanzamos muy lentos, hasta aparcarlo. Pero tras retomarlo con fuerza en Febrero de este año, decidimos dar un giro radical al proyecto. Así,</p>
<ul>
<li><strong>Earwyn:</strong> desarrollamos un framework que fuera capaz de hacernos más fácil la vida. Dividimos el código del diseño, automatizamos procesos, limpiamos el código&#8230; toda la parte <em>front end</em> fue renovada, cambiando cada línea de código y adaptándola al nuevo sistema. Esta vez, no pusimos empeño en tenerlo operativo, sino en que estuviese bien hecho, de cara a una administración y actualización saludable.</li>
<li><strong>Web 2.0.</strong> Hoy en día, con el boom de las aplicaciones 2.0, los sistemas web anticuados tienden a desaparecer. Renovarse o morir. Desarrollamos un motor de AJAX, complementario a jQuery y Prototype, y estudiamos las nuevas formas de presentar la información, de interacción con el usuario, creatividad en los interfaces&#8230;</li>
<li><strong>Dimensión social.</strong> Una de las funcionalidades que, como jugadores, echamos en falta en los juegos web, es la dimensión social. Es decir, compatir fotos, administrar perfiles,  crear eventos, definir relaciones con otros usuarios&#8230; Todo esto hace a la aplicación muy atractiva, pero también supone mucho desarrollo extra, que se ha ido (y está) notando en el espacio &#8211; tiempo&#8230;</li>
<li><strong>Nombre.</strong> Para que el lavado de cara fuese completo, creamos un nuevo nombre. <em>Win or Defeat</em>, fue el resultado de muchas lluvias de ideas, adquiriendo el sentido que le hemos querido dar al juego: no hay opción a derrota, gana o vence, pero nunca pierdas.</li>
</ul>
<p>Todas estas decisiones han supuesto muchos cambios en el código, en la manera de afrontar el proyecto, en el diseño de la aplicación&#8230; pero valoramos la situación y nos pareció que era un proceso necesario, vital para el éxito del juego. <em>WoD</em> pasó de ser un proyectillo eventual a convertirse en nuestra principal baza, en algo que hemos ido planificando (ejemplo de aquello que no se debe hacer) sobre la marcha. Ahora, está bien definido&#8230;</p>
<p><strong>El estado.</strong> Aunque seguimos avanzando de forma progresiva (sin rapidez pero sin pausa), en breve daremos pasos más grandes, debido a que apostaremos por el proyecto y nos dedicaremos un par de meses en modo prácticamente exclusivo. Cada día nos surgen muchas ideas, que vamos anotando, para irlas desarrollando una vez estemos en marcha.</p>
<p>pd.- seguimos buscando creativo web&#8230; ¡únete a nosotros!</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/wod-idea-y-evolucion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>La locura del WoD</title>
		<link>http://www.undeadcode.com/proyectos/la-locura-del-wod/</link>
		<comments>http://www.undeadcode.com/proyectos/la-locura-del-wod/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 11:40:52 +0000</pubDate>
		<dc:creator>Eduardo Millán</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Win or Defeat]]></category>
		<category><![CDATA[juego web]]></category>
		<category><![CDATA[red social]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[win or defeat]]></category>

		<guid isPermaLink="false">http://www.undeadcode.com/?p=181</guid>
		<description><![CDATA[Con la apertura de la beta privada ya inminente (en su fase 1, es decir, el primer testeo por parte de colaboradores de Undead) iniciamos una serie de artículos a modo de post-mortem, donde contaremos nuestra experiencia y quebraderos de cabeza con el proyecto. Cuando alguien cercano al grupo nos pregunta por el juego, nosotros [...]]]></description>
			<content:encoded><![CDATA[<p>Con la apertura de la <em>beta</em> privada ya inminente (en su fase 1, es decir, el primer <em>testeo</em> por parte de colaboradores de <em>Undead</em>) iniciamos una serie de artículos a modo de <em>post-mortem</em>, donde contaremos nuestra experiencia y quebraderos de cabeza con el proyecto.</p>
<p>Cuando alguien cercano al grupo nos pregunta por el juego, nosotros contestamos con un típico &#8220;<em>estamos en ello</em>&#8220;, que suele llevar una reacción de &#8220;<em>parece la obra de El Escorial</em>&#8220;. El desarrollo de <a title="Win or Defeat: Juego Online Multijugador" href="http://www.winordefeat.com" target="_blank">Win or Defeat</a>, ha estado plagado de parones, giros, nuevas implementaciones, cambios&#8230; pero desde hace un tiempo, lleva un rumbo bien definido, alcanzando cada vez mayores proporciones y ambiciones. Para no seguir alargando, iremos abriendo con lo básico (realmente básico), agregando funcionalidad de forma progresiva, comprobando que todo va engranándose sin problemas.</p>
<p>Y, es que, la complejidad interna de <a title="Win or Defeat: Juego Online Multijugador" href="http://www.winordefeat.com" target="_blank">WoD</a> es más que importante. Por un lado, heredamos todos los puntos de un juego (diseño de una buena jugabilidad, adicción&#8230;); por otro, tenemos los problemas de un sistema web (estándares, diseño web, usabilidad, seguridad&#8230;) y, por último, tenemos las complicaciones de una red social (ficheros, perfiles, relaciones, datos personales&#8230;). Combinar estos tres ámbitos está siendo una tarea difícil, de ahí la marcha tan lenta en los progresos. Además, varios puntos innovadores en el mundo de los juegos web nos están retrasando un poco, en concreto, la inteligencia artificial de todas las entidades (jugadores, sponsors, simulador de partidos&#8230;). Lograr una interactividad real en el sistema vivo de <em>WoD</em> está costando muchas horas de sueño, teniendo la desventaja de que no es enseñable, de que no se nota su presencia hasta que no acumulas ciertas horas jugando. Así, la IA es uno de los puntos más fuertes, que se merecerá un artículo dedicado.</p>
<p>En cuanto a la parte comercial, también vamos progresando. Tenemos ya un plan de negocio estructurado, un resumen ejecutivo del proyecto (presentado a la mesa de proyectos organizada por el <a title="Evento Blog España" href="http://www.eventoblog.com/" target="_blank">EBE</a>) y estamos elaborando un plan de empresa. La idea es que el proyecto sirva como una buena fuente de financiación para sufragar todos los gastos de la posible <em>start up</em>. Desde las últimas semanas, venimos buscando apoyos, inversores, partners, un creativo web (para unirse al equipo) y en general cualquier tipo de ayuda. Si estás interesado&#8230; ¡escribe!</p>

<p><strong>Artículos recientes relacionados:</strong></p>
<ul>
<li><a href="http://www.undeadcode.com/proyectos/encarando-un-verano-muy-intenso/">Encarando un verano muy intenso</a></li>
<li><a href="http://www.undeadcode.com/proyectos/crystal-reversi-ya-disponible-en-la-appstore/">Crystal Reversi, ya disponible en la AppStore</a></li>
<li><a href="http://www.undeadcode.com/proyectos/postmortem-tinted-turns-iphone/">Postmortem: Tinted Turns (iPhone)</a></li>
<li><a href="http://www.undeadcode.com/proyectos/independizando-somflee/">Independizando Somflee</a></li>
<li><a href="http://www.undeadcode.com/proyectos/cerrando-un-proyecto-tinted-turns/">Cerrando un proyecto: Tinted Turns</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://www.undeadcode.com/proyectos/la-locura-del-wod/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
