sábado, 5 de noviembre de 2016

Bob-Omb Battlefield en GoldenEye

Date una vuelta por este campo de batalla. ¡Cuidado con las bombas!

Descarga el parche aquí
Nunca se me pasó por la cabeza convertir el primer nivel del Super Mario 64 como mapa multijugador para GoldenEye, pero alguien había extraído el nivel y las texturas y como la carga poligonal no era muy elevada (Kakariko Village, Blue Resort y Holiday Island son mucho más complejos) decidí hacer una prueba rápida para ver cómo funcionaba.

El resultado fue mejor de lo que yo esperaba. El nivel cargaba sin problemas hasta 4 jugadores en el emulador, aunque en consola era otra historia diferente. Para asegurarme que funcionase en el hardware original dividí el mapa en cuatro partes para que se pudiera gestionar mejor la memoria.

De todas formas este nivel funciona a una tasa de imágenes por segundo muy escasa en consola. A dos jugadores es jugable, pero a tres y cuatro es como un pase de diapositivas. La solución sería dividir el mapa en más trozos y poner niebla tal y como hice en el mapa de Kakariko Village, pero eso será para una nueva versión del parche. Esto no dejaba de ser un experimento rápido al que no debía dedicarle mucho tiempo.

En emulador el nivel funciona de forma mucho más fluída y las partidas a cuatro jugadores prometen ser muy divertidas. Casi no hay sitio para esconderse y gracias a que no hay nada de niebla las batallas con cohetes o lanzagranadas tienen muy buena pinta.
El único contratiempo es que tuve que ir eliminando los árboles según el número de jugadores en pantalla para poder ganar algunos frames extra.

En pocos días el nivel ya estaba listo tal cual en el juego original, pero había algunos puntos donde unos pequeños cambios podrían hacer el nivel más accesible.
Hice una nueva conexión entre el segundo y el tercer nivel mediante una rampa que respeta mucho la estética original. Desde lejos ni se aprecia.
La segunda adición fue crear un camino secundario para acceder a la cima de la montaña oculto tras las cuevas-teletransporte. De este modo se puede llegar arriba en menos tiempo, pero a cambio no recolectas una de las armas más poderosas.


Los programas que utilicé fueron:

-'AutoCAD 2007' para crear las colisiones y arreglar algunas partes de la geometría.
-'DeleD CE' para agrupar la geometría y exportarlo todo a formato OBJ.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, corregir texturas, dividir el mapa, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.

Big Boo's Haunt en GoldenEye.

La mansión de los horrores te está esperando.
Después de publicar Kakariko Village como mi primer mapa comencé a pensar en que otros escenarios de juegos míticos de Nintendo 64 se adaptarían bien como mapas multijugador y el Templo del Bosque (realizado en 2013) y Big Boo's Haunt fueron las primeras opciones que barajé.

Esta mansión embrujada fue uno de los niveles que más me impresionó de Super Mario 64 porque el nivel se iba descubriendo poco a poco. Recuerdo que si seleccionabas la primera estrella no podías acceder al pìso superior, y que para conseguir las otras estrellas debías de accionar mecanismos que revelaban puertas ocultas, explorar rincones que la cámara no te mostraba y atravesar paredes con la ayuda de la gorra de invisibilidad.

Justamente la cámara era fija en las salas interiores y seguía a Mario mientras se desplazaba, por lo que era un nivel más restrictivo que el resto, donde la cámara era libre para que el jugador pudiera controlarla y no se pediera detalle de los impresionantes escenarios en tres dimensiones de la época.

Gracias a la conversión del mapa al GoldenEye ahora será posible moverse por la mansión libremente y observar cada rincón. No es un espacio muy grande por lo que los jugadores tendrán enfrentamientos constantemente.
La zona del carrusel del sótano queda algo aislada, pero la he conservado para que sean los propios jugadores los que decidan si usarla o no. Hay una recompensa muy jugosa para quien recorra todo el camino.

Empecé a trabajar en el mapa en marzo de 2013 y me resultó muy sencillo extraer la geometría y texturas del mapa con el método habitual. Como mi prioridad era el proyecto Goldfinger 64, tardé un año en juntar todas las piezas del mapa, eliminar el texturas sobrantes y convertir el nivel aunque sólo fuera para comprobar que funcionara. Compartí dos imágenes en abril de 2014 (1) (2) al mismo tiempo que mostraba los avances de Blue Resort.

Como se puede ver aún faltaba mucho trabajo con las texturas, realizar el clipping para poder desplazarse por el nivel, colocar las armas y realizar una iluminación tan impresionante como en los mapas anteriores. Pero dejé el proyecto aparcado hasta marzo de 2015, donde aprovechando la época de fiestas de mi ciudad (y que fueron unos días donde estuvo lloviendo constantemente) dejé el mapa listo para ser publicado. Pero quería meter un par de detalles en los que necesitaba ayuda y que han retrasado el mapa hasta hoy.

El primer detalle era que los sarcófagos que hay en una de las habitaciones se levantasen tal y como lo hacían en el juego original. Pero tras muchas pruebas, no podía funcionar de ninguna manera porque ese giro sólo puede hacerse de una manera en GoldenEye, y los sarcófagos estaban orientados en la dirección equivocada.
Hubo que rotar el mapa 90º para que fuese posible. Llevó varios intentos porque si quería conservar la iluminación que había aplicado al nivel no podía exportarlo como OBJ. Por suerte la recientemente estrenada versión 3 del GE Setup Editor soportaba el formato FBX que sí conserva el color de los vértices. Aún así encontrar el método y los programas que no dieran problemas llevó varios días. SubDrag fue esencial una vez más guiándome en el proceso.
Pero incluso rotando el mapa 90º no era posible hacer que los sarcófagos girasen com quería, y al final sólo uno puede levantarse en lugar de los tres que lo hacen en el juego original. Aunque creo que es un detalle que se agradece y que quizás pueda usarse de forma estratégica.

El segundo detalle era la librería móvil que revela una puerta. Al principio no había librería en absoluto, pero parecía algo sencillo de implementar y que no llevaría mucho tiempo. Sin embargo surgieron un montón de problemas.
Debido al gran tamaño de la librería no pude dejar que se desplazase en la misma dirección que en Super Mario 64 porque atravesaba la pared y se veía por el otro lado. El segundo problema era que se abría demasiado deprisa y que se desplazaba muy lejos, por lo que tardaba mucho en cerrarse. Sigue ocurriendo lo mismo pero conseguí que se cerrara sola en un tiempo razonable. El tercer problema era que la puerta no se veía cuando jugabas el nivel en la consola, aunque podías interactuar con ella y se veía perfectamente en los emuladores. SubDrag me recordó que en ocasiones las puertas hay que hacerlas con polígonos de 2 lados para que eso no ocurriese. El cuarto problema que no pude solucionar es que puedes activar la puerta desde el otro lado de la pared. Puede dar mucho juego en multijugador, pero no es demasiado justo. Intentaré arreglarlo en futuas versiones.

Al final, con todos los inconvenientes que surgieron y el enorme lapso de tiempo desde que se empezó tímidamente, se dejó casi terminado y hasta que se terminó de pulir ha quedado un mapa muy bonito, que se juega de forma muy fluída en consola y que creo que por tamaño y diseño va a hacer las delicias de los piques multijugador.


Los programas que utilicé fueron:
-Emulador '1964 v1.1' y plugin gráfico 'Nemu 64 graphics (combine debug)' para extraer la geometría del mapa a formato VRML y las texturas en BMP
-'3D Studio MAX R8' para convertir el archivo VRML a FBX, unir y encajar todas las partes.
-Autodesk FBX converter 2012 para convertir el mapa a OBJ (para Deled ) y DXF (AutoCAD).
-'AutoCAD 2007' para crear las colisiones y arreglar algunas partes de la geometría.
-'DeleD CE' para trocear el mapa y exportarlo todo a formato OBJ.
-'Irfan View' para editar algunas texturas.
-'Autodesk Softimage 2013'  para rotar el mapa.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, corregir texturas, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.

miércoles, 20 de agosto de 2014

Holiday Island en GoldenEye

¡Piérdete en Holiday Island en una loca noche de verano!

Descarga el parche aquí
Cuando enseñé a la comunidad de hacks de GoldenEye alojada en los foros de Shootersforever mi primera toma de contacto con Blue Resort, el usuario radorn me avisó que eso era algo que él mismo pensaba hacer en algún momento. Me enseñó su lista de mapas que quería hacer, en la que se encontraban otro niveles que yo también tenía en mente (como el Castillo de Peach de Super Mario 64). Pero lo que más me llamó de su lista estaban anotadas las dos primeras islas de Pilotwings 64.
Me descolocó bastante, porque son mapas muy grandes y abiertos. Justo las cosas que quieres evitar en un mapa multijugador en Nintendo 64.
Pero según fue pasando el tiempo y fui ganando experiencia la idea empezó a seducirme. Para entonces radorn había abandonado la comunidad.

Empecé con el mapa poco a poco durante las Navidades que daban paso a 2014. Si Blue Resort era un projecto en segundo plano respecto a Goldfinger 64, Holiday Island era todavía más secundario. Lo extraje en varias tandas separadas por el tiempo, ya que es un nivel muy grande y que abusa del LOD y el popping para funcionar a una buena velocidad en Nintendo 64 y conseguir era gran variedad de detalles.
Junté suficientes partes para tener el nivel completo (aunque había modelos en baja resolución o que directamente no estaban) para tener una idea de la cantidad de polígonos que el nivel podía alcanzar. La cifra superaba los 9000 polígonos y me empecé a asustar. Por suerte el escenario por sí mismo eran unos 5100 polígonos; y con el resto de elementos modelados como objetos a parte estaba seguro de poder hacerlo funcionar en consola (en emulador es todo mucho más fácil).

La forma final del mapa con todos sus elementos en máximo nivel de detalle superaba los 12000 polígonos. Funcionaba en consola como mapa de misión, pero lo complicado iba a ser que funcionase en multijugador. Y mi intención siempre es buscar que sea posible jugarlo a 4 jugadores.

Tuve un fallo en las primeras pruebas que consistía en que algunas texturas se veían completamente blancas. Esto es debido a que hay en el nivel algunos polígonos sin texturizar. Por suerte hay una opción en el Editor que te permite aplicar una textura a todos los polígonos sin textura.
No lo recordaba, pero lo mismo me pasó en el Castillo de Peach hace un año. Aunque aquella vez todo el nivel en una zona se volvió blanco.

Aprovechando los árboles, farolas y similares formaban parte del escenario, los utilicé como referencia para colocar los objetos en el mismo lugar. Luego podría copiar esos mismo objetos en la versión del mapa dividida.

Esta vez corté yo mismo el nivel en 36 trozos distintos con las nuevas herramientas que SubDrag introdujo en el Editor. Al ser un nivel tan grande llevó bastante tiempo. Y también bastante tiempo costó hacer el clipping. Por suerte el mapa no necesitaba ningún añadido para agilizar las partidas en multijugador ¡Salvo que es casi obligatorio usar el truco del modo Turbo porque el nivel es gigantesco!

Algunos objetos dieron problemas a la hora de jugar. Por ejemplo, las sombrillas sólo se veían si se superponían con el cielo, y los botes de la playa no se veían en absoluto ni se podía interactuar con ellos. Con la ayuda de SubDrag arreglé las sombrillas, pero al final tuve que quitar los botes para la versión de consola (en la versión de emulador forman parte de la geometría del escenario).
Otro aspecto curioso de los objetos es que utilicé la caja de colisiones del tronco de las palmeras para los árboles en cruz. Intenté hacer los mismo para los árboles más grandes, pero al estar el tronco descentrado no conseguí hacerlos coincidir. Las farolas también tienen su propia caja de colisiones usando sólo la base y el poste.
Los aviones amarillos del aereopuerto también son objetos (el grande naranja forma parte del escenario), pero no tienen las colisiones activadas. El motivo de esto es que la caja de colisiones usa las dimensiones máximas del avión y no permitía acercarse a determinados puntos. Al final modelé la planta del avión en el clipping y quité las conexiones para simular la caja de colisiones. El mismo truco también lo hice con el avión más grande.

También tuve que hacer algunas texturas a mano, ya que no se extrajeron junto con el mapa. Estas texturas son la que forma la estructura de la noria y las de las fuentes del gran lago central.

Con todo preparado lo único que podía salir mal era que no hubiese memoria suficiente para hacer funcionar el mapa a cuatro jugadores. En Blue Resort ya tuve que hacer malabarismos para encajarlo todo, pero Holiday Island tenía más polígonos en total (13600 contando los objetos), necesitaba mayor distancia de dibujado al tener vistas más largas, tenía más texturas y además el archivo de setup también era más grande.
Pero por algún motivo las primeras pruebas en consola fueron mejor en Holiday Island que en Blue Resort, así que tenía la sensación de que al final todo saldría bien.

Costó bastante acertar en como dividir la memoria, pero fue todo mucho más sencillo que con Blue Resort. La distancia de dibujado por defecto era suficiente ya demás la velocidad era aceptable. Sólo hubo que ajustarla un poco para 4 jugadores para evitar que algunos trozos del mapa no se cargaran.

El cielo en multijugador es negro porque el mapa es tan alto que ocasiona problemas con el cielo. La forma de solucionar esto es desactivando las nubes, pero hacerlo en un mapa multijugador cambia el color de cielo a negro.

Luego tocó centrarse en la versión del mapa para emulador (al contrario que en Blue Resort, ahora había ido directo a asegurarme que la versión de consola funcionaba). Preparé dos mapas, uno con todo el nivel como parte de la geometría del escenario y otro con todos los objetos pero con el escenario sin partir. Ya me imaginaba que tenerlo todo junto funcionaría mejor en emulador, pero lo que no imaginaba es que la otra alternativa resultaría en menos de 2 imágenes por segundo a 4 jugadores, jeje.

Hubo algo inesperado durante las pruebas con la memoria para el mapa en amulador: si la memoria llega a un valor mínimo carga la geometría primaría pero no la secundaria (la que se usa para texturas con transparencia o que atraviesen las balas), pero si sube un poco entonces el nivel deja de cargar. Y si se sube algo más entonces carga tanto la geomtría primaria como la secundaria.
Al final hubo que ajustar de nuevo la memoria hasta el último punto para no tener problemas con las texturas.

Y de este modo la gigantesca Isla de las Vacaciones se convirtió en un mapa de GoldenEye. Y puedo asegurar que no volveré a hacer un mapa de estas características nunca más, jeje. Esta vez salió bien y no tuve demasiados problemas comparado con otro mapas que he hecho. Pero los trucos se me están acabando y hacer otro mapa más grande y tan abierto supone demasiado esfuerzo para que sólo puedan jugar 4 jugadores. Algún día habrá una versión para Perfect Dark.


Los programas que utilicé fueron:
-Emulador '1964 v1.1' y plugin gráfico 'Nemu 64 graphics (combine debug)' para extraer la geometría del mapa a formato VRML y las texturas en BMP
-'3D Studio MAX R6' para convertir el archivo VRML a FBX, unir y encajar todas las partes.
-Autodesk FBX converter 2012 para convertir el mapa a OBJ (para Deled ) y DXF (AutoCAD).
-'AutoCAD 2004' para crear las colisiones y arreglar algunas partes de la geometría.
-'DeleD CE' para trocear el mapa y exportarlo todo a formato OBJ.
-'Irfan View' para editar algunas texturas.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, corregir texturas, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.

Blue Resort en GoldenEye

Tras Bomberman, Blue Resort será arrasado por los tiradores de GoldenEye.

Blue Resort es uno de los grandes desconocidos de Nintendo 64. Más olvidado incluso que el juego que lo alberga (Bomberman 64), recordado por su modo multijugador pero no por sus bellos niveles principales.
Este escenario siempre fue mi favorito por el hecho de poder ver parte del tercer nivel desde el primero y viceversa. Al contrario que otros niveles sólo tenían en común con el anterior que mantenían la misma ambientación, Blue Resort era compacto y familiar.

Cuando terminé el Pueblo Kakariko empecé a pensar en qué otros mapas podría realizar a continuación. Y éste fue el primero con el que empecé a trabajar.
Al principio sólo era curiosidad por ver si las distintas piezas encajaban bien. Tenía pensados algunos elementos para añadir al mapa y hacerlo más accesible, como un puente tras la torre o unas escaleras que conectasen el tercer nivel con la zona central. También me gustaba la torre como un lugar desde el que usar el rifle de francotirador. Aunque la torre original no tenía aberturas...

Numéricamente y comparado con Kakariko éste mapa parecía muy difícil de realizar. El tamaño total, la cantidad de polígonos, su naturaleza abierta... Tendría que esperar hasta que aprendiese más sobre el funcionamiento del motor gráfico y el editor de GoldenEye. Kakariko fue la primera conversión que hice.

Y año y medio depués volví a intentarlo. Empecé poco a poco en enero de 2014 desde cero. En un segundo plano respecto al proyecto Goldfinger64. Pensé que podría tenerlo finalizado para el tercer aniversario de este blog, aunque al final surgieron varios problemas que lo retrasaron bastante.

Me di cuenta de que a parte de los añadidos que tenía pensados haría falta arreglar una de las escaleras que comunicaban la parte superior con la zona central. En el juego original estas dos zonas están separadas por una carga, y como las escaleras están ocultas tras una pared no hacía falta que coincidiesen. Tuve que partir la escalera en tres tramos y que diese la vuelta tras el muro. El espacio disponible era el justo para ello.

A finales de junio me puse en serio con el mapa para tenerlo preparado en la fecha prevista. Y ahí es cuando comenzaron los problemas.

El mapa en emuladores funcionaba correctamente, pero en consola no funcionaba para mas de 3 jugadores y además lo hacía con una velocidad lamentable. Iba a ser necesario dividir el mapa en varios trozos para aligerar la carga poligonal y así conseguir que funcionase a 4 jugadores y a una velocidad decente en consola.

SubDrag me ayudó a dividir en nivel en varios trozos como ya hizo en la segunda versión de Kakariko. Pero esta vez el nivel tenía demasiados polígonos y algunos trozos no cargaban.
Al partir el nivel se habían creado muchos polígonos redundantes que hacía falta eliminar. De casi 7000 polígonos que me parece que eran tras el corte, conseguí reducirlos a algo menos de 6000, me parece. Pero seguía habiendo zonas que no cargaban.

Entonces comencé a reducir polígonos del modelo original, ya que había varias superficies que se podían hacer con menos triángulos. Pero tampoco quería reducir demasiado el número de polígonos si con ello eliminaba algunos vértices que luego serían útiles para hacer la iluminación del nivel.
También fui eliminando todas las caras no visibles y al final conseguí dejar el nivel en al más de 5000 polígonos. Pero aún así seguía habiendo zonas que no cargaban.

Había que reducir los polígonos de esas zonas. Algunas las partí en dos trozos (SubDrag añadió herramientas en el Editor para ello durante esos días) y en otras eliminé los cañones para añadirlos después como objetos (sólo se cargan al verlos y no cuando ves parte de esa zona).
Gracias a esos cambios y a ajustar la memoria disponible y la distancia de dibujado hasta el mínimo estrictamente necesario conseguí hacer funcionar el nivel decentemente en consola.

La velocidad a dos jugadores podría ser incluso mejor si redujese todavía más la distancia de dibujado, pero entonces la torre perdería toda su gracia, porque ya no se podrían ver áreas donde disparar. A tres judadores la velocidad es incluso mejor, pero a costa de reducir la visión considerablemente. Y a cuatro jugadores es una mezcla de ambas.

En emulador no tenía ese problema  así que realicé otro parche con el nivel adaptado a sus ventajas. De este modo se tiene una velocidad de juego mucho mayor y la máxima distancia de dibujado posible.

Al final terminé el mapa a principios de agosto. Y como había pasado más de un año desde el último mapa que publiqué y que Blue Resort no era muy conocido, pensé que debía ir acompañado de otro nivel más: Holiday Island de Pilowings 64.


Los programas que utilicé fueron:
-Emulador '1964 v1.1' y plugin gráfico 'Nemu 64 graphics (combine debug)' para extraer la geometría del mapa a formato VRML y las texturas en BMP
-'3D Studio MAX R6' para convertir el archivo VRML a FBX, unir y encajar todas las partes.
-Autodesk FBX converter 2012 para convertir el mapa a OBJ (para Deled ) y DXF (AutoCAD).
-'AutoCAD 2004' para crear las colisiones y arreglar algunas partes de la geometría.
-'DeleD CE' para trocear el mapa y exportarlo todo a formato OBJ.
-'Irfan View' para editar algunas texturas.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, corregir texturas, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.

domingo, 7 de julio de 2013

Sogun Studio - 2do Aniversario


Ya han pasado dos años desde que comenzase el blog y poco a poco se va llenando de contenido.
Durante los últimos doce meses me he centrado en el proyecto de Goldfinger 64. Al principio me dediqué a modelar objetos para el mod, pero ahora estamos de lleno en el proceso de creación de niveles.

Hasta ahora la gente ha podido ver cómo me las gasto para adaptar niveles existentes, e incluso cambiarles el aspecto por completo, pero nada creado desde cero. Y además ahora también está la posibilidad de recrear algunos escenarios de la película, totalmente a ojo. Me está gustando mucho cómo me están saliendo las cosas, pero aún queda mucho trabajo por hacer.

No he incluído en el vídeo el remake de Citadel para GoldenEye: X porque en realidad lo acabé el año pasado. Aún no he terminado con él porque hay que resolver los problemas con las sombras cuando se juega en consola. Por suerte Subdrag ha avanzado mucho en el tema y yo sólo tengo que darle el toque final.

Hace un par de meses me di un descanso de Goldfinger 64 y trabajé a toda velocidad para tener listos nuevos mapas que enseñar en el vídeo del segundo aniversario, jeje.

Primero intenté convertir la antigua demo de la Jungla en un mapa multijugador. Si funcionaba muy bien para un sólo jugador, pensé que con unos pequeños retoques también lo haría para 2, 3 y 4 jugadores, pero nada más lejos de la realidad. Las únicas soluciones que se me ocurrieron eran o bien aumentar la niebla una barbaridad, o empezar a quitar palmeras. Dejé un tiempo para que fuesen los propios jugadores quienes decidieran, pero tampoco tuve muchas respuestas. Al final quité palmeras y la cosa mejoró bastante, pero sólo en emulador. Cuando pude probarlo en consola el mapa funciona tan mal que se bloquea al cabo de unos segundos.

Entre medias fue el turno del Castillo de Peach, posiblemente el mapa más emblemático de todos los juegos de Nintendo 64. En mi lista estaba por delante el nivel de Big Boo's Haunt porque creo que funcionaría mejor como mapa multijugador, pero sabía que habría más gente interesada en el castillo.
En este nivel empecé a experimentar con las caídas en GoldenEye y también usé por primera vez el modo  Lighting Source del Editor. Me llevó un mes acabarlo.

Después comencé el Templo del Bosque, mi mazmorra favorita del Ocarina of Time y posiblemente de cualquier Zelda. El proceso fue mucho más rápido que en otros mapas, pero también me topé con fallos que creía que ya estaban superados o que nunca había tenido, lo que me retrasó algunos días. En menos de tres semanas ya estaba acabado y con un acabado impecable.

Los días hasta el aniversario (y luego alguno extra más) me centré en arreglar el Pueblo Kakariko. En emulador le costaba pero era jugable. En consola ni por asomo. Necesitaba romper el mapa en muchos trozos para aligerar la carga gráfica y funcionó. Pero ocasioné nuevos problemas que no pude resolver y tuve que aumentar la niebla para ocultarlos. Al menos eso mejoró el rendimiento un poco más. Le añadí luces y sombras al exterior gracias al Lighting Source.

También realicé un tutorial mostrando el proceso desde que se crea un nivel en un programa de diseño 3D hasta que lo tienes funcionando en el juego. He intentado hacer un segundo tutorial explicando más cosas e incluso pensado en cosas que enseñar en nuevos tutoriales, pero se hacen muy largos así que los tengo que estructurar mejor.

Para el tercer aniversario espero que Goldfinger 64 ya esté disponible y que todos lo podaís disfrutar. También me gustaría trasladar más mapas de otros juegos de Nintendo 64 y crear algunos originales por mi parte. Quien sabe, quizás empezar mi propio mod de Super Mario 64 del que ya tengo muchas ideas en la cabeza.

¡La verdad es que un año pasa volando!

sábado, 6 de julio de 2013

El Templo del Bosque en GoldenEye

Este lugar me pone los pelos de punta...

Descarga el parche aquí
El Templo del Bosque es mi mazmorra favorita de The Legend of Zelda - Ocarina of Time. Desde que me perdiera en los Bosques Perdidos y diera con él antes incluso de finalizar el Árbol Deku, siempre quise trepar esas escaleras derruidas y andentrarme en esa misteriosa edificación. Cuando por fin pude hacerlo me fascinó: sus detalles gráficos y ambientales (enredaderas, pasillos oscuros, contrastes de luz), su música, esos pasillos espirales, el jefe final...
Cuando completé el Pueblo Kakariko tenía claro que algún día tendría que transformar el Templo del Bosque en un mapa del GoldenEye. Ya había hecho mis pruebas hace casi un año (1) (2) (3) con unas herramientas de la scene de Zelda 64 que encontré, pero no fueron del todo satisfactorias. Cuando conseguí pulir el método durante la creación del Castillo de Peach fue cuando tuve claro que debía retomar este proyeto.

Capturar el mapa resultó mucho más fácil que nunca. Las distintas salas del Templo encajaban a la perfección unas con otras, así que sólo tenía que unir los distintos archivos. Había algunas partes que sí necesité recolocar, pero fueron añadidos al mapa principal (la vista al Valle Sagrado y la sala del jefe final, que será accesible cuando convierta el mapa a Perfect Dark en el futuro).En unas pocas horas la primera parte estaba lista.

El primer gran escollo fue cuando tuve que modelar el clipping. Fui bastante ambicioso en este mapa porque quería permitir multitud de caídas desde lugares altos que GoldenEye no soporta muy bien. Pero lo que más faena me dio fueron las escaleras, en especial las más largas. No había forma de que funcionasen, y tras arreglar una comenzaba a fallar la otra. Estuve varios días dándole vueltas y no encontré la solución; así que pregunté a Subdrag. Pude solucionarlo con una simple orden del Editor. También me dijo cómo solucionar unos problemas que tenía con los portales (tener clipping en el mismo plano que el portal no es buena idea, lo mejor es inclinar el clipping un poquito).

Ya era posible recorrer el mapa en su totalidad y ver cómo se adaptaba al multijugador. Me di cuenta de que ciertas zonas eran bastante inaccesibles y que otras actuaban como embudo, siendo obligatorio pasar por ellas para acceder a la otra mitad del mapa. De modo que añadí un par de escaleras aquí y allá y más caídas donde fuese posible, para agilizar el paso por el mapa.
Otro asunto que me llevó algo te tiempo solucionar fue el tema de las puertas, en especial las que se abren en vertical. Sucedía que en el momento de abrirlas, éstas se distorsionaban y llenaban la pantalla con sus polígonos, impidiendo el paso en algunas ocasiones.
Sólo faltaba colocar las armas y los puntos de aparición de los personajes para tener el mapa 100% funcinal. Como es un mapa muy grande añadí un tercer juego para las dos armas más débiles.

El último paso era darle una capa de pintura al nivel para que quedase bonito. Las texturas originales quedaban muy deslucidas (4) y lejos de la apariencia del original, por lo que se iba a requirir un gran trabajo coloreando vertices. Lo que hice fue combinar el coloreado manual con la herramienta de Lighting Sources del Editor, que ya había usado en el mapa del Castillo de Peach.
Pinté casi todas las superficies con un tono marrón que sustraí del aspecto original, y oscurecí ese mismo tono en las esquinas. Por suerte el modelo de las salas estaba pensado para ello. Seguía siendo un sombreado muy plano, pero ya usaría Lighting Sources para darle más realismo.
Estuve un par de días con el sombreado, porque se trata de un nivel muy grande y porque estaba usando más de una y dos luces en la mayoria de salas y había que hacer muchas pruebas. Al final estoy muy contento con el resultado.

Aprovechando que se acercaba el segundo aniversario de Sogun Studio, preparé también una nueva revisión del mapa de Kakariko Village. Este mapa tenía bastantes problemas de rendimiento al tratarse de un lugar muy abierto pero era más o menos jugable a dos jugadores en emulador. Lo que comprobé hace poco es que en consola era injugable de lo lento que funcionaba, así que intenté arreglarlo.
Con la ayuda de Subdrag, partí la zona exterior en un montón de trozos con la idea de agilizar la carga. Funcionó muy bien, mejorando el rendimiento notoriamente cuando no había mucha porción del mapa visible (en vistas largas la velocidad era similar al original). Pero había problemas con los portales lejanos, que parpadeaban y entorpecían la experiencia.
Lo intentamos otra vez troceando el mapa de forma más concienzuda, pero los mismos problemas seguían ahí. Al final tuve que reducir la distancia de dibujado para evitar que se viesen esos portales saltarines (y de paso se mejoraba el rendimiento un poco más).
Por último usé Lighting Sources en el exterior para darle un aspecto más realista. Como supongo que habrá gente que preferirá el antiguo Kakariko (más distancia visible y rendimiento más bajo pero constante), también ha sido incluído en el parche llamado Old Kakariko. Tiene algunas mejoras respecto a la versión que lancé con el Castillo de Peach, ya que he podido reducir la carga poligonal gracias a la posibilidad de espejar las texturas. No se aprecia una gran mejoría en el rendimiento, pero supongo que algo ayudará.


Los programas que utilicé fueron:
-Emulador '1964 v1.1' y plugin gráfico 'Nemu 64 graphics (combine debug)' para extraer la geometría del mapa a formato VRML y las texturas en BMP
-'3D Studio MAX R6' para convertir el archivo VRML a FBX, unir y encajar todas las partes.
-Autodesk FBX converter 2012 para convertir el mapa a OBJ (para Deled ) y DXF (AutoCAD).
-'AutoCAD 2004' para crear las colisiones y arreglar algunas partes de la geometría.
-'DeleD CE' para trocear el mapa y exportarlo todo a formato OBJ.
-'Irfan View' para editar algunas texturas.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, corregir texturas, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.

viernes, 21 de junio de 2013

Rainforest multi para GoldenEye

Una densa jungla ideal para liarse a balazos

Descarga el parche aquí
Ya en tiempos de Nintendo 64 me resultaba extraño no ver escenarios del tipo bosque en los juegos. Y me refiero a grandes extensiones repletas de árboles tridimensionales que te entorpecieran el paso y que ocultasen el cielo. Lo que me encontraba eran cajas de zapatos con texturas forestales como Lost Woods en Ocarina of Time o pasillos con cuatro troncos contados como en Jungle de GoldenEye.

Pero yo tenía metida en la cabeza una forma para conseguirlo. Me decía que si podía trocear el mapa en pequeños trozos y sólo cargar los más cercanos al personaje sería posible incluso para una Nintendo64 mover un bosque parecido. Para hacer las cosas más fáciles me imaginaba que el nivel transcurría durante una noche con mucha niebla, para así poder justificar las carencias técnicas de las máquinas del momento.

Cuando comencé a comprender cómo funcionaba el motor gráfico de GoldenEye, me di cuenta de que funcionaba exactamente como mi idea del bosque. Así que hace más o menos un año hice un test para ver cómo quedaba, y el resultado fue mejor del que esperaba.
Mostré el mapa y gustó mucho, e incluso la gente pidio que lo convirtiese en un mapa multijugador. No negaré que lo intenté en aquel momento y fracasé porque no sabía que la gestión de memoria funcionaba de manera distinta respecto a los mapas de un jugador a los que yo estaba acostumbrado.

Tiempo más tarde me di cuenta de en qué había fallado y volví a intentarlo. Evidentemente no funcionaba igual de bien para 2, 3 y 4 jugadores que lo había hecho para uno sólo; así que había que sacrificar cositas para hacerlo jugable.
Reduje la distancia de dibujado y mejoró mucho el resultado, pero aún no era muy jugable. Reduciéndola aún más el juego era lo suficientemente fluído, pero apenas había visibilidad por lo que se pedía una de las señas de identidad de mapa.
Probé a cambiar algunas palmeras por plantas con menor carga poligonal, a ver si así conseguía esa ligera mejora que necesitaba, pero ni por esas. Al final tuve que talar alrededor de un 20% de palmeras para conseguir lo que buscaba.

Había perdido algo visibilidad, densidad y fluidez para trasladar aquel test al modo multijugador, pero había merecido la pena.
Recuerdo que había unas 420 palmeras al principio y que al encontrarse todas en la misma posición no quedaba muy bien, así que fui rotándolas una a una con la ayuda de un dado de ocho caras (ya que había 8 posiciones posibles). Después tuve que hacer que algunas palmeras no apareciesen para 3 jugadores y otras tampoco para 4 jugadores; porque de lo contrario sería del todo injugable. Repartir equitativamente las palmeras restantes tuvo su miga también.
Por último, para mejorar el aspecto del mapa (que tenía sólo dos texturas para el escenario y otras dos para las palmeras), utilicé una herramienta de sombreado automático que recientemente había sido brillantemente añadida al editor por SubDrag (tras una idea que propuse, jeje). Le dio al nivel un aspecto más serio y realista.

Gracias a SubDrag por el Editor y sus nuevas funciones, y a Acceptable67, EternallyAries, MultiplayerX, Rey SATURN_81 por sus impresiones y sugerencias.


Los programas que utilicé fueron:

-3D Studio MAX 6 para modelar el mapa.
-'AutoCAD 2004' para crear las colisiones y los portales.
-'DeleD CE' para aplicar las texturas y exportarlo todo a formato OBJ.
-'GE Setup Editor' para editar la rom de GoldenEye: añadir texturas a la rom, añadir el mapa, añadir efectos de sombreado e iluminación, configurar el sistema de colisiones y portales, colocar armas y personajes, modificar los parámetros de visibilidad del mapa, cambiar la imagen y nombre del nivel... y crear el parche.