27/1/09

Todos los ríos llevan a Simutrans

Desde hace que se abrió esta nueva etapa del foro, se han incorporado muchos nuevos programadores que han aportado un buen montón de interesantes parches y mejoras. Entre las distintas propuestas, la que más entusiamo ha levantado es un parche para la creación de ríos en los mapas. es obra de gerw y ha sido revisado por prissi. Si quieres saber sigue leyendo.

Leer más...


La idea partió de una sugerencia/petición de fabio (antiguamente conocido como fagonella) un veterano usuario cuyo sueño era que los mapas tuvieran ríos. Otros usuarios apoyaron la idea, y visto que esta calaba, algunos programadores, gerw entre ellos, se animaron y comenzó el desarrollo. Hasta hace poco no había imágenes, pero tras contemplar esta maravilla me convencí de que el parche valía la pena.

Me gusta por varias razones. La primera porque añade variedad a los mapas. Ahora serán más realistas. Y la segunda es porque estimulará el transporte fluvial y el uso de los barcos. Si haceís una prueba, vereís aunque la creación de la forma de los ríos es aleatorio, estos tienden muchas veces a terminar cerca de ciudades o industrias. Esto sin duda animará a la gente a usar los barcos y barcazas, ya que estos ríos no son meramente decorativos, también son navegables.

Os dejos algunas otras imágenes de pruebas con otros paksets (cortesía de sojo, gerw, fabio y jamespetts)




Por lo que he leído, este parche ya ha sido aprobado por Prissi e incluido en la rama principal de desarrollo de Simutrans. La versión final tendrá un interfaz para modelar los ríos, pero aún tienen que pulir los detalles. Solo queda felicitar a prissi y a gerw por este excelente trabajo y esperemos que este 2009 nos depare nuevas y trepidantes sorpresas como esta.

25/1/09

Nadie se queja de tener lo que no se merece.

Las críticas constructivas siempre son bienvenidas, porque te aportan un punto de vista que te ayuda a ver tus fallos desde una perspectiva diferente. Pero la queja fácil y despectiva no es más que la pataleta de aquél que espera que le hagan caso porque cree tener la razón absoluta, al menos desde mi punto de vista.

Leer más...

Y es que en las últimas semanas he venido observando que ciertos nuevos usuarios se quejan una y otra vez determinados temas. Cosas como que la comunidad está muerta, el proyecto está parado, por qué no atendéis mi petición, tardas mucho en contestar, no contestáis porque no interesa, que antes era mejor y ahora no se hace nada, que porque no hay soporte 100% para determinados idiomas, como osáis llamarla versión estable si tiene errores...en fin, un montón de quejas que giran alrededor de un concepto erróneo: yo he jugado a vuestro juego y no he obtenido lo que esperaba..¡a que demonios esperáis para darme lo prometido!

Voy a contestar a esta afirmación con la siguiente cita...
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

William George Ward (1812-1882) Escritor y teólogo inglés.

...cuyo idea principal es que si algo no te gusta, pon los medios para cambiarlo. Ya conocemos como está la situación, así pues ¿qué vas a hacer para cambiarla? Si crees que Simutrans tiene errores, informa de ellos. Si no está completamente traducido en tu idioma, colabora traduciendo textos en Simutranslator o guías en doc.simutrans.com, si piensas que existen pocos objetos, no hagas continuas peticiones y dedica algo de tu tiempo a aprender como crearlos por ti mismo. Nadie es un genio de la pintura ni un excepcional modelador 3D. Todos hemos empezado desde cero aprendiendo poco a poco, ¿por qué tu no?. Si crees que no hay jugadores de Simutrans en tu idioma crea algún medio para dar publicidad al juego: blogs, wikis, chats, criticas en páginas de descarga, comentarios en foros de videojuegos, talleres educativos, comunidades en Facebook o tuenti, etc..

Haz lo que sea pero movilízate. Si alguien no lo hace por ti, busca la información y los medios, y haz lo tú mismo. Si necesitas apoyo anima y convence a más gente. No exijas de forma tajante. Se comprensivo, amigable y cordial, no susceptible, quejica y pesado. Pasa de ser un jugador a ser parte de algo más grande, parte de un grupo de gente con un proyecto común.

Después de todo la comunidad de Simutrans te ha dado un juego complejo e interesante de forma gratuita, con posibilidad de acceder al código, se puede ampliar fácilmente con nuevos objetos, está bien documentado, disponible en varios idiomas y varias plataformas, con distintos tipos de gráficos, con un foro internacional con soporte y ayuda en varios idiomas, con wikis, traductores online, versiones de desarrollo y guias de juego, y todo esto a cambio de absolutamente nada por tu parte.

En ese caso, se podría argumentar estás en deuda con la comunidad, así que simplemente pregúntate esto ¿que he hecho yo por la comunidad de Simutrans?..

24/1/09

¿Estable o inestable? esa es la cuestión

En las últimas semanas, desde que salió la versión 0.101 de Simutrans me he dado cuenta de que mucha gente tiene un concepto erróneo de lo que significa "versión estable". Es por eso que creo necesario aclarar algunas dudas y concepciones erróneas en lo referente a este tema.

Leer más...

Primero debemos tener en cuenta que se entiende por versión estable en el mundo del software. Esto es la definición de estable e inestable, en el contexto del ciclo de vida del software

El término estable hace referencia a una versión del software que es sustancialmente idéntica a otra que ha sido probada en escenarios reales el tiempo suficiente para asumir de forma razonable que no existen problemas graves, o al menos ningún problema conocido y documentado.

Por otro lado, el término inestable no necesariamente significa que existan problemas, más bien que las mejoras o cambios introducidos en el software no ha sido sometidos a un rigurosos plan de pruebas, y por tanto puede haber más cambios en breve.

¿Y qué significa esto? básicamente que cuando el equipo de desarrollo saca una nueva versión de Simutrans, esta no está completa y totalmente libre de errores. Hay cosas que no se han documentado en ningún informe, y por tanto son desconocidas. En consecuencia la versión estable puede tener en determinadas ocasiones comportamientos impredecibles o erróneos.

Es por eso que debemos distinguir entre errores no documentados y el mal uso que se hace del juego. Me refiero a probar objetos extra de versiones antiguas, mezclar paksets de diferentes versiones, crear mapas gigantescos, usar mapas muy antiguos, etc.. Si alguna de esta situaciones conlleva un error, esto no significa que la versión estable de Simutrans que usas no sea estable. Simplemente no has usado el programa como es debido. Otra cosa es que estés jugando y se produzca un hecho que no debería tener lugar en dichas circunstancias. En ese caso, es posible que se trate de un bug y por tanto debes comunicarlo para que sea corregido lo antes posible.

Ante todo, no hay que perder de vista que esto no deja de ser una comunidad de gente que dedica su esfuerzo y tiempo libre a intentar crear un juego que sea lo mejor posible. Por ello, no se puede tener el mismo o un mayor nivel de exigencia que lo que pediríamos a un videojuego profesional. Se hace lo mejor que se puede con lo que se tiene, ni más ni menos.

18/1/09

Tilecutter, la navaja suiza

Tras pasar la etapa de los edificios pequeños (1x1) uno se plantea si es posible crear objetos más grandes. Y es obvio que es así, pero no es tan fácil como parece. Hay que recortar la imagen de una determinada manera para que el juego coloque esos trozos y el edificio se represente de manera adecuada. Esto era un trabajo muy engorroso. Un peñazo. Hasta hace poco no había forma de automatizar esta tarea por eso los edificios antiguos eran todos pequeños. El panorama cambió con la aparición de Tilecutter un programa creado por Timothy que se convirtió en un aunténtica navaja suiza, fundamental para el desarrollo de grandes edificios.

Leer más...

Como ya hemos dicho, el cometido de Tilecutter es básicamente trocear las imágenes, pero además en las últimas versiones crea el archivo dat con los atributos que nosotros especifiquemos (climas, tipo, fechas, etc..) La última version es 0.3d.1 y está disponible para descarga aquí. De momento solo está disponible para Windows, pero está escrito en python y es posible que funciones sobre entornos Unix usando wine.

Una vez descargado, pulsamos en el ejecutable y esto es lo que nos encontramos (ver imagen de la izquierda)

El interfaz consta de un menú de herramientas (File, Tools, Help), un visor de imágenes con sus controles y la parte de salida/entrada. El visor consta de varias zonas. La amarilla son los botones para cargar/ver las distintas vistas. Evidentemente algunos de ellos solo se activarán en caso de que el edificio tenga más de una vista(rotación). La zona roja son los controles de dimensiones, que incluye un menu para especificar el pak, el número de vistas o rotaciones (views) del objeto y otros tantos para el ancho (x), el largo (y) y el alto (z) del edificio. El programa ofrece la posibilidad de detectar automáticamente algunos de estos atributos pulsando en el botón Auto.

A continuación tenemos los controles avanzados que nos permiten aplicar un desplazamiento (offset), en caso por ejemplo de que queramos ajustar más el corte. Existe una opción no habilitada, y si no recuerdo mal no implementada aún, denominada Frames que servíria para gestionar los distintos fotogramas de una animación en caso de que el edificio contuviera alguna. Por último, en la parte del visor tenemos el área rosa que es donde se muestran las imágenes a tratar. Si os fijaís, podreís apreciar que la primera de las rotaciones de la imagen de ejemplo está rodeada por una línea roja. Ese es el patrón que usa el programa para delimitar las dimensiones del objeto y poder así cortar la imagen de forma adecuada.

Finalmente tenemos la zona verde, sobre la entrada/salida donde se especifican los ficheros que se van a tratar, ficheros fuente de tipo png, y los que van a crearse como resultado, ficheros dat y png.

¿Y cuales son los pasos que hay que dar para que el programa corte en trozos una imagen? Bueno, lo primero es crear la imagen en formato png. A continuación, ejecutamos Tilecutter y cargamos la imagen en el campo Source (zona verde) usando el botón Browse para encontrarla. Una vez cargada, aparecerá en el visor de imágenes. Seguidamente, especificamos el pak, el largo, ancho y alto. Si lo sabes, solo tienes que hacer coincidir el patron rojo con los bordes del edificio, sino pulsa Auto. Si tienes más de una vista pulsa en los botones de la zona amarilla y carga cada una de las vistas.

Una vez tengamos las imágenes cargadas, deberemos especificar las características del objeto, es decir, el contenido del fichero dat asociado a dicho objeto. Para ello vamos al menu Tools >> .dat file options o pulsamos CTRL+D y aparecerá el siguiente menu (ver izda)

En este caso hay que escoger el tipo de edificio (Object Type), y según eso habilitarán unas opciones globales (Global Options) y unas opciones específicas (Building options) Si estaís procesando industrias o factorías también se habilitará el contexto Factory options donde se especifican atributos propios de este tipo de edificios. Por último, tenemos las opciones adiccionales que permiten añadir nuevos atributos como los climas en los que se usará este objeto (esta opción está disponible también desde el menu principal Tools >> climates) No me entretengo mucho aquí porque esto forma parte de otra etapa del desarrollo que es la confección del archivo dat, sobre la cual existe abundante información en el foro y los wikis. Una vez marcadas las opciones pertinentes, pulsamos Save changes and close y el fichero dat estará listo.

Vamos con el paso final: el procesado (troceado de la imagen). Para ello vamos al área verde e introducimos los nombres de los fichero dat y png de salida. Puede ser ficheros que ya existen, pero hay que tener en cuenta que se sobreescribirán. Pongamos que los denominamos salida.dat y salida.png. Ahora vamos al menu File y tenemos dos opciones (ver drcha):

  1. Export source que exportará el resultado en los archivos dat y png anteriormente especificados.

  2. Export Dat file only que solo creará el archivo dat

Lo normal es optar por la primera, ya que nos da casi todo echo. Pues pulsamos en Export source y en la ruta que hemos especificado aparecerá un fichero dat y otro png con la imagen troceada. En mi caso, la imagen original y el resultado son los de la imagen

Y el archivo dat contiene entre otras cosas, lo siguiente:

...
Dims=2,2,1
BackImage[0][0][0][0][0][0]=salida.0.0
BackImage[0][0][1][0][0][0]=salida.0.1
BackImage[0][1][0][0][0][0]=salida.1.0
BackImage[0][1][1][0][0][0]=salida.1.1
...


Como podeís comprobar el proceso no es complicado, y hacerlo a mano sería un auténtico suplicio. Hay que acordarse de revisar el fichero dat, porque normalmente no incluye los indices referentes a los climas, debería haber 6 índices sin embargo hay 5 (numeros entre corchetes) y algunos de los atributos del fichero pueden estar desfasados respecto de las nuevas versiones (tipos de parada por ejemplo) Esperamos que con la nueva versión, que según parece saldrá en breve se subsanen estos errores y se actualize el programa.

En mi galería de usuario de graphics.simutrans.com teneís ejemplos de edificios complejos creados usando esta maravillosa herramienta (enlace)

Por cierto, como habreís notado aún no está traducido..si alguien se anima, solo tiene que ir a la carpeta language, hacer una copia del archivo tc-en.tab, renombrar como tc-es.tab y empezar a traducir todas las cadenas de texto que aparezcan.

15/1/09

Los videojuegos como herramienta educativa

Mucha gente ve Simutrans como lo que pretende ser, un juego con el que pasar un buen rato. Plantea retos, requiere estrategias y recompensa los logros. No es más que un pasatiempo. Sin embargo existe otra forma de enfocar el uso del juego, no solo para el disfrute sino también para el aprendizaje y la transmisión de conocimientos. En los últimos meses, hasta tres personas han informado a la comunidad acerca de proyectos educativos de cierta envergadura que hacen uso de Simutrans como vehículo para explicar algunos conceptos. Y de eso trata este artículo...

Leer más...

Como ya he dicho cuando uno juega a Simutrans, creo que no se imagina ni por asomo que sea posible usarlo de otra forma que no sea para entretenerse, pero parece que hay personas que ven en este simulador de transportes y economía la herramienta perfecta para transmitir conocimientos de forma amena y cercana.

En Octubre del año pasado llegó un anuncio de que una persona, llamada Deborah Healey, ligada al Departamento de Estado de USA, más concretamente al Instituto de Lengua Inglesa de la Universidad Estatal de Oregón. Nos ofrecía la posibilidad de incluir el juego en un CD de freeware y shareware que el Departamento de Estado de USA repartiría entre los profesores de inglés por todo el mundo (según decía, más de 30,000) Dicho CD sería regalado o vendido a precio de coste. Sin duda fue una gran oportunidad para promocionar Simutrans y no la dejamos pasar pero no sé como ha quedado la cosa. Probablemente fue la primera noticia que la comunidad de Simutrans tenía acerca del uso del juego en el ámbito educativo.

Unos meses más tarde, Un profesor de economía de Open Source Nevada publicó un comentario informando de que estaba desarrollando un laboratorio de economía para gente joven y estaba usando Simutrans para explicar algunos de los conceptos más comunes como la asignación de recursos, las pautas de funcionamiento, tasa interna de retorno, etc... En ese momento me pareció increíble porque todo lo que contaba estaba implícito en la mecánica de juego. Normalmente lo ignoras porque te diviertes y también porque mecanizas muchas de las tareas que hay que realizar en el juego, pero en realidad sin saberlo estás manejando muchos conceptos que no conoces de forma amena, sencilla y con soltura.

Por último tenemos el caso más orientado al uso de Simutrans para la formación educativa. Esta misma semana, un profesor de Tecnología Educacional y Especialista en Robótica brasileño de foro portugués comentó que iba a usar Simutrans para un proyecto pedagógico en el aula. Según leí, tiene un buen montón de temas para los cuales es posible usar Simutrans como apoyo. Algunos de ellos son ética en los negocios, conceptos de ciudadanía, visión real de una cadena de negocios permitiendo que la gente invierta y vea como se gana el dinero, nociones de sostenibilidad, educar en la gestión de recursos no renovables, explorando la historia y la geografía mediante el uso de mapas y partidas de Simutrans, estudios sobre modelas geográficos y económicos, aprendizaje de nociones de economía e inversión reales, gestión de recursos naturales, etc... el abanico de posibilidades es amplísimo como podéis comprobar.

En fin, son muchos los puntos de vista distintos y enormes las posibilidades de uso de este gran juego que es Simutrans como herramienta educativa, pero es cierto que como jugador no te das cuenta de ello hasta que viene alguien de fuera y aporta una nueva visión. Ojala me hubieran enseñado matemáticas, física o historia en el instituto o en el cole usando Simutrans... *suspiro* ¡sin duda hubiéra disfrutado más de las clases!... ;)

Referencias:
  1. Laboratorio de Economía con Simutrans (OSNV)

  2. Information Technology in Languages for Specific Purposes
    Issues and Prospects (Deborah Healey)

  3. Simutrans en las Aulas


1/1/09

Muestra tu mejor cara con Ambient Occlusion

Tras aprender a modelar, una de las siguientes cosas que te planteas es como mejorar la calidad de las imágenes renderizadas. Hay diversas técnicas como renderizar al doble de tamaño, usar OSA, Global Ilumination, etc.. pero sin duda una de las técnicas básicas a la que más partido se puede sacar es Ambient Occlusion (AO).

Leer más...


Esta técnica lo que hace es añadir luz o energía a la escena, aunque esta no tenga ninguna fuente de luz (lamp, sol, spot,etc..) presente. Tiene en cuenta los ángulos, bordes y distancias de los objetos de la escena para generar las sombras que estos proyectan.

Para activa AO en Blender, es tan fácil como pulsar F8, ir a world settings, localizar la pestaña Amb Occ y pulsar en el botón Ambient Occlusion. Aparecerá un panel parecido a este:

Podeís probar a renderizar cualquier escena, y comprobareís que AO es capaz no solo de añadir luz, sino de subtraerla de la escena, o hacer ambas operaciones al mismo tiempo. En la imagen se pueden apreciar las diferencias entre Add (añadir) y Sub (substraer).

En el primer caso la imagen siempre tiene más luz, mientras que en el segundo caso aparece más oscura. Si se combinan ambas pulsando Both, obtenemos el término medio. Si en vez de Plain, activamos Skycolor, el objeto se verá afectado por el color del cielo/ambiente de la escena. Si optamos por Sky texture se verá afectado por la textura que hayamos usado para el cielo/ambiente de la escena.

Para reducir la granularidad de la imagen debemos modificar el parámetro Samples. A mayor cantidad de samples, más tarda el renderizado en llevarse a cabo, pero el efecto de AO es más suave. El máximo es 32, pero un valor adecuado para versiones finales es entre 10 y 15.

Los siguientes parámetros son los relacionados con las distancias Max Dist y User Fallof, los cuales te pueden dar más de un dolor de cabeza ya que son complicados de ajustar para obtener buenos resultados. Estos parámetros establecen el radio de efecto de la AO para cada cara de cada objeto presente en la escena, es decir que si estableces que Max Dist es igual a 10 unidades, toda superficie de cada cara que esté dentro de un radio de 10 unidades se verá afectada por la AO.

La opción User Fallof especifica la longitud y potencia de las sombras que arrojen los distintos objetos de la escena. A mayor valor, más suave aparecerá la imagen, aún así no hay que pasarse. Un valor recomendado sería 0.450.

Por último existen dos menús desplegables que te dan acceso a los distintos métodos para generar la luz y las sombras resultantes de aplicar AO. En el primer caso tenemos dos métodos a elegir: Raytrace que es más lento pero da mejores resultado y es más preciso cuando la imagen tiene ruido, y Approximate que es más rápido pero menos preciso.

En el segundo menú desplegable tenemos los distintos métodos para generar las sombras con AO: Constant QMC que da la mejor calidad y Adaptative QMC que es mejor para áreas con alto contraste.

¿Y es posible obtener más control sobre la cantidad de luz que aplica esta técnica? Bueno, es posible que no desees que ciertas partes del objeto se vean afectadas en menor medida. Para ello deberá modificar la cantidad de iluminación global del ambiente que recibe el material del objeto. Puedes acceder a ello pulsando F5 (Shading) >> botón Material Buttons >> pestaña Shaders >> control Amb.

Si quieres obtener aún más control puedes aplicar mapas de texturas de ambiente al objeto en el mismo lugar que la opción anterior, pero esta vez busca la pestaña Map to y marca la opción Amb.

Como podeís observar, esta es una técnica muy útil para aumentar considerablemente la calidad de las imágenes renderizadas con poco esfuerzo y sin perder defición. Merece la pena probarla.