miércoles, 16 de marzo de 2022

Demos, Rust, Raytracing y Rasterizer

Seis años después, me he mudado, he cambiado de trabajo y las niñas están grandes y ya no necesitan tanta atención. Vuelvo a programar por diversión, igual que antes y retomo este blog. 

Desde hace unos años, todas las navidades hago una pequeña demo para mí y mis amigos. En el 2018 usé Godot, en 2019 fue Unreal, en 2020 Godot otra vez y e 2021 usé la librería raylib. Estas navidades que vienen voy a intentar algo loco. Quiero aprender rust de una vez y desde hace mucho tiempo quequiero intentar hacer un pequeño motor 3D.

Gracias a Humble Bundle, tengo el libro "Computer Graphics from Scratch", que enseña a programar un una aplicación de ray-tracing y otra de rasterización . Mi idea es implementar estas dos ideas en rust.

Pero antes, tengo que coger soltura en rust y para eso, estoy leyendo y repitiendo los ejemplos del libro "The Rust Programming Language". Acabo de empezar el capítulo sobre la posesión ("ownership") de la memoria y de momento lo entiendo bien. Ya veremos. 

viernes, 15 de julio de 2016

Sigo vivo.

La vida, mi vida, es cambio.

Han cambiado muchas cosas desde la última vez que escribí algo por aquí y hay muchas más que van a cambiar.

Laboralmente, me he alejado de la administración de sistemas para meterme de lleno en el mundo Hadoop. Además, me he desvinculado de la producción para adentrarme en el diseño y arquitectura de sistemas Big Data.

Para mi trabajo, estoy aprendiendo Python y Java para poder programar con el framework Apache Spark. Y para mis jueguecillos, esto del Rust tiene muy buena pinta.

Otra cosa interesante que he visto es que el microprocesador MOS 6502 (la CPU del Commodore 64) sigue fabricándose hoy en día. Estoy planteándome hacer mi propio ordenador.

Y por último y no menos importante, me voy a cambiar de casa. La venta de mi actual vivienda y la compra de la que queremos va a ocuparnos bastante tiempo a mí y a mi familia.

Yo creo que para diciembre podré empezar de nuevo a hacer cosas interesantes.

martes, 30 de diciembre de 2014

Volveré.

Lo prometo.
Tengo en la cabeza un par de mini-proyectos para mis hijas. La nueva librería SDL tiene buena pinta.
Y además estoy aprendiendo un poco de Java.

sábado, 17 de agosto de 2013

¿Quién tiene el pez?

    Muchas cosas pasando en la vida. Y la vida obliga a abandonar unas cosas por otras. Por ejemplo, "The Aberrant", "Teclas Divertidas" para Mac, "Formula Retro" han sido abandonados y ahora me dedico a mi familia.
   
    Pero de vez en cuando no puedo resistir hacer algo. Lo que sea. Sólo por refrescar un poco mis pocas habilidades de programación.

    Volviendo a visitar la web de mi antiguo compañero Ximito, me he encotnrado con esta adaptación del acertijo atribuido a Einstein: http://www.2ddepot.com/games/whoownsthefish/ Intenté resolverlo, pero me rendí pronto.


    Así que pensé que tenia bajo mis dedos una máquina capaz de probar millones de combinaciones en segundos y que había que utilizarla. El resultado es este proyecto que he completado en unas horas. El método es una simple búsqueda de todas las permutaciones posibles por fuerza bruta.

    Aquí está el código fuente: http://sourceforge.net/projects/whoownsthefish/files/latest/download

miércoles, 8 de agosto de 2012

Tutorial: Incluir el framework libSDL en tu app con XCode 4

Nuestro objetivo es incluir el framework con la librería SDL en la aplicación para no tener que obligar al usuario a instalarlo en /Library/Frameworks. De paso, explico cómo crear desde cero una aplicacion SDL en Mac.
Primero creamos una nueva aplicación Cocoa:
Vamos a llamar a nuestra aplicación "pruebaSDL2".
En este momento tenemos una aplicación COCOA Normal y corriente. Primero copiamos el framework de SDL al directorio que contiene nuestro proyecto. Simplemente arrastramos el framework con el ratón.
La aplicacion sólo tiene un target. Buscamos la sección de enlace con los frameworks y añadimos uno más.
Seleccionamos el framework que acabamos de copiar en el directorio de nuestro proyecto.
Quedando de esta manera.
Si ahora compilamos e intentamos ejecutar nuestra aplicación, obtenemos este error en la ejecución. El cargador de librerías de MacOs no es capaz de encontrar la librería SDL contra la que hemos enlazado.


Volvemos a buscar nuestro único target y entramos en la sección de fases de construcción "Build Phases". Añadimos una fase más de copia de ficheros. Cambiamos el destino de la copia a "Frameworks" y añadimos nuestro framework de SDL.

Ahora especificamos el camino que debe buscar el cargador de librerías dinámicas en tiempo de ejecución. Buscando un poco en Google, encontré este post, que lleva a este otro enlace que explican bastante bien lo que hacemos en este paso. Resumiendo, lo que hacemos es poner el valor "@loader_path/../Frameworks" en la variable @rpath.

Ahora vamos a sustituir el código por defecto por el código necesario para crear una ventana SDL. Primero borramos del proyecto los ficheros que crean la ventana Cocoa.
Y a continuación añadimos los ficheros del directorio "devel-lite" que viene con el framework que nos bajamos de la pagina oficial.
Nos aseguramos de marcar "Copy to destination..." y de que añadimos los ficheros al target del proyecto.
Creamos un nuevo "main.c" con la opción "New File..." del menú "File" y eligiendo el tipo "C file". En este fichero programamos nuestra función main. Yo he copiado y pegado el código de este ejemplo que he encontrado.
Al intentar compilar veremos que tenemos un par de errores por que no encontramos el fichero "SDL.h" en los includes.
Yo me he limitado a cambiarlos a "SDL/SDL.h".
Ya tenemos nuestro ejemplo SDL funcionando con la librería SDL incluida en el directorio app que genera la compilación.

martes, 7 de agosto de 2012

Teclas Divertidas para Mac.

Me he propuesto portar a Mac Os X mi Teclas divertidas. De momento he instalado el XCode y he conseguido compilar una pequeña app con un ejemplo y el framework SDL incluido. Pronto más detalles.