tag:blogger.com,1999:blog-39987073955400841882023-11-15T15:46:47.814-03:00Ronald Games BlogRonaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.comBlogger83125tag:blogger.com,1999:blog-3998707395540084188.post-51212538118155439582016-11-01T00:00:00.000-03:002016-11-02T14:08:47.466-03:00[Secretos] Juegos de la serie Kunio-kun<b>Nekketsu Koukou Dodgeball Bu / Super Dodge Ball
(NES / Famicom)</b><br />
<br />
Si revisamos la tabla gráfica, podemos observar un sprite no utilizado en el juego.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/kunio-secret00.png" height="98" title="Kunio" width="62" /></div>
Este gráfico de <b>Kunio </b>es muy similar al que aparece en la introducción de la <b>versión arcade</b> del mismo juego. Por alguna razón no fue incluido en la versión final de<b> NES/Famicom</b>.<br />
<br />
<b>Ike Ike! Nekketsu Hockey-Bu
(Famicom)</b>
<i> </i><br />
<br />
<i>Personajes no usados.</i> Cada equipo cuenta con cinco miembros disponibles para llenar cuatro posiciones al momento de juego. Hay dos equipos finalizando el <b>modo historia</b>, que nunca juegan. La <b>computadora </b>siempre utiliza los primeros cuatro miembros para jugar, dejando de lado estos últimos. A pesar de esto, sus gráficos y datos están presentes en el juego.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/kunio-secret01.png" height="68" title="Saiki - Takase" width="116" /></div>
<table align="CENTER" border="0" cellspacing="0" frame="VOID" rules="NONE"><colgroup> <col width="86"></col> <col width="86"></col> </colgroup>
<tbody>
<tr>
<td align="CENTER" height="18" width="86"><b>Saki</b></td>
<td align="CENTER" width="86"><b>Takase</b></td>
</tr>
<tr>
<td align="CENTER" height="18">Banba Inc</td>
<td align="CENTER">Shittenouji</td>
</tr>
<tr>
<td align="CENTER" height="18">242P</td>
<td align="CENTER">198P</td>
</tr>
<tr>
<td align="CENTER" height="18">105S</td>
<td align="CENTER">100S</td>
</tr>
<tr>
<td align="CENTER" height="18">106W</td>
<td align="CENTER">90W</td>
</tr>
</tbody>
</table>
<i>Passwords ocultos.</i> Hay algunos <b>passwords </b>que nunca son revelados por el juego.
<br />
<ul>
<li> <b>2437</b>: Comienza en el segundo juego, contra el <b>Nekketsu Kendo Club</b>. Pudo ser considerado innecesario debido a que el primer juego es fácil.</li>
<li> <b>0508</b>: Durante la última parte del modo historia, el juego solo da el <b>password </b>para el primer juego del <b>Torneo Inter-Escolar</b>. Este es el <b>password </b>para saltar al segundo juego.</li>
<li> <b>9250</b>: Comienza el tercer y último juego.</li>
<li> <b>4728</b>: Comienza un <b>modo historia dificil</b>, empezando por el<b> club de kendo</b>. Tu equipo es el del <b>dodgeball</b>, no tienes acceso a ninguno de los uniformes adquiridos, y no hay <b>passwords</b> intermedios ni continuación.</li>
<li> <b>7031</b>: Sound test. <b>A</b> activa el sonido seleccionado, <b>B</b> lo detiene, y <b>Start</b> regresa al <b>menú principal</b>.</li>
</ul>
<b>Downtown Nekketsu Koushin Kyoku: Soreyuke Daiundoukai
(Famicom)</b>
<br />
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio05.png" height="224" title="Kunio" width="256" /></div>
<i>Características de Debug.</i> Esta es una característica identica a la de otros juegos de <b>Technos</b>. Usualmente todos los códigos de <b>debug </b>están controlados por una <b>bandera de memoria</b>, escrita al final de la <b>ROM </b>en la <b>dirección $FFF6</b> en el espacio para <b>CPU del M6502</b>. Varios <b>bits </b>de esta <b>variable </b>habilitan o deshabilitan varias características de <b>debug</b>.<br />
<i>Sample version.</i> El <b>bit 7</b> de la variable de <b>debug </b>(para configurarlo, usar el código de <b>Game Genie</b> <b>EKNYVYAA</b>) cambia entre <b>normal </b>y "<b>SAMPLE VERSION</b>", el cual habilita algunas características. Durante el juego, presionar el botón <b>Select</b> en el <b>control 1</b>, entonces presionar uno de los siguientes botones:
<br />
<ul>
<li><b>A</b> para saltar al siguiente nivel.</li>
<li><b>B</b> para regresar al principio del juego.</li>
</ul>
<b>Kunio-kun no Nekketsu Soccer League (Famicom)</b>
<br />
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio-secret02.png" title="Kunio" /></div>
<i>Sound Test.</i> En la pantalla de Vestuarios (antes del partido), selecciona おうえん きょく ("Seleccionar BGM"), y coloca el cursor en la 6ta opción (ねっけつFCの てーま), manten Izquierda y presiona Select.<br />
<br />
<b>Nekketsu! Street Basket: Ganbare Dunk Heroes (Famicom)</b>
<br />
<br />
<i>Gráficos no usados.</i> El juego contiene el tilemap y datos CHR para una versión no usada de la pantalla "Owari" ("Final"). En lugar de la celebración del equipo de Kunio, aparecen saliendo del oceano desesperados. Esto parece indicar la posibilidad de que se hubiera planeado un "final malo". En la versión final, hay solo un final mostrando al equipo celebrando.
Lo más interesante es que hay datos CHR que contienen tiles de animación para ambas escenas, al igual que las demás. Sin embargo, por alguna razón, decidieron no usarlas. Aquí puedes ver ambas animaciones:<br />
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio-secret03.gif" title="Kunio" /></div>
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio-secret04.gif" title="Kunio" /></div>
Con respecto al "final malo", si observamos los datos CHR de la introducción del juego, vemos más sprites sin usar:
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio-secret05.png" title="Kunio" /></div>
Aquí una animación de cómo pudo haber sido:
<div style="text-align: center;">
<img alt="" src="http://ronaldgames.com/misc/kunio-secret06.gif" title="Kunio" /></div>Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-38206917125142656622016-10-01T00:00:00.000-03:002016-10-01T00:00:00.933-03:00Final Fight 2Título: <b>Final Fight 2</b><br />
<br />
Sistemas:<br />
1993 – SNES<br />
2009 – Virtual Console
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight2-0.gif" height="132" title="FF2" width="184" /></div>
En 1993 <b>Capcom </b>se encontraba en condiciones de brindar una secuela de <b>Final Fight</b>, aunque solo para el<b> mercado doméstico</b> (<b>no-arcade</b>). La <b>consola </b>favorecida fue la <b>Super Famicom/SNES</b>, la cual había tenido una versión bastante pobre del <b>juego original</b> (solo un jugador a la vez, un personaje menos y algunos niveles recortados).
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight2-1.png" height="224" title="FF2" width="256" /></div>
<b>Capcom </b>salda la deuda con dicha <b>consola</b>, restaurando el <b>modo de juego cooperativo </b>(2 jugadores), con posibilidad de escoger alguno de estos 3 personajes: <b>Haggar</b> (del <b>Final Fight</b> original), <b>Maki</b> (estudiante de la misma<b> técnica de Guy</b>) y <b>Carlos </b>(estudiante de diferentes <b>artes marciales</b>).
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight2-2.png" height="224" title="FF2" width="256" /></div>
El juego comienza mostrando que ha pasado algún tiempo desde que <b>Haggar</b>, junto a sus amigos <b>Cody </b>y <b>Guy</b>, derrotaron a la banda <b>Mad Gear</b> y devuelto la paz a <b>Metro City</b>. Sin embargo, los miembros sobrevivientes de <b>Mad Gear</b> se han reagrupado en secreto planeando su venganza. Comienzan secuestrando a la <b>novia de Guy</b>, <b>Rena</b>, junto con su padre.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight2-3.png" height="224" title="FF2" width="256" /></div>
Como a <b>Guy </b>no se le encuentra por ninguna parte, la hermana menor de <b>Rena</b>, <b>Maki </b>le informa a <b>Haggar </b>de la situación. Acompañado por su amigo <b>Carlos</b>, <b>Haggar </b>viaja a <b>Eurasia </b>para encontrarse con <b>Maki</b>, y los tres unen su fuerzas para enfrentar a la nueva<b> Mad Gear</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight2-4.png" height="224" title="FF2" width="256" /></div>
<b>Final Fight 2</b> no se desvía mucho de su <b>predecesor</b>, conserva su <b>estilo </b>(<b>ataque y salto</b>) y presenta enemigos algo diferentes pero ajustados a la <b>mecánica del juego</b>. La mayor diferencia está en que, cada uno de los 6 niveles del juego, tienen lugar en algún país de <b>Eurasia </b>en el siguiente orden: <b>Hong Kong</b>, <b>Francia</b>, <b>Holanda</b>, <b>Inglaterra</b>, <b>Italia </b>y <b>Japón</b>.<br />
<br />
Video:
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="224" src="https://www.youtube.com/embed/tqXvYf9LySI" width="256"></iframe></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-65794760464938046902016-09-01T00:00:00.000-03:002016-09-01T00:00:07.338-03:00Definición de objetos (2/2)Habíamos visto anteriormente que en ocasiones, en nuestro juego debemos manejar una gran cantidad de <b>acciones </b>y <b>animaciones </b>para los personajes.
¿Cómo podemos manejar dicha información?
En uno de mis proyectos, los personajes cuentan con varias <b>acciones</b>, <b>animaciones </b>y además utilizan 2 <b>cajas de colisiones</b> (una de <b>vulnerabilidad </b>y otra de <b>ataque</b>).
De forma similar a como vimos en <b>Street Fighter 2</b>, se utilizan variables que registran la siguiente información:
<br />
<ul>
<li> <b>SI:</b> Slot de la secuencia donde inicia la acción.</li>
<li> <b>SR:</b> Slot donde se repite la secuencia de la acción.</li>
<li> <b>SF:</b> Slot de la secuencia donde finaliza la acción.</li>
</ul>
La información se toma de la siguiente tabla:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/det-ob01.gif" height="324" title="Det Ob" width="186" /></div>
Cada slot contiene la siguiente información:
<br />
<ul>
<li> <b>ID Fot.:</b> ID del fotograma de la hoja de sprites.</li>
<li> <b>Int.:</b> intervalos de tiempo de juego que la frame de la animación se va a mostrar antes de avanzar a la siguiente frame.</li>
<li> <b>CXV:</b> coordenada horizontal del centro de la caja de vulnerabilidad.</li>
<li> <b>CYV:</b> coordenada vertical del centro de la caja de vulnerabilidad.</li>
<li> <b>RXV:</b> radio horizontal de la caja de vulnerabilidad.</li>
<li> <b>RYV:</b> radio vertical de la caja de vulnerabilidad.</li>
<li> <b>CXA:</b> coordenada horizontal del centro de la caja de ataque.</li>
<li> <b>CYA:</b> coordenada vertical del centro de la caja de ataque.</li>
<li> <b>RXA:</b> radio horizontal de la caja de ataque.</li>
<li> <b>RYA:</b> radio vertical de la caja de ataque.</li>
</ul>
La información se toma de la siguiente tabla:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/det-ob02.gif" height="532" title="Det Ob" width="368" /></div>
La <b>hoja de sprites</b> es similar a esta:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/det-ob03.png" height="190" title="Det Ob" width="380" /></div>
Ahora, a modo de ejemplo, examinemos <b>cuadro a cuadro</b> la acción de <b>ataque</b>:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/det-ob04.gif" height="85" title="Det Ob" width="259" /></div>
La acción de atacar establece el <b>slot </b>inicial en 40. El <b>slot </b>40 establece que el <b>ID del fotograma</b> de la <b>hoja de sprites</b> que será presentado es el 26. En la <b>figura </b>podemos apreciar el <b>fotograma </b>26 que da inicio a la animación. Observamos según la <b>tabla </b>que, entre cada <b>fotograma </b>hay 6 <b>intervalos </b>de tiempo antes de pasar al <b>fotograma </b>siguiente, excepto en el último <b>fotograma </b>cuya duración es de 12 <b>intervalos</b>. Además, el último <b>fotograma </b>se repite si no se pasa a otra acción. En ese caso, se debe establecer que al llegar a la conclusión del <b>slot </b>e <b>intervalo</b>, se pase a la acción siguiente (por ej: parado). También, podemos ver que en la imagen se ha marcado con una <b>cruz blanca </b>la <b>coordenada de referencia</b> donde se va a imprimir el <b>sprite</b>, mientras que la <b>cruz roja </b>indica el <b>centro de la caja de ataque</b>.
Veamos más de cerca:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/det-ob05.gif" height="350" title="Det Ob" width="280" /></div>
Según la <b>tabla de slots</b>, vemos que en el primer <b>fotograma </b>se nulifica (es decir, que todos los valores son iguales a cero) la<b> caja de vulnerabilidad</b>. Esto se hizo con el propósito de que el balón no golpee accidentalmente el personaje al <b>ejecutar el ataque</b>. También, vemos que el<b> centro de la caja de ataque</b> se establece a 4 <b>pixeles </b>horizontales de las <b>coordenadas de referencia del sprite</b> y a 52 <b>pixeles </b>verticales (rectángulo verde). Por otro lado, vemos el <b>radio horizontal y vertical</b> establecido en 27 y 18 <b>pixeles </b>respectivamente (<b>rectángulo purpura</b>).
Obviamente, este sistema se puede optimizar, por ejemplo, quitando de la <b>tabla </b>de <b>slots </b>la información de las <b>cajas de colisión</b> y estableciendo una tercer <b>tabla </b>que guarde dicha información asociándola a un <b>ID </b>(como vimos en <b>Street Fighter 2</b>).
Ahora, un video con los resultados:<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="300" src="https://www.youtube.com/embed/GMCg2tRThQc" width="400"></iframe></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-17173605604221197612016-08-01T00:00:00.000-03:002016-08-01T00:00:10.909-03:00Definición de objetos (1/2)<div lang="es-ES">
En una <b>entrada anterior</b> habíamos mencionado algo sobre cómo <b>animar </b>un objeto a partir de una <b>línea de tiempo</b>, emulando algo similar a la <b>línea de tiempo</b> que ofrece <b>Adobe Flash</b> habíamos establecido una <b>variable matriz</b> en la cual se asignaba a cada <b>elemento </b>(equivalente a un intervalo de tiempo de juego), el número de <b>frame/fotograma</b> de la<b> hoja de sprites</b> que debe imprimirse en ese instante de la secuencia.</div>
<div lang="es-ES">
El método es útil para algunas <b>secuencias de frames</b> y animaciones pequeñas, pero ¿qué ocurre si tenemos una gran cantidad de acciones con animaciones extensas?</div>
Existe otro <b>método </b>que podemos utilizar, de hecho el <b>método </b>que veremos a continuación nos permite manejar otros <b>datos de la animación</b> que nos serán de gran utilidad al momento de programar las <b>interacciones entre los objetos</b> del juego.
<br />
<div lang="es-ES">
Anteriormente se analizaba las <b>colisiones en 2D</b>, se mencionó el <b>modo de prueba de objetos</b> del <b>Street Fighter 2</b>.</div>
<div lang="es-ES" style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes04.png" height="224" title="Hitboxes" width="384" /></div>
<div lang="es-ES">
Extendiendo un poco la información ya presentada, podemos destacar los parámetros siguientes:</div>
<ul>
<li><b>CHR</b><b> </b><b>CTR:</b> El número de intervalos de tiempo de juego que la frame de la animación se va a mostrar antes de avanzar a la siguiente frame.</li>
<li><b>CHR</b><b> </b><b>DIR:</b> Dirección actual del personaje, 00 = mirando a la izquierda, 01 = mirando a la derecha.</li>
<li><b>(Sin</b><b> </b><b>etiqueta,</b><b> </b><b>debajo</b><b> </b><b>de</b><b> </b><b>CHR</b><b> </b><b>DIR):</b> ID actual de secuencia de animación.</li>
<li><b>HEAD:</b> ID de caja de vulnerabilidad Cabeza para la frame de animación actual.</li>
<li><b>BODY:</b> ID de caja de vulnerabilidad Cuerpo para la frame de animación actual.</li>
<li><b>FOOT:</b> ID de caja de vulnerabilidad Piernas para la frame de animación actual.</li>
<li><b>WEAK:</b> ID de caja de punto Débil para la frame de animación actual.</li>
<li><b>ATCK:</b> ID de caja de Ataque para la frame de animación actual.</li>
<li><b>BODY1:</b> ID de caja de presión para la frame de animación actual.</li>
<li><b>KAGE:</b> ID de sombra de fondo para la frame de animación actual.</li>
<li><b>PRIO:</b> Prioridad del sprite para la frame de animación actual.</li>
<li><b>CATCH:</b> ID de Agarre para la frame de animación actual. Determina la posición y desplazamiento del sprite del oponente para cuando está agarrado por una técnica de lanzamiento. Parece haber una para cada personaje, por ejemplo, cada personaje tiene su propia selección de sprite y posición de desplazamiento para reaccionar a una frame de Ryu con un valor de Agarre de 01, etc.</li>
<li><b>BLOCK:</b> Bandera de bloqueo para la frame de animación actual. 00 = no bloquea, 01 = bloquea de pie, 02 = bloquea de rodillas.</li>
<li><b>Weak</b><b> </b><b>No:</b> Efecto extra para aplicar si la caja de punto Débil es tocada durante la frame de animación actual. 00 = nada, 02 = daño doble.</li>
<li><b>SIT:</b> Bandera de Agacharse para la frame de animación actual 00 = de pie, 01 = agachado.</li>
<li><b>OBJ</b><b> </b><b>SUU:</b> Número de tiles de la frame de animación actual.</li>
<li><b>DX:</b> Desplazamiento en X para la hitbox mostrada actualmente.</li>
<li><b>DY:</b> Desplazamiento en Y para la hitbox mostrada actualmente.</li>
<li><b>SX:</b> Radio en X para la hitbox mostrada actualmente.</li>
<li><b>SY:</b> Radio en Y para la hitbox mostrada actualmente.</li>
<li><b>ATCK</b><b> </b><b>DNo.:</b> Tabla de daño para la caja de Ataque de la frame de animación actual.</li>
<li><b>SD</b><b> </b><b>CODE:</b> Sonido que inicia cuando se toca la caja de Ataque de la frame de animación actual.</li>
<li><b>ATCK</b><b> </b><b>EX.:</b> Tipo de ataque para la caja de Ataque de la frame de animación actual. 00 = estándar con base en el suelo normal, 01 = barrido, 02 = salto normal, 03 = movimiento especial (causa poco daño durante bloqueo), 04 = normal con propiedades especiales (derribar, etc.).</li>
<li><b>ADJUST1.:</b> Tabla de daño adicional al azar para la caja de Ataque de la frame de animación actual cuando la vitalidad es 3C o superior.</li>
<li><b>ADJUST2.:</b> Tabla de daño adicional al azar para la caja de Ataque de la frame de animación actual cuando la vitalidad es 3B o inferior.</li>
<li><b>EX</b><b> </b><b>Code:</b> Efecto en el golpe para la caja de Ataque de la frame de animación actual si ATCK EX = 03 o 04.</li>
</ul>
Tal vez no necesitemos utilizar todos estos <b>datos </b>para nuestro proyecto, pero pueden servirnos de base. Un proyecto propio utiliza tan solo 2 <b>cajas de colisiones</b> (una de <b>vulnerabilidad </b>y otra de <b>ataque</b>).
¿De que forma se pueden manejar esos datos?
La respuesta se dará en la siguiente parte.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-92143215863785461962016-07-01T00:00:00.000-03:002016-07-29T13:02:50.690-03:00Mighty No. 9Título: <b>Mighty No. 9</b><br />
<br />
Sistemas:<br />
2016 – Windows, PS3, PS4, Wii U, Xbox One<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-0.png" title="Mighty No. 9" /></div>
<br />
El polémico <b>Mighty No. 9</b>, es un videojuego de acción-plataformas desarrollado por <b>Comcept</b>. Es el resultado de una campaña en <b>Kickstarter </b>impulsada por <b>Keiji Inafune</b>, quien fue parte del staff de <b>Rockman/Megaman</b> en <b>Capcom</b>.<br />
<br />
En la descripción del proyecto, <b>Inafune </b>menciona estar asociado con desarrolladores veteranos de dicho staff. Partiendo de esta base es imposible no comparar <b>Mighty No. 9</b> con <b>Rockman/Megaman</b>, dado que contiene muchos de los mismos elementos, temas y estilos. Está claro que la intención de <b>Inafune </b>era crear un <b>sucesor espiritual</b> de ese título.<br />
<br />
Haciendo un paréntesis en el análisis de <b>Mighty No. 9</b>, vale mencionar algunos datos sobre <b>Keiji Inafune</b>:<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-1.png" title="Megaman" /></div>
Usaba el nombre "<b>INAFKING</b>" en los créditos finales de varios juegos.<br />
<br />
Además, aunque lo llaman “el padre de <b>Megaman</b>”, él mismo ha mencionado que su diseño ya estaba creado cuando se unió a <b>Capcom</b>. <b>Akira Kitamura</b>, director del <b>Megaman </b>original había creado el <b>sprite pixel art</b> estático. Esto era para asegurarse de que el <b>sprite </b>se podía ver adecuadamente en los fondos del juego, y así poder comenzar a trabajar en el desarrollo del mismo. Después de eso, el <b>pixel art</b> fue entregado a <b>Inafune</b>, quien creó una ilustración refinada del personaje. <b>Inafune </b>se refiere a este proceso como un "diseño de personajes a la inversa", ya que es lo contrario de lo que normalmente ocurre, donde los artistas crean <b>arte conceptual</b> que luego se traduce en los gráficos del juego.<br />
<br />
Podríamos decir que el trabajo de <b>Inafune </b>en un comienzo fue, pasar de esto:<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-2.png" title="Megaman" /></div>
A esto:<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-3.png" title="Megaman" /></div>
Volviendo a <b>Mighty No.9</b>, este proyecto era muy esperado desde que se anunció, pero las largas demoras, sumado a la financiación de proyectos en paralelo, habían comenzado a crear un ambiente de incertidumbre sobre el resultado final. Cuando finalmente fue lanzado, recibió una recepción mixta. Los gráficos, el diseño, contenido, calidad de voces, y los problemas técnicos del videojuego fueron muy criticados, la mayor parte de los jugadores coincidieron en que el videojuego no pudo cumplir las expectativas.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-4.png" title="Mighty No. 9" /></div>
<b>Mighty No. 9</b> es protagonizado por un robot androide llamado <b>Beck</b>, la novena unidad de un conjunto de robots de combate llamados <b>Mighty Numbers</b>. En algún momento, un virus de computadora ataca al resto de sus compañeros, así como otras máquinas en todo el mundo. El jugador, controlando a <b>Beck</b>, debe enfrentar la contingencia y descubrir al villano final que amenaza el futuro del planeta.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-5.png" title="Mighty No. 9" /></div>
La jugabilidad en <b>Mighty No. 9</b> se enfoca en plataformas 2D con gráficos en 3D. El jugador cuenta con tres acciones principales: salto, embestida y disparo. No se trata tan solo de eliminar enemigos con el disparo. Es necesario saber cuántos impactos necesitará cada enemigo para debilitarlo y luego poder ejecutar la absorción de <b>Xel</b>. Esto es, una habilidad que nos permitirá realizar combos que, a medida que vayamos aumentando su número, recibiremos potenciadores temporales.<br />
<br />
El desafío del juego está en poder realizar el 100% de absorción de <b>Xel </b>de cada enemigo, luego realizar el movimiento de embestida (llamado <b>AcXelerar</b>) lo más rápido posible tras debilitar al enemigo. Si lo hacemos al instante, obtendremos un 100% de absorción de <b>Xel </b>y un punto para el contador de <b>combo</b>. Si tardamos unas milésimas de segundo más, bajaremos el porcentaje y perderemos el <b>combo</b>.<br />
<br />
Además, cada enemigo nos puede dar potenciadores de <b>AcXel </b>en base al tipo de robot que hayamos absorbido, como por ejemplo: mejorar temporalmente el daño de los disparos (icono <b>rojo</b>), moverse más rápido (icono <b>verde</b>), aguantar más impactos (icono <b>amarillo</b>) o recuperar vida (icono <b>azul</b>).<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-6.png" title="Mighty No. 9" /></div>
El juego contiene una escena de introducción seguida de 8 escenas principales, mismas que el jugador puede escoger libremente en qué orden jugar. Al final de cada escena, <b>Beck</b>, el protagonista, debe enfrentar a alguno de los restantes ocho robots <b>Mighty Number</b>, quienes actúan como jefes de escenario. Luego de estas escenas, se desbloquean las escenas finales.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-7.png" title="Mighty No. 9" /></div>
El cuerpo de <b>Beck </b>tiene la habilidad de transformarse en distintas formas, dependiendo del robot <b>Mighty Number</b> que haya derrotado. Estas nuevas formas se llaman <b>Mighty Skills</b>, y le darán al jugador nuevas habilidades y formas de enfrentar los niveles. Por ejemplo, alguna habilidad podría permitir a <b>Beck </b>crear brazos magnéticos que le permitan escalar estructuras o destruir escudos enemigos, mientras que otra podría permitirle convertirse en un tanque para pasar fácilmente sobre áreas cubiertas con picos y mover ciertos objetos. En este sentido, va más allá de sencillamente copiar el arma del enemigo (y un simple cambio de color en el aspecto) como ocurre en <b>Rockman/Megaman</b>.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-8.png" title="Mighty No. 9" /></div>
Otro aspecto interesante es que al derrotar un jefe, este te ayuda en alguna otra escena eliminando enemigos o quitando obstáculos. Para saber en qué nivel te pueden ayudar, debes seleccionar la opción adicional “<b>consejo</b>” de la escena, el robot que te dé la advertencia será el que te ayude.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-9.png" title="Mighty No. 9" /></div>
Además de estos detalles, en términos generales, el juego cuenta con varios <b>desafíos </b>y <b>modos a desbloquear</b>.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-a.png" title="Mighty No. 9" /></div>
En conclusión, si tomamos este juego en forma independiente, tan solo es un <b>juego de plataformas regular</b>, que presenta un buen desafío y entretiene. Lamentablemente, no podemos dejar de tomar como referencia dos puntos:<br />
<br />
En primer lugar, el apartado gráfico es muy malo en comparación con la propuesta inicial. Si observamos el <b>arte conceptual</b> inicial, se ve interesante. Incluso en la demo presentada con 7 días de desarrollo se veía aceptable.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-b.png" title="Mighty No. 9" /></div>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-c.png" title="Mighty No. 9" /></div>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-d.png" title="Mighty No. 9" /></div>
Pero al trasladar todo ese arte a un 3D de baja calidad, pierde muchísimo.<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/EABbqmj5MrQ" width="500"></iframe></div>
<br />
En segundo lugar, si lo tomamos como <b>sucesor espiritual</b> de la saga <b>Rockman/Megaman</b>, la realidad es que dista mucho de serlo. La falta de carisma, personalidad, historia y desarrollo del juego, hace que solo se le parezca un poco en su estilo.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://ronaldgames.com/misc/mightyn9-e.png" title="Megaman" /></div>
<div style="text-align: center;">
<span style="font-size: x-small;">(El verdadero estilo Rockman/Megaman)</span></div>
<br />
Esto, junto al apartado gráfico, posiblemente sea algo mejorable a futuro si hubiera una secuela.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-53397996745310151642016-06-01T00:00:00.000-03:002016-06-01T00:00:23.320-03:00Historia de los videojuegos (10/10)<b>Octava generación de consolas (2012-)</b><br />
<br />
Incluye las siguientes videoconsolas: <b>Wii U</b> de <b>Nintendo</b>,<b> Sony PlayStation 4</b> y <b>Xbox One</b> de <b>Microsoft</b>. Estas <b>consolas </b>de videojuegos siguen a la <b>séptima generación</b> anterior: <b>Wii</b>, <b>PlayStation 3</b> y <b>Xbox 360</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_ps4-xbox1-wiiu.png" title="HVJ" /></div>
La <b>octava generación de consolas</b> enfrenta la competencia de los <b>teléfonos inteligentes</b>, <b>tabletas </b>y <b>televisores inteligentes</b>. Debido a la proliferación de estos dispositivos, algunos analistas especulan que la octava sea la<b> última generación de consolas domésticas</b>. En 2013, los ingresos de los juegos en <b>Android </b>superó a los ingresos de las <b>consolas de juegos portátiles</b>.
Esta <b>generación </b>ha visto el surgimiento de <b>Advanced Micro Devices</b> (<b>AMD</b>) como el principal proveedor de <b>procesadores</b>. Las tres consolas domésticas de <b>octava generación</b> utilizan <b>GPUs de AMD</b>, y dos de ellas utilizan <b>CPUs AMD</b>. <b>Microsoft</b>, <b>Nintendo </b>y <b>Sony </b>no eran conscientes de que todos estaban utilizando procesadores de <b>AMD </b>hasta que se dieron a conocer todas sus <b>consolas</b>.
Lo destacable de esta generación es el uso de <b>internet </b>como <b>eje central de la funcionalidad de las consolas</b>, esto las ha convertido en <b>media centers</b> juntando todo en un <b>único aparato</b>; las funciones de <b>consola de juegos</b> y <b>bazar de venta de películas</b>, <b>series de TV</b> y otros <b>contenidos </b>desde el mismo.
Ya en la anterior y nueva <b>generación </b>el precio de los videojuegos creció exponencialmente, mientras que por lado de los <b>teléfonos inteligentes</b> y<b> tabletas</b>, videojuegos con precios de 1 o 2 dólares son inmensamente populares y forman parte de la <b>cultura popular</b> (como <b>Angry Birds</b> y <b>Temple Run</b>). Como ya se mencionó, los videojuegos de <b>consolas </b>con sus precios altos estan enfrentados en una dura competencia con los <b>juegos móviles</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_nsmbu.png" title="HVJ" /></div>
En cuanto a lo que ofrecen las nuevas <b>consolas</b>, podemos destacar por parte de <b>Nintendo </b>que el controlador principal de la <b>Wii U</b> cuenta con una <b>pantalla táctil</b> incorporada que funciona como una <b>pantalla interactiva auxiliar</b> de manera similar a la <b>Nintendo DS/3DS</b>, o incluso como la <b>pantalla principal</b> en sí, permitiendo que los juegos sean utilizados sin la necesidad de una <b>pantalla extra</b> conectada a la <b>consola</b>. También es compatible con el <b>controlador estándar</b> de su predecesor, el <b>mando de Wii</b> y su versión mejorada, el <b>Wii MotionPlus</b>, junto con todos sus <b>periféricos </b>incluyendo la <b>Wii Balance Board</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_mgs5.png" title="HVJ" /></div>
Por parte de <b>Sony</b>, entre las nuevas <b>aplicaciones y servicios</b>, planea lanzar la aplicación <b>PlayStation App</b>, permitiendo a los que tengan un <b>PS4 </b>convertir los <b>teléfonos inteligentes</b> (<b>Smartphones</b>) y las <b>tabletas </b>en una <b>segunda pantalla </b>para mejorar la jugabilidad. La compañía también planea debutar <b>Gaikai</b>, un <b>servicio de juego basado en la nube</b> que aloja <b>contenidos </b>y<b> juegos descargables</b>. Mediante la incorporación del botón "<b>share</b>" en el nuevo controlador hará que sea posible compartir distintos <b>contenidos </b>con cualquier otro usuario, <b>Sony </b>planea colocar más énfasis en el <b>juego social</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_ki2013.png" title="HVJ" /></div>
<b>Microsoft </b>introducirá una característica que permite que su consola se haga cargo de la <b>TV</b>, al superponer una <b>interfaz de usuario</b> y sus <b>funciones en pantalla</b>. La <b>consola </b>cuenta con una función de <b>control de voz</b>, que permite a los usuarios controlar las funciones de <b>Xbox </b>a través de<b> comandos de voz</b>. Todo el <b>control de voz</b> se coordina a través del <b>Kinect</b>, y con ello la capacidad de <b>Skype</b> también se convertirá en una función de la nueva <b>Xbox</b>. El nuevo controlador también contará con una<b> zona sensible al tacto</b>, similar a la función en el nuevo controlador de <b>Sony PS4</b>. El área de contacto se utilizará para <b>gestos </b>complementando la barra de <b>sensor Kinect</b>. También podrá hacer <b>click </b>y funcionar como una plataforma de <b>control tradicional</b>.
<b> </b><br />
<br />
<b>Conclusión</b>: <br />
Si bien esta historia continuará, desde este punto podemos echar un vistazo hacia atrás y ver cómo ha cambiado lo que llamamos “<b>el mundo de los videojuegos</b>”. Sin lugar a dudas, hay muchas cosas positivas y negativas. En lo positivo: un mayor realismo en el apartado gráfico, <b>nuevas formas de jugar</b>. Algo negativo: lo desmesuradamente <b>comercial </b>que se ha vuelto la industria, unido a un alto costo tanto en las <b>consolas </b>como en los juegos.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-83049465960006987052016-05-01T00:00:00.000-03:002016-05-01T00:00:02.833-03:00Historia de los videojuegos (9/10)<b>Séptima generación de consolas (2005-)</b><br />
<br />
Incluye las <b>consolas </b>lanzadas a finales de 2005 por parte de: <b>Nintendo (Wii)</b>, <b>Microsoft (Xbox 360)</b> y <b>Sony (PlayStation 3)</b>. Cada nueva <b>consola </b>introdujo un nuevo tipo de <b>avance en la tecnología</b>. Los juegos de <b>Xbox 360</b> ofrecen de<b> forma nativa</b> resoluciones de <b>alta definición</b>, la <b>PlayStation 3</b> ofrece, además de juegos en <b>FHD</b>, la reproducción de <b>películas HD</b> a través de un <b>reproductor de discos Blu-ray</b>, y la <b>Wii </b>se centró en la integración de <b>controles con sensores de movimiento</b>, así como <b>joysticks</b>.
Uniéndose a <b>Nintendo </b>en el mercado de los <b>controles con sensores de movimiento</b>, <b>Sony </b>lanzó su <b>PlayStation Move</b>. El <b>PlayStation Move</b> cuenta con juegos de <b>detección de movimiento</b>, similar al <b>Wii</b>. <b>Microsoft </b>también se unió a <b>Sony </b>y <b>Nintendo</b>, con su <b>Kinect</b>. A diferencia de los otros dos sistemas (<b>PlayStation 3</b> y <b>Wii</b>), <b>Kinect </b>no utiliza controles de ningún tipo, y hace que el <b>propio usuario</b> sea el "<b>control</b>".
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_xb360-ps3-wii.png" title="HVJ" /></div>
<b>Nintendo </b>entró en esta <b>generación </b>con un nuevo planteamiento encarnado por su <b>Wii</b>. La compañía planeaba atraer a los actuales <b>jugadores hardcore</b>, los <b>jugadores casuales</b> y los <b>no-jugadores</b>, centrándose en las <b>nuevas experiencias de juego</b> y <b>nuevas formas de interacción con los juegos</b> en lugar de <b>gráficos de vanguardia</b> y <b>tecnología costosa</b>.
Esta estrategia dio sus frutos, y la demanda llegó a superar lo previsto por <b>Nintendo</b>. Dado que <b>Nintendo </b>se benefició de la venta de cada <b>consola </b>desde el principio a diferencia de sus competidores, esto fue un logro de rendimiento muy positivo.
Al igual que en las <b>generaciones anteriores</b>, <b>Nintendo </b>ha proporcionado un fuerte apoyo para su nueva <b>consola </b>con <b>franquicias first-party</b> populares como <b>Mario</b>, <b>The Legend of Zelda</b>, <b>Metroid </b>y <b>Pokémon</b>, entre otros. Para apelar a lo <b>casual </b>y a los <b>no-jugadores</b>, <b>Nintendo </b>desarrolló un grupo de juegos de <b>Wii</b>, que consiste en: <b>Wii Sports</b>, <b>Wii Play</b>, <b>Wii Fit</b>, y <b>Wii Music</b>, donde los jugadores hacen uso de las capacidades de <b>detección de movimiento</b> de la <b>consola </b>y sus <b>periféricos</b> para simular las actividades del <b>mundo real</b>. Editores como <b>Ubisoft</b>, <b>Electronic Arts</b>, <b>Capcom</b>, y <b>Majesco </b>desarrollaron títulos exclusivos para la <b>consola</b>, pero los títulos más fuertes de la <b>Wii</b> aún permanecen dentro de su línea <b>first-party</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_wii-sports.png" title="HVJ" /></div>
<b>Microsoft Xbox 360</b> obtuvo una temprana ventaja en términos de cuota de mercado, en gran parte debido a su sistema establecido de <b>juego online Xbox Live</b>, y su fecha de lanzamiento inicial, que fue de un año antes que sus rivales. Este lanzamiento temprano llegó con algunos problemas, ya que aparecieron<b> problemas técnicos</b> en una parte de las unidades vendidas. El problema más conocido es el "<b>anillo rojo de la muerte</b>", que recibió una gran cantidad de atención de algunos usuarios por tener que reemplazar sus <b>consolas </b>varias veces.
La ventaja del <b>Xbox 360</b> frente a sus competidores debe en sí a la liberación de los <b>juegos de alto perfil</b>, tales como la franquicia <b>Halo</b>. Además, <b>Xbox 360</b> ha logrado ganar una liberación simultánea de títulos que estaban previstos inicialmente para ser exclusivas de <b>PS3</b>, incluidos <b>Devil May Cry</b>, <b>Ace Combat</b>, <b>Virtua Fighter</b>, <b>Grand Theft Auto IV</b>, <b>Final Fantasy XIII</b>, <b>Tekken 6</b>, <b>Metal Gear Solid: Rising</b>, y <b>LA Noire</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_ffxiii-mgr.png" title="HVJ" /></div>
Por parte del <b>PlayStation 3</b>, la utilización de las nuevas tecnologías, como el <b>microprocesador Cell</b> y el <b>formato Blu-ray</b> causó dificultades en la fabricación, especialmente el <b>diodo Blu-ray</b>, lo que llevó a la escasez en el lanzamiento y retraso del mismo en <b>región PAL</b>. Sin embargo, al poco tiempo, <b>Sony </b>anunció que todos los problemas de producción se habían resuelto. Los ejecutivos de <b>Sony </b>señalaron que el éxito de la<b> PlayStation 3</b> y el <b>formato Blu-ray</b> eran dependientes entre sí. El crecimiento del mercado de las películas <b>Blu-ray Disc</b>, fue un factor positivo.
<b>Sony </b>proporcionó apoyo a su <b>consola </b>con nuevos títulos <b>first-party </b>de franquicias aclamadas como <b>Gran Turismo</b>, <b>Team Ico</b>, y <b>God of War</b>, y se fija un número de títulos esperados exclusivos de <b>terceros</b>, incluyendo <b>Metal Gear Solid 4: Guns of the Patriots</b>, <b>Final Fantasy Versus XIII</b>, <b>Yakuza 3</b>, <b>Agent</b>, y <b>Demon's Souls</b>. Otros títulos ya mencionados, en principio serían también exclusivas de la <b>consola</b>, aunque posteriormente fueron portados a otras.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_lan-t6.png" title="HVJ" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-9026212271336272932016-04-01T00:00:00.000-03:002016-04-01T00:00:02.984-03:00Historia de los videojuegos (8/10)<b>Sexta generación de consolas (1998-2013)</b><br />
<br />
También conocida como la “<b>era de los 128 bits</b>”. La misma incluye las plataformas: <b>Sega Dreamcast</b>, <b>Sony Playstation 2</b>, <b>Nintendo GameCube</b>, y <b>Microsoft Xbox</b>. Nuevamente <b>Sony</b> consigue dominar las ventas de esta <b>generación</b>, convirtiendo al<b> Playstation 2</b>, como la <b>consola </b>más vendida de la historia. De hecho, en cierto periodo de tiempo llegó a vender más que la <b>Playstation 3</b> y <b>Xbox 360</b>.
Por otro lado, aunque la <b>Dreamcast </b>fue una excelente <b>consola</b>, fue descontinuada en 2001. Si bien, todavía se producían algunos juegos para la <b>Dreamcast </b>en 2004, eran esencialmente <b>ports de arcades de la placa NAOMI</b> que fueron lanzados sólo en <b>Japón</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_dc_gc_ps2_xb.png" title="HVJ" /></div>
Las calificaciones de <b>bits </b>para consolas cayeron en gran manera después de la “<b>era 32/64-bit</b>”. El número de "<b>bits</b>" citados en los nombres de las consolas se refiere al <b>tamaño de la palabra</b> (<b>WORD</b>) que opera su <b>CPU</b>. Sin embargo, había poco que ganar aumentando el <b>tamaño de la palabra</b> más allá de los <b>32 bits</b>, ya que el <b>rendimiento </b>depende de otros factores, como la <b>velocidad del procesador principal</b>, la <b>velocidad del procesador gráfico</b>, el <b>ancho de banda y el tamaño de la memoria</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_128bits_games.png" title="HVJ" /></div>
La importancia del número de <b>bits </b>en el mercado de los juegos de <b>consola </b>moderna ha disminuido por lo tanto, debido a la utilización de componentes que procesan datos en diferentes<b> tamaños de palabra</b>. Anteriormente, los fabricantes de consolas hablaban de los "<b>n bits</b>" para destacar las capacidades del <b>hardware </b>de su <b>sistema</b>. La <b>Dreamcast </b>y <b>PlayStation 2</b> fueron los últimos sistemas en utilizar el término "<b>128 bits</b>" en su comercialización para describir su <b>capacidad</b>.
No es fácil comparar el "<b>poder</b>" relativo de los diferentes <b>sistemas</b>. Tener una consola con una <b>CPU </b>que maneja un <b>tamaño de palabra</b> más grande, no significa necesariamente que sea más <b>potente</b>. Asimismo, la <b>frecuencia de operación</b> (<b>velocidad del reloj</b>) de la <b>CPU del sistema</b> no es una medida exacta tampoco.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_dc_modem.png" title="HVJ" /></div>
La experiencia de <b>Juego Online</b>, la cual en <b>generaciones previas </b>era de dominio exclusivo de los <b>juegos de PC</b>, comenzó a ser más prominente en los <b>videojuegos de consola</b> durante esta <b>generación</b>. La <b>Dreamcast </b>inició este cambio ya que integraba un <b>módem</b>, <b>software de navegación por Internet</b>, y la capacidad de jugar a ciertos<b> juegos en línea</b>. La<b> PlayStation 2</b>, <b>Xbox </b>y <b>GameCube </b>también ofrecen jugar en línea por medio de diferentes servicios. Por el lado de la <b>Xbox</b>, ofrece un servicio integrado llamado <b>Xbox Live</b> que sólo es compatible con una <b>conexión de internet de banda ancha</b>. Su capacidad de conectar varios jugadores en <b>partidas online</b> fue un factor importante que permitió al <b>Xbox </b>hacerse un hueco en el mercado occidental, especialmente en los <b>juegos en primera persona</b>, el género de los <b>shooters</b>. La <b>PlayStation 2</b> ha dejado su <b>servicio de juego online</b> a criterio del <b>desarrollador</b>, y aunque era de uso gratuito, no siempre era una experiencia ideal, sobre todo con los juegos publicados por los <b>pequeños desarrolladores</b>. La <b>GameCube </b>no ofreció esta <b>modalidad </b>para ninguno de sus <b>títulos first-party</b>, sólo la serie <b>Phantasy Star Online</b> de <b>Sega</b>, hacía uso de las capacidades <b>en línea</b> de la <b>consola</b>. Además, para jugar <b>online </b>se necesita un <b>adaptador </b>que conecta la <b>consola </b>a <b>Internet</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_dc_online.png" title="HVJ" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-45566873156308095972016-03-01T00:00:00.000-03:002016-03-01T00:00:01.044-03:00Historia de los videojuegos (7/10)<b>Quinta generación de consolas (1993-2006)</b><br />
<br />
También conocida como la “<b>era de los 32 bits</b>”, “<b>era de los 64 bits</b>” o “<b>era 3D</b>”. Fue dominada por 3 <b>consolas</b>: <b>Sega Saturn</b>, <b>PlayStation </b>y el <b>Nintendo 64</b>. La demografía en las ventas de <b>consolas</b> varió considerablemente, pero estas 3 <b>consolas</b>, especialmente la <b>PlayStation</b>, definieron la guerra de <b>consolas </b>de esta era. La <b>3DO</b>, <b>Jaguar Atari</b>, <b>Amiga CD32</b>, <b>PC-FX</b> y varios otros fueron también parte de esta era, pero sus ventas fueron pobres y no pudieron tener un impacto significativo en el mercado.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_ss_n64_psx.png" title="HVJ" /></div>
La era de los <b>32 bits / 64 bits</b> es más conocida por el auge de los juegos completamente en <b>3D</b>. Aunque hubo juegos anteriores que habían utilizado <b>entornos tridimensionales</b>, como <b>Virtua Racing</b> y <b>Star Fox</b>, fue en esta época que muchos diseñadores de juegos empezaron a moverse de los géneros tradicionalmente <b>2D </b>y <b>pseudo-3D</b> al <b>3D</b>. Los primeros esfuerzos de los entonces líderes de la industria <b>Nintendo </b>y <b>Sega </b>vieron la introducción de <b>Super FX</b> y<b> Sega 32X</b> que proporcionaban capacidades <b>3D </b>rudimentarias para la <b>SNES </b>de <b>16 bits</b> y <b>Sega Genesis</b>. <b>Super Mario 64</b> en la <b>N64</b>, <b>Crash Bandicoot</b> en la <b>PlayStation</b>, y <b>Tomb Raider</b> en el <b>Saturn </b>(más tarde lanzado en la <b>PlayStation </b>también), fueron ejemplos de esta <b>tendencia</b>. Sus entornos <b>3D </b>fueron ampliamente comercializados y cambiaron el enfoque de la industria de juegos de<b> desplazamiento lateral</b> y <b>lineal</b>, abriendo las puertas a juegos más complejos y a<b> nuevos géneros</b>. El <b>3D </b>se convirtió en el foco principal en esta época, así como una lenta disminución del <b>formato cartucho</b> y aumento a favor del <b>formato CD</b>, debido a la capacidad de producir juegos a menor costo. Los juegos también incluyen <b>escenas más dramáticas</b> con <b>música sinfónica</b>; el término "<b>película interactiva</b>" se empezó a relacionar menos con los juegos que hacen uso intensivo de <b>videos completos</b> y más con <b>juegos de acción</b> que hacen sentir como en una <b>película</b>, como es el caso de <b>Metal Gear Solid</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_32bits_games.png" title="HVJ" /></div>
Después de dejar que <b>Sony </b>desarrollara un prototipo de <b>consola basada en CD</b> para ellos y una sociedad fallida similar con <b>Philips</b>, <b>Nintendo </b>decidió hacer del <b>Nintendo 64</b> un <b>sistema basado en cartuchos</b> al igual que sus predecesores. Públicamente, <b>Nintendo </b>defendió esta decisión alegando que daría a los juegos <b>tiempos de carga</b> más cortos que un <b>disco compacto</b> (y disminuiría la <b>piratería</b>).
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_cart_load.png" title="HVJ" /></div>
A pesar de estas y otras medidas tomadas por <b>Nintendo</b>, casi todos los demás sistemas contemporáneos utilizaron la <b>nueva tecnología de CD-ROM</b> (la <b>Nintendo 64</b> fue la última gran <b>consola </b>de videojuegos en utilizar <b>cartuchos</b>). En particular, la <b>quinta generación </b>marcó un punto de inflexión para el <b>almacenamiento basado en los medios ópticos</b>. Dado que los juegos se hicieron más complejos en el <b>contenido</b>, <b>sonido </b>y <b>gráficos</b>, el <b>CD </b>se mostró más que capaz de proporcionar <b>espacio </b>suficiente para los <b>datos adicionales</b>. El <b>formato de cartucho</b>, sin embargo, fue empujado más allá de los límites de su <b>capacidad de almacenamiento</b>. En consecuencia, muchos desarrolladores de juegos cambiaron su apoyo del <b>Nintendo 64</b> al <b>PlayStation</b>. Una de las franquicias de juegos más influyentes que cambió de <b>consolas </b>durante esta época fue la serie <b>Final Fantasy</b>, comenzando con <b>Final Fantasy VII</b>, que fue desarrollado originalmente para el <b>N64</b>, pero debido a los problemas de <b>capacidad de almacenamiento</b> fue desarrollado y liberado para la <b>PlayStation</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_ff_n64.png" title="HVJ" /></div>
Además, el <b>Nintendo 64</b> fue lanzado más tarde que sus competidores. En el momento en que finalmente fue lanzado (1996), <b>Sony </b>ya había establecido su dominio y la <b>Sega Saturn</b> estaba empezando a luchar. Su uso de <b>cartuchos </b>en lugar <b>CDs </b>alejó a algunos <b>desarrolladores </b>y <b>editores</b> debido a las <b>limitaciones de espacio</b> y el relativamente <b>alto costo</b> involucrado. Sin embargo, la <b>Nintendo 64</b> era popular en <b>América</b>, y fue el<b> hogar de juegos</b> de gran éxito como <b>The Legend of Zelda: Ocarina of Time</b>, <b>Super Mario 64</b>, <b>GoldenEye 007</b>, <b>Banjo-Kazooie</b> y <b>Super Smash Bros</b>. Finalmente, mientras que la <b>Nintendo 64</b> vendió muchas más unidades que el <b>Sega Saturn</b>, no logró superar la <b>PlayStation</b>, que dominó el mercado.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-47325380219050153422016-02-01T00:00:00.000-03:002016-02-01T00:00:11.871-03:00Historia de los videojuegos (6/10)<b>Cuarta generación de consolas (1987-1996)</b><br />
<br />
También conocida como la “<b>era de los 16 bits</b>”, comenzó con el lanzamiento de la <b> consola PC Engine/TurboGrafx-16</b> por parte de la compañía japonesa <b>NEC</b>. Aunque fue la primera, no fue la más popular debido a una <b>biblioteca limitada de juegos</b> y las restricciones impuestas por el exceso de distribución de <b>Hudson</b>. Por otro lado, la <b>Mega Drive/Sega Mega Drive/Génesis</b> demostró su valía desde el principio después de su debut en 1989. Y posteriormente, <b>Nintendo </b>respondió con su propio sistema conocido como <b>Super Nintendo/Super Famicom</b> en 1991. Estas últimas fueron las consolas dominantes de la generación.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_tg16.png" height="137" title="HVJ" width="309" /></div>
Una de las franquicias más populares de su tiempo en el mundo de los videojuegos fue <b>Mortal Kombat</b>, el cual estaba disponible tanto en la consola <b>SNES </b>como en <b>Genesis</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_gen_snes.png" height="150" title="HVJ" width="350" /></div>
La intensa competencia de esta época dio lugar a un período de comercialización que no fue del todo veraz. La <b>TurboGrafx-16</b> había sido anunciado como el primer sistema de <b>16 bits</b>, cuando en realidad su procesador central era un<b> HuC6280 de 8 bits</b>, sólo su procesador gráfico <b>HuC6270</b> era un verdadero <b>chip de 16-bit</b>. Además, <b>Mattel Intellivision</b> ya contenía un<b> procesador de 16-bit</b>. <b>Sega </b>también fue conocido por estirar la verdad en su <b>enfoque de marketing</b>, empleában el término "<b>Blast Processing</b>" para describir el simple hecho de que la <b>CPU </b>de su <b>consola </b>corría a una <b>velocidad de reloj</b> superior a la de la <b>SNES </b>(7,67 MHz frente a 3,58 MHz).
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_nintendont.png" height="172" title="HVJ" width="380" /></div>
En <b> Japón</b>, el éxito de 1987 de la <b>PC Engine</b> en contra de la <b>Famicom </b>y su <b> periférico </b>de <b>unidad de CD</b> le permitió defenderse de la <b>Mega Drive</b> en 1988. Sin embargo, esto fue algo que en realidad no se dio fuera de <b> Japón</b>. Fue así que la <b>PC Engine</b> con el tiempo perdió frente a la <b>Super Nintendo</b>, pero, debido a sus populares <b>complementos de CD</b>, retuvo suficientes usuarios como para dar soporte a juegos nuevos hasta bien entrada la década de 1990.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_cds.png" height="128" title="HVJ" width="380" /></div>
Las <b>unidades de CD-ROM</b> fueron vistas por primera vez en esta <b>generación</b>, como <b>complementos</b> para la <b>PC Engine</b> en 1988 y la <b>Mega Drive</b> en 1991. Gráficos básicos en <b>3D </b>fueron introducidos en esta <b>generación</b>, <b>polígonos planos</b> con <b>sombras </b>generados gracias a los procesadores adicionales incluidos en cartuchos de juegos como <b>Virtua Racing</b> y <b>Star Fox</b>.<br />
La <b>Neo-Geo</b> de <b>SNK </b>era la <b>consola </b>más cara por un amplio margen cuando fue lanzado en 1990, y seguiría siéndolo durante muchos años. Era capaz de presentar gráficos en <b>2D </b>con un nivel de calidad un par de años por delante de otras <b>consolas</b>. La razón de esto era que contenía el mismo <b> hardware</b> que los <b>juegos de arcade de SNK</b>. Esta fue la primera vez desde las máquinas hogareñas de <b>Pong</b> que se podía tener en su casa una <b>experiencia de juego</b> exacta al <b>arcade</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_neogeo.png" height="182" title="HVJ" width="380" /></div>
Esta <b>generación </b>terminó con la suspensión de la <b>SNES </b>en 1999.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://ronaldgames.com/misc/hvj_16bits_games.png" height="270" title="HVJ" width="380" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-85498656013527842832016-01-01T00:00:00.000-03:002016-01-01T00:00:00.796-03:00Historia de los videojuegos (5/10)<b>Tercera generación de consolas (1983-1992)</b><br />
<br />
Después de la <b>crisis de los videojuegos</b> de 1983, muchas <b>industrias americanas</b> tuvieron que dejar la producción de <b>consolas</b>. Ese momento fue aprovechado por la compañía japonesa <b>Nintendo </b>para lanzar la que sería la <b>consola </b>dominante de la <b>tercera generación</b>: la <b>Famicom</b>, conocida como <b>NES</b> (<b>Nintendo Entertainment System</b>) fuera del<b> mercado japonés</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_nes.png" title="HVJ" /></div>
Dos años mas tarde la compañía <b>SEGA </b>lanzaría su primera <b>videoconsola </b>en territorio <b>japonés </b>a la que llamaron <b>Sega Mark III</b>, esta <b>videoconsola </b>se comercializó mundialmente con el nombre de <b>Sega Master System</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_segamastersystem.png" title="HVJ" /></div>
Para muchos, esta es la “<b>primera generación de consolas</b>” o “<b>era de los 8 bits</b>”, sin embargo las <b>consolas </b>de la <b>generación anterior</b> también usaban <b>8 bits</b>. No fue hasta el final de esta <b>generación</b> cuando la gente empezó a etiquetar las generaciones con <b>nomenclaturas de bits</b>, en parte esto se debió a que la gente quería diferenciar las <b>consolas de 8 bits</b> y las de <b>16 bits</b>. Así es como a esta <b>generación </b>se conoció como la "<b>era de los 8 bits</b>".
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_sonicsms.png" title="HVJ" /></div>
Esta <b>generación </b>marcó un cambio en la <b>parte gráfica</b>, pasando de tener juegos con <b>fondos estáticos</b> a <b>fondos con movimiento de scroll</b> (hasta en algunos casos cercanos a <b>fondos en 3 dimensiones</b>). Mientras que el <b>movimiento de scroll por hardware</b> había estado presente en juegos de la <b>edad de oro de los arcades</b>, no había sido introducido en las <b>consolas </b>hasta la aparición de la <b>NES</b>, la primer <b>consola con movimiento de scroll por hardware</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/btdd_02.gif" title="HVJ" /></div>
También inicio lo que se conoce como “<b>la guerra de las consolas</b>”. Por un lado, <b>Nintendo </b>consiguió vender su consola principalmente en <b>Norteamérica</b> y <b>Japón </b>con una fuerte linea de títulos como <b>Super Mario</b>, <b>Zelda </b>y <b>Metroid</b>, además de una estricta <b>licencia de exclusividad</b> con algunos más grandes <b>desarrolladores de videojuegos</b> de la época.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_mariozeldametroid.png" title="HVJ" /></div>
Por otro lado, la <b>Sega Master System</b> fue mas popular que la <b>NES </b>en <b>Europa</b>, <b>Brasil</b>, <b>Australia</b>, <b>Nueva Zelanda</b> y otras regiones fuera del <b>monopolio </b>que tenía <b>Nintendo </b>en <b>Norteamerica </b>y <b>Japón</b>. Finalmente, fue descontinuada a finales del 1990.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_seganintendo.png" title="HVJ" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-37145902799572648142015-12-01T00:00:00.000-03:002015-12-01T00:00:03.420-03:00Historia de los videojuegos (4/10)<b>Segunda generación de consolas (1976-1984)</b><br />
<br />
Esta generación (también conocida como la era de los <b>8 bits</b>) se inicia a finales de los años 70. Durante la primera parte, se vio el lanzamiento de varias <b>consolas</b>, ya que muchas empresas decidieron entrar al mercado. En la parte final de la generación, algunas <b>consolas </b>fueron lanzadas como respuesta directa a las <b>consolas </b>anteriores.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_atari2600.png" title="HVJ" /></div>
La <b>consola </b>dominante de la generación fue el <b>Atari 2600</b>, en 1976. Alcanzando un gran éxito, la originalmente llamada <b>Atari VCS</b>, hizo que la marca <b>Atari </b>fuera sinónimo de videojuegos durante la primera mitad de la década de los 80. El dominio de <b>Atari </b>que venía desde la anterior generación. Como competencia surgió <b>Coleco</b>, con su <b>ColecoVision</b>, el cual tiene el doble de colores. Y por parte de <b>Mattel</b>, el <b>Intellivision </b>que llevaba el primer <b>procesador de 16 bits</b> de la historia de las <b>consolas</b>. Era con diferencia lo más realistas en gráficos y sobre todo sonido que se podía conseguir en las <b>computadoras caseras</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_coleco-mattel.png" title="HVJ" /></div>
No mucho tiempo después sale al mercado <b>Atari 5200</b>, intentando no quedarse rezagada ante <b>Coleco</b> y <b>Mattel</b>, pero la <b>crisis de los videojuegos</b> de principios de los 80 y la llegada de los <b>microordenadores </b>a las casas, hundió las ventas de todos los <b>sistemas</b>, con la única salvedad de <b>Atari 2600</b> que siguió teniendo cierta demanda hasta la década de 1990.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_atari5200-o-t-s.png" title="HVJ" /></div>
Otras <b>videoconsolas </b>aparecieron también en esta generación, tales como: <b>Odyssey 2</b> de <b>Magnavox</b>, <b>TV-Game 6</b> de <b>Nintendo</b>, y la <b>SG-1000</b> de <b>Sega</b>. Estas no fueron muy populares en aquel entonces, el éxito lo tenía <b>Atari</b>. Aunque tiempo después, estas 2 últimas (<b>TV-Game 6</b> y<b> SG-1000</b>) tendrían un gran éxito con la llegada de la <b>tercera </b>y <b>cuarta generación</b>.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-43224953079092496982015-11-01T00:00:00.000-03:002015-11-01T00:00:02.561-03:00Historia de los videojuegos (3/10)<b>Primera generación de consolas (1972-1977)</b><br />
<br />
La primera <b>consola </b>de videojuegos fue la <b>Magnavox Odyssey</b>, de la mano de <b>Ralph Baer</b> basándose en su anterior prototipo <b>Brown Box </b>y su patente de concepto de videojuego. Tenía 2 mandos, un mando en forma de <b>arma de fuego</b> y 16 interruptores en la consola que permitían seleccionar distintos juegos. Fue construida usando una combinación de <b>circuito analógico</b> (para el <b>control </b>del juego y la <b>salida</b>) y <b>digitales</b>. No contenía ninguna <b>unidad central de procesamiento</b> o <b>memoria de acceso aleatorio</b>. La máquina se componía de <b>transistores</b>, <b>resistencias </b>y <b>condensadores</b>. Dado su reducido <b>hardware</b>, carecían de sonido y los jugadores debían memorizar sus puntuaciones. En ocasiones eran necesarios algunos <b>dispositivos adicionales</b> para poder ejecutar determinados videojuegos de la plataforma. Sus juegos (28 títulos diferentes en total) eran de una sencillez extrema: <b>ping-pong</b>, “<b>tenis de mesa</b>”, <b>voleibol</b>, etc.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_odyssey.png" height="200" title="HVJ" width="418" /></div>
Sin embargo, no fue un gran éxito debido a que fue vendida solamente en los almacenes de <b>Magnavox</b>, diciendo además a los clientes que la <b>Odyssey </b>trabajaría solamente en televisores de su marca. Una mentira que contribuyó a la cantidad de unidades vendidas.
Aún así, la <b>Odyssey </b>generó un caso severo de la “<b>locura de Pong</b>”, y compañías por todo el mundo comenzaron a desarrollar sus propias máquinas copiando la idea de <b>Baer</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_telstar.png" height="193" title="HVJ" width="300" /></div>
Por ejemplo, el <b>Colecto Telstar</b>, se empezó a vender a partir de junio de 1976 y se convirtió en un éxito por derecho propio, con alrededor de una docena de modelos. Aunque originalmente esta <b>consola </b>era un clon del <b>Atari Pong</b>. Esta última, surgió luego de que <b>Nolan Bushnell</b> asistiera a una demostración de la <b>Odyssey</b>, y tomando la misma idea con algunas mejoras (<b>rutina de movimientos mejorada</b>, <b>puntuación en pantalla</b>, efectos de sonido, entre otras), consiguiera tener más éxito. Las compañías con productos similares (incluida <b>Atari</b>) tuvieron que pagar una licencia durante algún tiempo.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-29365707732082646432015-10-01T00:00:00.000-03:002015-10-01T00:00:00.619-03:00Historia de los videojuegos (2/10)Durante la década del 1960, un grupo de estudiantes del <b>MIT (Massachusetts Institute of Technology</b>) liderados por <b>Steve Russell</b>, programaron un juego para computadora llamado <b>Spacewar!</b> El mismo se trata de un duelo espacial para 2 jugadores, donde cada uno controla una <b>nave espacial</b> capaz de lanzar <b>misiles</b>. El juego fue muy popular en el <b>MIT</b>, sin embargo, no llegó a comercializarse debido a los costos del <b>hardware</b>. Aun así, el juego fue una de las ideas más copiadas en la historia de los videojuegos, influencia que se vio plasmada a partir de la aparición de las primeras <b>consolas domesticas</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_spacewar.png" title="HVJ" /></div>
Algunos años más tarde, <b>Ralph Baer</b> finaliza el primer prototipo de su <b>Brown Box</b>, un dispositivo que podía conectarse al televisor y que incluía una serie de juegos, entre los que se encontraban uno de <b>ping-pong</b> y uno de disparo con un rifle diseñado especialmente para su dispositivo.<br />
<br />
Entrando en la década de 1970, aparece la primera maquina <b>arcade </b>de la historia: <b>Galaxy Game</b>. <b>Bill Pitts</b>, fascinado por <b>Spacewar!</b> decide cambiarle el nombre al juego y lo adapta para que funcione a base de monedas.
Al año siguiente, tomando la misma idea, <b>Nolan Bushnell</b> junto a <b>Ted Dabney</b> presentaban: <b>Computer Space</b>. Sin embargo, no tuvieron el éxito deseado y a partir de entonces finalizan el contrato que tenían con <b>Nutting Associates</b> para fundar la empresa <b>Atari </b>y realizar su siguiente juego: <b>Pong</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hvj_pong.png" title="HVJ" /></div>
<b>Pong </b>fue el mayor suceso en los <b>arcades </b>hasta la aparición del <b>Space Invaders</b> desarrollado por <b>Taito</b>, dando comienzo a la <b>era dorada</b> de los <b>arcades</b>. A estos le sucedieron otros titulos como: <b>Asteroids </b>y <b>Pac-Man</b>. Así fue como las maquinas <b>arcades </b>comenzaron a tener éxito en centros comerciales, restaurantes y tiendas.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-42711416878579117012015-09-01T00:00:00.000-03:002015-09-09T13:29:54.791-03:00Historia de los videojuegos (1/10)Cuando se trata de historia de inventos es difícil atribuir quien lo hizo primero, dado que en la mayoría de los casos, se le atribuye la primicia a quien fue el más popular. En este caso, muchos afirman que los videojuegos tuvieron su origen a finales de la década de 1940.
Durante ese tiempo, <b>Thomas Goldsmith</b> y <b>Estle Mann</b> patentaron su <b>Tubo de Rayos Catódicos</b>, un aparato basado en un simple<b> circuito eléctrico </b>que permitía al usuario, por medio de unas <b>perillas </b>y <b>botones</b>, manipular el <b>Tubo de Rayos Catódicos</b> simulando <b>disparos de un aeroplano sobre sus objetivos</b>.
También, <b>Alan Turing</b> escribe un programa de <b>ajedrez </b>que simula los movimientos de la <b>computadora</b>, sentando las bases prácticas de los <b>programas de ajedrez modernos</b>.
Posteriormente en 1951, <b>John Bennet</b> presenta un enorme <b>computador </b>capaz de jugar al <b>nim </b>(un juego matemático de estrategia).
<br />
<div style="text-align: center;">
<img class="alignnone" src="http://www.ronaldgames.com/misc/hvj_nimrod.png" title="HVJ" /></div>
Mientras tanto, el técnico de televisión e inventor <b>Ralph Baer</b> comienza a idear algo para manipular la imagen del <b>televisor </b>en forma <b>interactiva</b>.
Al año siguiente, <b>Alexander Douglas</b> presenta <b>OXO</b>, un juego de <b>tres en raya</b> para <b>computadora</b>.
<br />
<div style="text-align: center;">
<img class="alignnone" src="http://www.ronaldgames.com/misc/hvj_oxo.png" title="HVJ" /></div>
En 1958, <b>William Higinbotham</b> valiéndose de un <b>osciloscopio </b>y una <b>computadora análoga</b>, crea el juego <b>Tennis for Two</b>, un juego de <b>tenis </b>con vista lateral.
<br />
<div style="text-align: center;">
<img class="alignnone" src="http://www.ronaldgames.com/misc/hvj_tennis-for-two.png" title="HVJ" /></div>
Hasta entonces los videojuegos no consiguieron establecerse como algo <b>formal</b>, sino que más bien quedó limitado a un <b>hobby </b>de unos pocos o algo que quedaba dentro del <b>ámbito académico</b>. Todo esto debido a los costos de la <b> tecnología </b>y al limitado acceso a las <b>computadoras</b>.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-28213838971456429772015-08-01T00:00:00.000-03:002015-09-09T13:26:12.970-03:00Ninja-kun Majou no BoukenTítulo: <b>Ninja-kun Majou no Bouken / Ninja-Kid</b><br />
<br />
Sistemas:<br />
1984 – Arcade, Famicom, MSX
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ninjakun01.jpg" height="277" title="Ninja-kun" width="200" /></div>
No todos lo saben, pero <b>Ninja Jajamaru-kun</b> fue una de las más proliferadas sagas en los días del <b>Famicom</b>. El pequeño <b>ninja rojo</b> hace su aparición en 1985 en un titulo de <b>Famicom</b>, eventualmente protagonizaría cuatro títulos más. La mayoría de ellos son juegos de <b>plataformas side-scrolling</b> de acción, aunque algunos mezclan algo de <b>RPG </b>también. A lo largo de la serie, fueron mejorando la calidad de los juegos desde los<b> 8-bit</b> hasta los <b>32-bit</b> y consolas portables.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ninjakun02.png" height="192" title="Ninja-kun" width="256" /></div>
La serie comienza con el arcade llamado <b>Ninja-kun</b>, realizado en 1984 por <b>UPL</b>. La compañía <b>Jaleco</b> sería la responsable de portar el título a <b>Famicom</b>, quienes terminarían usando nuevamente al personaje en un titulo propio realizado para consolas, llamado <b>Ninja Jajamaru-kun</b>. <b>UPL </b>continúa con su propia línea de juegos <b>Ninja-kun</b>, mientras que <b>Jaleco </b>terminaría prácticamente adoptando el personaje como mascota de la compañía.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ninjakun03.png" height="192" title="Ninja-kun" width="256" /></div>
Como la mayoría de los juegos arcade de la época, el objetivo en <b>Ninja-kun</b> es simplemente acabar con todos los enemigos de la escena. Valiendose de <b>shurikens </b>y <b>habilidades de salto</b>, el héroe conseguirá su objetivo, eludiendo también los <b>proyectiles </b>del enemigo. Es posible <b>atontar </b>al oponente saltando sobre su cabeza, algo que requiere practica, ya que si no se realiza bien, puede ser uno mismo el que resulte atontado. Básicamente hay 3 escenas que se repiten una y otra vez, agregando más dificultad y nuevos enemigos. Cada cierto tiempo cae una <b>bola flotante</b>. Si obtienes 3 de ellas podrás habilitar la <b>escena de bonus</b>, que consiste en recolectar más <b>bolas flotantes</b> durante un periodo limitado de tiempo.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ninjakun04.png" height="192" title="Ninja-kun" width="256" /></div>
Aunque los <b>sprites </b>son pequeños, son detallados y coloridos. Resulta gracioso ver los ojos de los personajes al ser atontados. Algo que puede resultar negativo, es el hecho de no poder dar un<b> salto en vertical</b> sin desplazarse a los lados.<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ninjakun05.png" height="192" title="Ninja-kun" width="256" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com1tag:blogger.com,1999:blog-3998707395540084188.post-15336974138492169692015-07-01T00:00:00.000-03:002015-09-09T13:31:07.040-03:00Colisiones 2D (2/2)Ya vimos como determinar <b>colisiones </b>entre 2 <b>rectángulos</b>. Ahora veamos como podemos aplicarlo en los videojuegos.
Lo primero que tenemos que entender es que el <b>área </b>o <b>caja de colisión</b> (<b>hitboxes</b> en inglés), si bien está referida a las <b>coordenadas del sprite</b>, no tiene porque tener sus mismas <b>dimensiones</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes00.gif" height="655" title="Kunio" width="500" /></div>
La imagen anterior corresponde a la página 48 del <b>documento de diseño</b> del videojuego <b>Downtown Nekketsu Koushinkyoku Soreyuke Daiundoukai</b> donde nos muestra las <b>hitboxes </b>de <b>Kunio</b>. Si bien no podemos contar con los <b>documentos de diseño</b> de todos los videojuegos, hoy en día existen <b>herramientas </b>que nos permiten visualizar las <b>hitboxes </b>de algunos.<br />
Veamos un ejemplo simple:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes01.png" height="224" title="SMB" width="256" /></div>
En <b>Super Mario Bros</b>, podemos notar que las <b>hitboxes</b>, como ya mencionamos, no tienen el mismo <b>tamaño del sprite</b>, e incluso en algunos casos hasta exceden del mismo. ¿Por qué? Bueno, la razón es simple: para mejorar la <b>jugabilidad</b>. En la imagen notamos que la <b>hitbox </b>de <b>Mario </b>se excede en la parte baja. Esto se debe a que el principal <b>ataque de Mario</b> es <b>saltar encima del enemigo</b>, y si para esto contamos con un <b>margen de error</b>, nos resultará más fácil ejecutar dicha acción.<br />
Veamos otro ejemplo:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/ffight02.png" height="224" title="Final Fight" width="384" /></div>
En <b>Final Fight</b> utilizan 2 <b>hitboxes </b>por personaje: una para el <b>área de vulnerabilidad</b> (color azul) y otra para el <b>área de ataque</b> (color rojo).<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes02.png" height="224" title="Final Fight" width="384" /></div>
Observamos que el<b> área de ataque</b> de algunos personajes está a la altura de las piernas. ¿Por qué? Para que sea más fácil contrarrestarlos con un <b>ataque aéreo</b>. También notamos que los personajes que se levantan luego de ser derribados, no cuentan con<b> área de vulnerabilidad</b>, lo que les permite reincorporarse sin problemas.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes03.png" height="224" title="Final Fight" width="384" /></div>
Por otro lado, aquellos enemigos que atacan <b>barriéndose </b>cuentan con un <b>área de vulnerabilidad </b>que está por encima del cuerpo. ¿Por qué? También, para poder contrarrestar mejor su ataque con una <b>acción aérea</b>. Notamos además, que los <b>objetos que contienen ítems</b>, como los barriles, cuentan con su propia<b> área de vulnerabilidad</b>.<br />
<br />
Un ejemplo más complejo es el de <b>Street Fighter 2</b>. Es un videojuego bastante exitoso, y parte de su éxito se debe a la <b>variedad </b>y <b>precisión </b>con la que conectamos los <b>golpes</b>. Analicemos un ejemplo típico: <b>Blanka </b>caminando por debajo de los <b>Tatsumakis </b>de <b>Ryu </b>y <b>Ken</b>. ¿Cómo es posible?
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes04.png" height="224" title="SF2" width="384" /></div>
5 hitboxes: <b>presión </b>(color verde), <b>vulnerabilidad en la cabeza</b> (color azul), <b>vulnerabilidad en el cuerpo</b> (color azul), <b>vulnerabilidad en piernas</b> (color azul) y <b>área de ataque</b> (color rojo). Habría una 6ta para los <b>agarres</b>, pero no la vamos a tomar en cuenta en esta ocasión.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes05.png" height="224" title="SF2" width="384" /></div>
Las<b> áreas de vulnerabilidad </b>y <b>ataque </b>están claras, pero ¿el <b>área de presión</b>? Las <b>hitboxes de presión</b> son aquellas que impiden que un personaje ocupe la <b>posición </b>del otro, dando la sensación de que ocupan un <b>espacio físico</b> en el juego. En la imagen notamos como las <b>hitboxes de vulnerabilidad</b> de <b>Blanka </b>están por debajo del <b>ataque </b>de <b>Ken</b>.
En la serie <b>The King of Fighters</b> utilizan un método similar, pero en vez de 3 <b>hitboxes de vulnerabilidad</b> utilizan solo 2. Además, utilizan otro tipo de <b>hitboxes</b>: las de <b>neutralización de proyectiles</b> (color amarillo). En la siguiente imagen podemos ver el alcance del <b>Kohoken </b>de <b>Takuma </b>en <b>The King of Fighters 2002</b>, el cual no tiene un <b>proyectil </b>visible, así como sus demás <b>hitboxes</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes07.png" height="224" title="KOF" width="304" /></div>
Ahora bien, ¿qué sucede si nuestro <b>sprite </b>es demasiado grande e irregular? Lo mejor es utilizar cuantas <b>hitboxes </b>sean necesarias, dividiendo el <b>sprite </b>por secciones y así lograr una mayor <b>precisión</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/hitboxes06.png" height="224" title="The Punisher" width="384" /></div>
Notamos como en el juego <b>The Punisher</b>, el enemigo de la imagen cuenta con varias <b>hitboxes</b>, logrando una buena <b>precisión </b>en las <b>conexiones de golpes</b>.
Analizar estos ejemplos nos ayudan a determinar la forma en que podemos realizar las <b>colisiones </b>de nuestros proyectos.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-17014768843445794932015-06-01T00:00:00.000-03:002015-09-09T12:06:20.483-03:00Colisiones 2D (1/2)Una de las claves para que un videojuego sea exitoso es la buena <b>interacción de los objetos </b>que lo componen. Muchos que han fracasado en este aspecto han llegado a estar catalogados en <b>rankings </b>de “<b>los peores videojuegos</b>”.
¿Cómo se logra una buena <b>interacción de los objetos</b>?
Mucho depende del <b>tipo </b>de videojuego que estemos diseñando. En este caso voy a referirme a las <b>colisiones de objetos en 2 dimensiones</b> (<b>colisiones 2D</b>). Desde luego, este principio que voy a analizar puede ser ampliado y aplicado a <b>proyectos más complejos</b>.
La forma más común de definir <b>colisiones 2D</b> es por medio de<b> áreas rectangulares</b>. Por ejemplo: supongamos que tenemos 2 <b>áreas rectangulares</b>. Por <b>propiedad del rectángulo</b> sabemos que cada uno consta de 2 <b>lados paralelos</b>, por lo cual, para dibujar cada uno, solo necesitamos 4 <b>valores </b>(2 en el eje <b>x</b>, 2 en el eje <b>y</b>). A los valores del primer rectángulo le llamaremos: <b>h1</b>, <b>h2</b>, <b>b1</b> y <b>b2</b>, y los del segundo rectángulo: <b>x1</b>, <b>x2</b>, <b>y1</b> e <b>y2</b>.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/rectangulos.gif" height="200" width="340" /></div>
Con los <b>datos </b>que tenemos, ¿cómo podemos saber si los rectángulos están <b>colisionando</b>?
Tan solo debemos comparar los <b>valores </b>de cada <b>eje </b>en ambos <b>rectángulos</b>. Como vemos en la imagen, el <b>primer rectángulo</b> comienza en <b>h1</b> en el eje <b>x</b>, y finaliza en <b>h2</b>. Si el <b>primer rectángulo</b> finaliza antes de que comience el <b>segundo rectángulo</b>, no está <b>colisionando </b>y viceversa; si el <b>segundo rectángulo</b> finaliza antes de que comience el <b>primero</b>, tampoco <b>colisiona</b>. Esto sucede de igual manera en el eje <b>y</b>.
De forma que, podríamos resumir, que ambos<b> rectángulos colisionan</b> cuando <b>ninguna</b> de las siguientes <b>condiciones </b>se cumple:
<br />
<blockquote>
h2 < x1
</blockquote>
<blockquote>
x2 < h1 </blockquote>
<blockquote>
b2 < y1 </blockquote>
<blockquote>
y2 < b1</blockquote>
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/no-colision.gif" height="240" title="No colisiona" width="340" /></div>
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/si-colision.gif" height="240" title="Sí colisiona" width="340" /></div>
Ahora bien, aunque sepamos como determinar la <b>colisión </b>de 2 <b>rectángulos</b>, en videojuegos, es importante saber también <b>cómo </b>y <b>cuándo </b>aplicar esta técnica.
En la siguiente parte, analizaremos algunos videojuegos que hacen buen uso de este <b>método</b>.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-59551180176001468562015-05-01T00:00:00.000-03:002015-09-09T11:58:05.121-03:00Inteligencia Artificial (2/2)<div style="text-align: center;">
<img alt="" src="http://www.ronaldgames.com/misc/rachers05.gif" height="200" title="Rachers" width="320" /></div>
Habíamos planteado el siguiente problema: ¿cómo puede la <b>computadora </b>guiar al <b>corredor </b>a través de la pista?<br />
<br />
Si el lector es <b>programador </b>comprenderá que hay <b>infinidad de formas</b> de hacerlo. Ante todo hay que tener un <b>equilibrio</b>. En proyectos anteriores utilizaba <b>demasiadas variables</b>, mucha información que se le daba a la <b>computadora </b>para que la <b>procesará </b>y <b>devolviera </b>una respuesta o solución lo más acertada posible. Esto consumía <b>muchos recursos</b>, ahora un <b>cambio radical</b>, la poca utilización de <b>variables</b>, un <b>mínimo de información</b> para ser <b>procesado </b>por la <b>computadora</b>.<br />
<br />
¿Cuáles son las ventajas y desventajas?<br />
<br />
Si utilizamos <b>demasiada información</b>, la decisión tomada por la <b>computadora </b>será más cercana a la <b>óptima</b>, pero consumirá más <b>recursos</b>, por lo que el resultado de la decisión <b>tomará más tiempo</b>. Además, darle <b>demasiada información</b> puede resultar inútil en situaciones de <b>simple resolución</b>.<br />
<br />
Por otro lado, el empleo de <b>poca información</b> da como resultado decisiones <b>menos precisas</b>, con un mayor porcentaje de <b>errores</b>, pero menor consumo de <b>recursos </b>y por lo tanto <b>mayor velocidad de respuesta</b>.<br />
<br />
En este caso en particular, no hubo <b>equilibrio </b>en la utilización de la <b>información</b>, ya que la <b>computadora </b>no contaba con la <b>información suficiente</b> para que los <b>corredores </b>siguieran el rumbo establecido.<br />
<br />
Si lo aplicáramos a la <b>vida real</b>, podríamos imaginar que el <b>corredor </b>tuviera limitada su <b>visión </b>a unos cuantos metros de su <b>automóvil </b>(como si de niebla se tratara) y ninguna <b>señal </b>que le indicara las <b>curvas de la pista</b>.<br />
<br />
Hay muchas maneras de solucionar este problema. Una de ellas sería establecer <b>variables </b>que contuvieran <b>datos de las áreas</b> en las que debe corregir la <b>dirección del corredor</b>. La <b>computadora</b> podría verificar dichas <b>áreas </b>y establecer el giro del <b>corredor </b>para que pueda mantenerse dentro de la <b>pista</b>. Esto se pude efectuar con algunas <b>variables numéricas de posición</b> que cambiarían según la <b>sección de la pista</b> donde se encuentren.<br />
<br />
Afortunadamente, el diseño de las <b>pistas </b>de este juego se había realizado con pequeñas <b>secciones </b>de 16x16 <b>pixeles</b>, y cada <b>pantalla</b> cuenta con 18x11 <b>secciones o tiles</b>. De esa forma, podríamos almacenar la información de la <b>pantalla</b> en una <b>variable de tipo matriz</b> de 18x11 <b>elementos</b>. En cada uno de esos <b>elementos</b>, estableceríamos la <b>dirección </b>que debe tomar el <b>corredor</b>. Para entenderlo mejor, veamos la siguiente imagen:<br />
<div style="text-align: center;">
<img alt="" src="http://www.ronaldgames.com/misc/rachers06.gif" height="200" title="Rachers" width="320" /></div>
La <b>computadora </b>solo tendría que <b>verificar </b>dentro de qué <b>sección de la pista</b> se encuentra y compararla con la información de la <b>variable matricial</b>. De esa forma podría efectuar el giro hasta la <b>posición </b>indicada por la <b>variable</b>.<br />
<br />
¿Cuál es el resultado?<br />
En el siguiente video tenemos la respuesta:<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="250" src="https://www.youtube.com/embed/JvEHw-j6ZOo" width="400"></iframe></div>
Este <b>comportamiento </b>todavía puede ser mejorado, pero el ejemplo es a modo de ilustración. Como hemos visto, si ajustamos la <b>cantidad de información</b> equilibradamente al problema planteado, obtendremos mejores resultados.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-40009410302238631582015-04-01T00:00:00.000-03:002015-09-09T11:42:53.709-03:00Inteligencia Artificial (1/2)Se denomina <b>inteligencia artificial</b> (<b>IA</b>) a la rama de las <b>Ciencias de la Computación</b> dedicada al desarrollo de <b>agentes racionales no vivos</b>.
El termino <b>agentes </b>se refiere a cualquier cosa capaz de percibir su entorno (<b>recibir entradas</b>), <b>procesar </b>tales percepciones y <b>actuar </b>en consecuencia (<b>proporcionar salidas</b>). Cuando nos referimos a <b>racionalidad </b>se entiende como la característica que posee una <b>elección </b>de ser <b>correcta</b>, que la decisión tomada sea la más cercana a la <b>óptima</b>.
Una de las claves para que un videojuego sea entretenido es la <b>IA </b>de los<b> elementos controlados por la computadora</b>. Para programar una buena <b>IA </b>hay varios recursos (ejecución de una <b>respuesta</b> predeterminada por cada <b>entrada</b>, búsqueda del <b>estado requerido</b> en el conjunto de los <b>estados producidos</b> por las acciones posibles, <b>algoritmos genéticos</b>, etc.) y habría mucha información para analizar al respecto. Por eso, en esta ocasión tan solo vamos a analizar un ejemplo sencillo. Hace varios años, estaba desarrollando un<b> juego de carreras</b> en <b>Basic</b>. El juego fue cancelado ante la incapacidad de programar una buena <b>IA</b>.
Aquí una imagen del juego:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/rachers05.gif" height="200" title="Rachers" width="320" /></div>
Cuando un <b>humano </b>observa la imagen podría deducir que se trata de una <b>carrera </b>de <b>pequeños automóviles</b>, que por la <b>disposición </b>de los vehículos, los <b>corredores </b>deberán transitar por la <b>pista</b> hacía la derecha de la imagen. También podría percibir, que antes de llegar al <b>límite</b>, deberán realizar un giro de dirección para mantenerse dentro de la <b>pista</b>. El ser humano <b>entiende</b>, <b>razona</b>, <b>deduce </b>y puede tomar <b>decisiones </b>que le permiten seguir las <b>reglas </b>del videojuego.<br />
<br />
Cuando la <b>computadora </b>“<b>observa</b>” esa imagen, ¿qué percibe?
Tan solo son unos cuantos <b>bytes</b>, en este caso 64.000 <b>bytes </b>que varían su valor entre 0 y 3, nada más.
(Resolución <b>CGA</b>: 320x200 a 4 colores). ¿No reconoce que se tratan de <b>pequeños automóviles</b> en una <b>pista</b>? No, a menos que lo especifiquemos en una <b>variable</b>.
¿No reconoce que debe transitar dentro de la <b>pista</b>? No, a menos que lo determinemos por medio de <b>condiciones</b>.<br />
<br />
En el momento en que se estaba desarrollando el juego, debido a la poca experiencia en <b>programación </b>y debido a que en proyectos anteriores se habían utilizado <b>demasiadas variables</b>, se optó por usar la <b>menor cantidad variables posibles</b>. Hacer que la <b> IA </b>de los <b>corredores </b>se adaptara a <b>todo tipo de pista</b>. Los únicos <b>datos </b>que la <b>computadora </b>tendría serían algunos<b> puntos de verificación</b> y la <b>coordenada</b> de la <b>salida de la pista</b>.<br />
<br />
¿Cómo sabría la <b>computadora </b>hacía donde girar para guiar al <b>corredor </b>a la <b>salida</b>?
Para hacerlo se utilizaron los <b>datos de colores</b> del <b>escenario</b>. El <b>área transitable de la pista</b> siempre sería de <b>color azul</b>. Por lo tanto, la <b>computadora </b>"<b>entendería</b>" que mientras el <b>corredor </b>se encontrara sobre una superficie de <b>color azul</b>, iba en la <b>posición </b>correcta. Luego, por medio de otros <b>puntos de verificación</b> en torno al <b>corredor</b>, determinaría hacia donde girar para seguir dentro de la <b>pista</b>.
Esto parece razonable, y el uso de <b>variables </b>es mínimo. Pero, ¿qué resultado tendría?
Lo vemos en el siguiente video:<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="250" src="https://www.youtube.com/embed/jo1RwyqRsAs" width="400"></iframe></div>
<div style="text-align: left;">
<br />
A grandes razgos, la <b>computadora </b>determina la mayoría de las veces hacia donde girar para dirigir al <b>corredor </b>a la <b>salida</b>. Sin embargo, ocurren varias <b>imprecisiones </b>en ciertas partes complejas de la <b>pista</b>. Por lo que, en ocasiones resulta <b>prácticamente imposible</b> para la <b>computadora </b>determinar el giro correcto. Esto intentó ser <b>arreglado provisoriamente</b> por medio de algunas <b>acciones al azar</b>. Pero, no fue suficiente, el resultado no es el <b>esperado</b>.
Entonces, ¿cómo solucionar este problema?
Recientemente, se decidió hacer algunas modificaciones en el <b>código </b>que controla los <b>corredores</b>.
¿Cuál fue el resultado? Lo veremos en la siguiente entrada.</div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-4108713503634463372015-03-01T00:00:00.000-02:002015-09-09T11:07:56.701-03:00¿Cómo se hace un videojuego? (7/7)Ahora que nuestro personaje se mueve por el <b>mapa </b>es necesario no perderlo de vista. Para esto tenemos que establecer lo que se llama <b>movimiento de scroll</b>.
Inicialmente es algo sencillo establecer un <b>movimiento de scroll</b> o <b>seguimiento de cámara</b>. Lo difícil puede ser <b>generar el fondo</b> a partir de los <b>tiles </b>dentro del <b>área visible del screen</b>.
La <b>posición del scroll </b>la guardaremos en un par de <b>coordenadas x</b> e <b>y</b>, lo que determinará que cada <b>objeto </b>(incluido el <b>mapa </b>entero) estará sujeto a dichas <b>coordenadas</b>. Para entenderlo, veamos el siguiente caso:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto12.png" height="300" title="Scroll" width="380" /></div>
Como vemos en la imagen, el <b>mapa </b>(y <b>personaje</b>) tuvo que ser desplazado 43 <b>pixeles </b>a la izquierda y 32 <b>pixeles </b>hacia arriba (del área visible) para poder seguir al personaje. Esa diferencia de pixeles es la que se registra en las <b>variables del scroll</b>.
El <b>desplazamiento del scroll</b> se puede hacer de varias maneras según el <b>tipo de juego</b>, por ejemplo, se puede hacer que suavemente vayan cambiando los <b>valores </b>hasta acercarse al personaje.
En este videojuego, se impone que el <b>scroll </b>esté desplazado 159 <b>pixeles </b>a la izquierda de las <b>coordenadas del personaje</b> y 159 <b>pixeles </b>por encima. Cada vez que colocamos el <b>personaje</b>, el <b>mapa </b>o cualquier <b>objeto del entorno</b>, debemos sumarle las <b>variables de diferencia de scroll</b>. Los únicos <b>elementos no sujetos al scroll</b> son aquellos que deben permanecer fijos en cierta sección del <b>screen o ventana</b>, como por ejemplo los <b>marcadores </b>de: <b>número de vidas</b>, <b>puntuación</b>, <b>tiempo</b>, etc.
Finalmente, al momento de generar el <b>mapa </b>a partir de los <b>tiles </b>se puede hacer de dos maneras. Una forma es generar todo el <b>mapa completo</b>, lo cual gasta recursos innecesarios, ya que no todo el <b>mapa </b>es visible dentro del <b>screen</b>. Otra manera es determinar cuáles son los <b>tiles </b>que caben dentro del <b>área visible del screen</b>, y solo presentar esos.
En el ejemplo de la imagen anterior notamos que, los tiles visibles surgen a partir de la 3er fila y 3er columna. Sabemos que el <b>tamaño visible del screen</b> es de 20x15 <b>tiles</b>. Así que, generamos los <b>tiles </b>comprendidos entre la 3er fila y 3er columna en adelante hasta completar los 20x15 <b>tiles</b>. Pero, debemos tomar en cuenta la diferencia del <b>tile </b>con el <b>screen </b>(marcada en la imagen anterior).<br />
<br />
<div style="text-align: center;">
<b>Conclusión</b></div>
Hasta aquí se han presentado las <b>bases </b>para comenzar con el diseño de un <b>videojuego de plataformas</b>. Posiblemente más adelante se aborden otros <b>temas puntuales</b> y más profundos del <b>desarrollo de videojuegos</b>, pero se considera que con la información presentada, el lector será capaz de darle los <b>elementos faltantes</b> a este ejemplo (<b>enemigos</b>, <b>ítems</b>, <b>movimientos</b>, etc.).Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-68504933937312941322015-02-01T00:00:00.000-02:002015-09-09T10:59:15.425-03:00¿Cómo se hace un videojuego? (6/7)Como ya mencionamos anteriormente, el personaje tiene <b>variables de posición</b> <b>x</b> e <b>y</b>.
Pero, ¿en qué parte del <b>sprite </b>se aplica la <b>coordenada</b>?
Se aplica en un punto que normalmente es llamado <b>hot spot o pivot</b>. En este caso sería el punto (rojo) que nos muestra la siguiente imagen:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto09.png" height="380" title="Hot Spot" width="252" /></div>
Es un punto que (para este juego) determina que el <b>sprite </b>se imprime 12 <b>pixeles </b>a la izquierda y 31 arriba de la <b>coordenada </b>dada. Es decir que si el sprite se encuentra en la <b>coordenada </b>(0,0) se vería en la siguiente posición:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto10.png" height="270" title="(0, 0)" width="331" /></div>
Ahora bien, ¿cómo sabemos dónde puede pararse el personaje o hasta donde puede desplazarse?
Por medio de las <b>colisiones</b>. Se verifican <b>puntos arbitrarios</b> del personaje y se comparan con los <b>datos del mapa</b>. Recordemos que nuestro <b>mapa </b>se compone de <b>tiles</b>, y que los <b>tiles</b> distintos de cero (<b>tile color cielo</b>), son <b>tiles solidos </b>que no pueden ser atravesados. Aunque esto se ha establecido para este ejemplo, puede ser ampliado y establecerse otros <b>tiles </b>que puedan ser atravesados.
Los <b>puntos </b>que se <b>verifican </b>en este caso son los siguientes:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto11.png" height="380" title="Checkpoints" width="252" /></div>
<b>AS</b>: Apoyo superior.
<b> </b><br />
<b>LDA</b>: Apoyo Lateral-Derecho-Alto<br />
<b>LIA</b>: Apoyo Lateral-Izquierdo-Alto
<b> </b><br />
<b>LDB</b>: Apoyo Lateral-Derecho-Bajo
<b> </b><br />
<b>LIB</b>: Apoyo Lateral-Izquierdo-Bajo<br />
<b>AD</b>: Apoyo Derecho
<b> </b><br />
<b>AI</b>: Apoyo Izquierdo<br />
<b>H</b>: Hot Spot, o sea <b>punto de referencia del sprite</b> (x, y).<br />
<br />
El punto <b>AS</b> es verificado cuando va hacia arriba, si el punto se encuentra dentro de un <b>tile solido</b>, se limita el <b>movimiento </b>del personaje.
Los puntos <b>LIA</b> y <b>LDA</b> son verificados cuando va a la izquierda o derecha, e impiden que el personaje continúe si se encuentra con un <b>tile solido</b> "a la altura de la cabeza" (es decir, en el área superior del personaje).
Los puntos <b>LIB</b> y <b>LDB</b> son verificados cuando va a la izquierda o derecha, e impiden que el personaje continúe si se encuentra con un <b>tile solido</b> "a la altura de las piernas" (es decir, en el área inferior del personaje).
Los puntos <b>AI</b> y <b>AD</b> son verificados para determinar cuándo el personaje debe <b>caer</b>. Si <b>ambos puntos</b> se encuentran en áreas vacías, entonces el personaje deberá <b>caer</b>.
En cada caso lo que se hace es convertir la <b>coordenada del punto a verificar</b>, en <b>coordenada de tile</b>. Luego, se consulta (en la <b>variable de mapa</b>) el <b>tipo de tile</b> que existe en esa <b>coordenada convertida</b>.
Para este ejemplo se utilizaron estos<b> puntos de verificación</b>, pero dichos puntos pueden variar según el <b>tipo de juego</b>, <b>dimensiones </b>y <b>características</b> de cada personaje.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-86982041412378586092015-01-01T01:00:00.000-02:002015-09-09T10:46:54.576-03:00¿Cómo se hace un videojuego? (5/7)Ahora que ya hemos definido la <b>animación </b>de las <b>acciones del personaje</b>, ya estamos listos para programar sus <b>movimientos</b>.
Anteriormente habíamos definido las <b>coordenadas </b>del personaje en la pantalla por medio de un par de variables <b>x</b> e <b>y</b>. Entonces, para darle <b>movimiento </b>al personaje lo haremos modificando los valores de dichas variables.
En la <b>física </b>los movimientos de los cuerpos se pueden descomponer de la siguiente manera:
<br />
<blockquote>
Posición = Posición + Velocidad </blockquote>
<blockquote>
Velocidad = Velocidad + Aceleración</blockquote>
Así que, utilizaremos variables de <b>velocidad </b>y <b>aceleración </b>para cada <b>eje</b>.<br />
<br />
<i>Nota: en este juego omitiremos la aceleración en el eje <b>x</b>, ya que el movimiento de desplazamiento del personaje en dicho eje, es lineal.</i><br />
<br />
A la variable de <b>aceleración </b>en el<b> eje y</b> le asignaremos el nombre "<b>gravedad</b>", ya que es la que provoca la <b>caída libre</b> del personaje.
Para entender cómo funcionan las <b>variables </b>en el transcurso del juego, veamos el siguiente ejemplo:<br />
<br />
Supongamos que el personaje se encuentra en la <b>coordenada </b>(300, 200).
La <b>variable de velocidad</b> en el <b>eje y</b> (llamada <b>vy</b>) del personaje, al momento de efectuar un <b>salto</b>, toma el valor -7 y la<b> variable de aceleración</b> (a la que llamamos <b>gravedad</b>) es 0.5.
Así que, cuando transcurren 0.028 segundos, la <b>posición </b>en el <b>eje y</b> se suma a la <b>variable de velocidad</b>, es decir que se le restan 7 <b>pixeles </b>(<b>posición</b> = 200 + (-7)) y a la <b>velocidad </b>se le suma la <b>aceleración </b>(<b>gravedad</b>), es decir se le suman 0.5 <b>pixeles</b> (<b>velocidad </b>= -7 + 0.5). El resultado es que la <b>posición </b>cambia a 193 y la <b>velocidad </b>a -6.5. Esto sucede sucesivamente tal como lo muestra la siguiente imagen:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto07.png" height="109" title="Salto" width="380" /></div>
Los <b>valores </b>que presenta la imagen son <b>enteros</b>, ya que los <b>pixeles </b>no se pueden dividirse en <b>números racionales</b>. Por eso, los<b> valores reales</b> que toman las <b>variables </b>son los de la siguiente <b>tabla</b>:<br />
<br />
<table align="center" border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="bottom"><b>Segundos</b></td>
<td valign="bottom"><b>Posición Y</b></td>
<td valign="bottom"><b>Velocidad Y</b></td>
</tr>
<tr>
<td valign="bottom" width="67">0.028</td>
<td valign="bottom" width="69">200</td>
<td valign="bottom" width="79">-7</td>
</tr>
<tr>
<td valign="bottom" width="67">0.056</td>
<td valign="bottom" width="69">193</td>
<td valign="bottom" width="79">-6,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.084</td>
<td valign="bottom" width="69">186,5</td>
<td valign="bottom" width="79">-6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.112</td>
<td valign="bottom" width="69">180,5</td>
<td valign="bottom" width="79">-5,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.140</td>
<td valign="bottom" width="69">175</td>
<td valign="bottom" width="79">-5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.168</td>
<td valign="bottom" width="69">170</td>
<td valign="bottom" width="79">-4,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.196</td>
<td valign="bottom" width="69">165,5</td>
<td valign="bottom" width="79">-4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.224</td>
<td valign="bottom" width="69">161,5</td>
<td valign="bottom" width="79">-3,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.252</td>
<td valign="bottom" width="69">158</td>
<td valign="bottom" width="79">-3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.280</td>
<td valign="bottom" width="69">155</td>
<td valign="bottom" width="79">-2,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.308</td>
<td valign="bottom" width="69">152,5</td>
<td valign="bottom" width="79">-2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.336</td>
<td valign="bottom" width="69">150,5</td>
<td valign="bottom" width="79">-1,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.364</td>
<td valign="bottom" width="69">149</td>
<td valign="bottom" width="79">-1</td>
</tr>
<tr>
<td valign="bottom" width="67">0.392</td>
<td valign="bottom" width="69">148</td>
<td valign="bottom" width="79">-0,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.420</td>
<td valign="bottom" width="69">147,5</td>
<td valign="bottom" width="79">0</td>
</tr>
<tr>
<td valign="bottom" width="67">0.448</td>
<td valign="bottom" width="69">147,5</td>
<td valign="bottom" width="79">0,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.476</td>
<td valign="bottom" width="69">148</td>
<td valign="bottom" width="79">1</td>
</tr>
<tr>
<td valign="bottom" width="67">0.504</td>
<td valign="bottom" width="69">149</td>
<td valign="bottom" width="79">1,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.532</td>
<td valign="bottom" width="69">150,5</td>
<td valign="bottom" width="79">2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.560</td>
<td valign="bottom" width="69">152,5</td>
<td valign="bottom" width="79">2,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.588</td>
<td valign="bottom" width="69">155</td>
<td valign="bottom" width="79">3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.616</td>
<td valign="bottom" width="69">158</td>
<td valign="bottom" width="79">3,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.644</td>
<td valign="bottom" width="69">161,5</td>
<td valign="bottom" width="79">4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.672</td>
<td valign="bottom" width="69">165,5</td>
<td valign="bottom" width="79">4,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.700</td>
<td valign="bottom" width="69">170</td>
<td valign="bottom" width="79">5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.728</td>
<td valign="bottom" width="69">175</td>
<td valign="bottom" width="79">5,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.756</td>
<td valign="bottom" width="69">180,5</td>
<td valign="bottom" width="79">6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.784</td>
<td valign="bottom" width="69">186,5</td>
<td valign="bottom" width="79">6,5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.812</td>
<td valign="bottom" width="69">193</td>
<td valign="bottom" width="79">7</td>
</tr>
<tr>
<td valign="bottom" width="67">0.840</td>
<td valign="bottom" width="69">200</td>
<td valign="bottom" width="79">7,5</td>
</tr>
</tbody>
</table>
<br />
Si quisiéramos ver la <b>trayectoria del personaje</b>, podríamos <b>graficar los valores de la tabla</b> de la siguiente manera:
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto08.png" height="289" title="Gráfica" width="380" /></div>
Ahora, nos resta determinar cuándo debe detenerse el desplazamiento. Para eso, debemos detectar la <b>colisión </b>del personaje con los <b>elementos del mapa</b>.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-63845360361060582652014-12-01T00:00:00.000-02:002015-09-09T10:38:28.117-03:00¿Cómo se hace un videojuego? (4/7)Ya hemos diseñado el <b>fondo </b>para nuestro juego, ahora estamos listos para diseñar el <b>personaje principal</b>.
Lo primero será definir su tamaño en <b>pixeles</b>. Para esto utilizaremos como base el tamaño de los <b>tiles</b>, en este caso será de aproximadamente 2 <b>tiles </b>de alto.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto04.png" height="64" title="Personaje" width="50" /></div>
Algo a tener en cuenta a partir de ahora es lo que se conoce como <b>frames </b>o <b>cuadros de animación</b>. Nuestro personaje es <b>animado </b>y la <b>animación </b>se logra colocando un <b>grafico </b>a continuación de otro. Para esto contaremos con una <b>hoja de sprites</b> (<b>sprite-sheet</b>) donde podremos ver cada uno de los cuadros de animación agrupados a modo de tabla.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto05.png" height="64" title="Hoja de sprites" width="300" /></div>
A continuación definiremos lo que será nuestra <b>línea de tiempo</b>, es decir, qué <b>sprite </b>debe dibujarse en determinado instante de tiempo. Puede resultar confusa la numeración que daremos a cada elemento mencionado; por un lado tendremos el <b>número de sprite</b> de la <b>hoja de sprites</b> y por otro lado el <b>número frame</b> de la línea de tiempo.<br />
Para entenderlo veamos la siguiente ilustración: <br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto06.png" height="96" title="Línea de tiempo" width="380" /></div>
En este caso, nuestro juego transcurre a 35.7 <b>cuadros por segundo</b>. Como observamos en la <b>figura</b>, la cantidad de <b>sprites </b>no es suficiente para que en cada <b>fracción de segundo</b> haya un <b>sprite </b>diferente, entonces se repite muchas veces el mismo <b>sprite </b>durante cierto <b>intervalo de tiempo</b>. Por lo que podemos pensar, que los <b>datos de la animación</b> se manejaran como muestra la siguiente <b>tabla</b>:<br />
<br />
<div style="text-align: center;">
<i>(Ejemplo para la animación de caminar)</i></div>
<br />
<table align="center" border="1" cellpadding="0" cellspacing="0" style="width: 157px;">
<tbody>
<tr>
<td valign="bottom" width="67"><b>Segundos</b></td>
<td valign="bottom" width="47"><b>Frame</b></td>
<td valign="bottom" width="44"><b>Sprite</b></td>
</tr>
<tr>
<td valign="bottom" width="67">0.028</td>
<td valign="bottom" width="47">25</td>
<td valign="bottom" width="44">2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.056</td>
<td valign="bottom" width="47">26</td>
<td valign="bottom" width="44">2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.084</td>
<td valign="bottom" width="47">27</td>
<td valign="bottom" width="44">2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.112</td>
<td valign="bottom" width="47">28</td>
<td valign="bottom" width="44">2</td>
</tr>
<tr>
<td valign="bottom" width="67">0.140</td>
<td valign="bottom" width="47">29</td>
<td valign="bottom" width="44">3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.168</td>
<td valign="bottom" width="47">30</td>
<td valign="bottom" width="44">3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.196</td>
<td valign="bottom" width="47">31</td>
<td valign="bottom" width="44">3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.224</td>
<td valign="bottom" width="47">32</td>
<td valign="bottom" width="44">3</td>
</tr>
<tr>
<td valign="bottom" width="67">0.252</td>
<td valign="bottom" width="47">33</td>
<td valign="bottom" width="44">4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.280</td>
<td valign="bottom" width="47">34</td>
<td valign="bottom" width="44">4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.308</td>
<td valign="bottom" width="47">35</td>
<td valign="bottom" width="44">4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.336</td>
<td valign="bottom" width="47">36</td>
<td valign="bottom" width="44">4</td>
</tr>
<tr>
<td valign="bottom" width="67">0.364</td>
<td valign="bottom" width="47">37</td>
<td valign="bottom" width="44">5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.392</td>
<td valign="bottom" width="47">38</td>
<td valign="bottom" width="44">5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.420</td>
<td valign="bottom" width="47">39</td>
<td valign="bottom" width="44">5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.448</td>
<td valign="bottom" width="47">40</td>
<td valign="bottom" width="44">5</td>
</tr>
<tr>
<td valign="bottom" width="67">0.476</td>
<td valign="bottom" width="47">41</td>
<td valign="bottom" width="44">6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.504</td>
<td valign="bottom" width="47">42</td>
<td valign="bottom" width="44">6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.532</td>
<td valign="bottom" width="47">43</td>
<td valign="bottom" width="44">6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.560</td>
<td valign="bottom" width="47">44</td>
<td valign="bottom" width="44">6</td>
</tr>
<tr>
<td valign="bottom" width="67">0.588</td>
<td valign="bottom" width="47">45</td>
<td valign="bottom" width="44">7</td>
</tr>
<tr>
<td valign="bottom" width="67">0.616</td>
<td valign="bottom" width="47">46</td>
<td valign="bottom" width="44">7</td>
</tr>
<tr>
<td valign="bottom" width="67">0.644</td>
<td valign="bottom" width="47">47</td>
<td valign="bottom" width="44">7</td>
</tr>
<tr>
<td valign="bottom" width="67">0.672</td>
<td valign="bottom" width="47">48</td>
<td valign="bottom" width="44">7</td>
</tr>
</tbody>
</table>
<br />
La información de esta <b>tabla </b>quedaría guardada en una <b>variable de tipo matriz</b>, que representa nuestra <b>línea de tiempo</b>. Le llamaremos <b>frames</b>. Por ejemplo: si quisiéramos saber el número de <b>sprite </b>de la <b>frame </b>31, consultaremos el valor <b>frames[</b>31<b>]</b>, que nos devolverá el número de <b>sprite </b>3.Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0tag:blogger.com,1999:blog-3998707395540084188.post-43614783886009953042014-11-01T00:00:00.000-02:002015-09-09T10:15:25.170-03:00¿Cómo se hace un videojuego? (3/7)Una vez que tenemos nuestros <b>tiles</b>, procedemos a numerarlos.
<br />
<table align="center" border="0" cellpadding="0" cellspacing="0"><colgroup><col></col>
</colgroup><tbody>
<tr height="20">
<td align="center" width="33"><b>0</b></td>
<td align="center" width="33"><b>1</b></td>
<td align="center" width="33"><b>2</b></td>
<td align="center" width="33"><b>3</b></td>
<td align="center" width="33"><b>4</b></td>
<td align="center" width="33"><b>5</b></td>
<td align="center" width="33"><b>6</b></td>
<td align="center" width="33"><b>7</b></td>
<td align="center" width="33"><b>8</b></td>
<td align="center" width="33"><b>9</b></td>
</tr>
</tbody>
</table>
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto02.png" height="32" title="Tiles" width="332" /></div>
¿Para qué nos sirve tener numerados nuestros <b>tiles</b>?
De esa manera podremos guardar de forma sencilla la <b>información </b>de cada elemento o <b>tipo de tile</b> que contiene nuestro <b>mapa</b>. Para ello utilizaremos una <b>variable del tipo matriz</b>, donde guardaremos la información del <b>mapa</b>. Comenzaremos por declarar una <b>variable </b>de 64x64 <b>elementos</b>.
Al igual que los <b>pixeles</b>, los tiles contarán con un par de coordenadas <b>x</b> e <b>y</b>, que estarán <b>referenciados </b>a la <b>variable del mapa</b>. De manera que, por ejemplo, si queremos saber qué <b>tipo de tile</b> hay en la esquina superior izquierda del <b>mapa</b>, consultaremos la <b>posición </b>(0, 0) de la <b>variable del mapa</b>. Por otro lado, si quisiéramos saber el <b>tipo de tile</b> que se encuentra en la esquina inferior derecha, consultaremos la <b>posición </b>(63, 63) de la<b> variable del mapa</b>.
Ahora bien, ¿qué dimensiones tiene cada uno de nuestros <b>tiles</b>? En este caso, utilizaremos<b> tiles</b> de 16 <b>pixeles </b>de lado. Por lo tanto, nuestro <b>mapa </b>tendrá 64x16 = 1024 <b>pixeles </b>de lado. También, ahora sabemos que en <b>pantalla </b>caben 20 <b>tiles </b>de ancho por 15 <b>tiles </b>de alto.
¿Y cómo podemos determinar el <b>tile </b>sobre el cual se encuentra un <b>pixel</b>? Para esto, realizaremos la <b>operación inversa</b>, es decir, una <b>conversión de coordenadas</b>. La fórmula que aplicaremos es:
<br />
<blockquote>
posición de tile = (posición del pixel) / (tamaño de tile)</blockquote>
Por ejemplo, si el <b>pixel </b>se encuentra en la <b>coordenada </b>(300, 200), aplicamos la formula (300 / 16, 200 / 16), es decir (18.75, 12.5), lo que significa que el pixel se encuentra dentro del área del tile (18, 12).
Ahora ya estamos listos para diseñar nuestro <b>fondo </b>y luego, el <b>protagonista </b>de nuestro juego.
<br />
<div style="text-align: center;">
<img alt="" class="alignnone" src="http://www.ronaldgames.com/misc/tuto03.png" height="600" title="Mapa" width="380" /></div>
Ronaldhttp://www.blogger.com/profile/04383550214028293508noreply@blogger.com0