top of page
Tecnología
Artículos técnicos sobre Unity, el multijugador, los servidores, el autoalojamiento, el código abierto, las compilaciones y las herramientas de desarrollo.
Por qué la nueva versión se llama 2026.7.19 y no 0.9.2 🗓️
Quien se actualice hoy salta de la versión 0.9.1 a la 2026.7.19. Parece una errata y es una decisión deliberada: hemos cambiado nuestro esquema de versiones, de versiones “semánticas” a versiones basadas en la fecha (año.mes.contador). Aquí está el porqué. El esquema antiguo respondía a preguntas que nadie hace. El versionado semántico (0.9.1, 1.2.3 …) viene del mundo de las bibliotecas de software. Allí es estupendo: el primer número promete “no se rompe nada”, el segundo “s
Marcel Dütscher
28 jul2 min de lectura
Ordenando la casa: cómo por fin usamos bien la caché de GitHub 🧹
En la última entrada técnica medimos lo que realmente cuesta nuestra cadena de compilación y comprobación, y descubrimos que no es dinero, sino tiempo de espera y almacenamiento. Aquel artículo terminaba con “la limpieza está planificada, pero todavía no hecha”. Resultó ir más rápido de lo esperado: desde el mediodía de hoy está en la rama principal. Aquí van los números. Primero el resultado. El uso de caché de nuestro repositorio ha bajado de 5,32 GB en 63 entradas a 2,46 G
Marcel Dütscher
27 jul4 min de lectura
Mil compilaciones al mes, y ninguna nos cuesta nada ⚙️
Primero, una corrección. La primera versión de este artículo afirmaba que se nos habían agotado los minutos de compilación de GitHub y que eso nos obligaba a pasar a una cuenta Pro. Era falso, y de una forma que un solo vistazo a la documentación habría aclarado: para los repositorios públicos, los minutos de compilación de GitHub son gratis. Los artefactos y las cachés, también. Nuestro repositorio es público desde finales de mayo, así que nunca hemos pagado un solo minuto n
Marcel Dütscher
26 jul4 min de lectura
SignPath dijo que no: nuestras compilaciones para Windows siguen sin firmar por ahora
Hace unos días te contamos aquí en el blog que habíamos solicitado al programa gratuito para código abierto de la SignPath Foundation un certificado de firma de código para nuestros instaladores de Windows. Ya ha llegado la respuesta, y es un no. Como este devblog no va solo de celebrar éxitos, sino de contar con sinceridad cómo va de verdad un proyecto así, esta noticia también tiene su sitio aquí. Un breve recordatorio: ¿de qué iba esto? Los programas de Windows sin firmar
Marcel Dütscher
15 jul2 min de lectura
Nuestro GitHub ahora habla: el podcast automático de desarrollo 🎙️
El desarrollo de Blocks Beyond The Stars se hace completamente a la vista de todos en GitHub: cada commit, cada pull request y cada versión se pueden leer allí. Pero seamos sinceros: ¿quién se pone a repasar una lista de commits por la noche? A partir de ahora hay una opción más cómoda: puedes hacer que te lean en voz alta las novedades del proyecto. Nuestro GitHub tiene ahora su propio podcast. ¿Qué es Podlog? Podlog es un servicio que observa un repositorio de GitHub y lo c
Marcel Dütscher
13 jul2 min de lectura
Firma de código gratis para el código abierto: nuestra solicitud a SignPath 🔏
Si instalas nuestro juego en Windows, quizá conozcas este momento: «Windows protegió su PC». SmartScreen avisa de un «editor desconocido» y primero tienes que hacer clic en «Más información → Ejecutar de todas formas». No es un virus; simplemente nuestros instaladores todavía no están firmados. Queremos que ese aviso desaparezca, sin tener que comprar un certificado caro. El problema de los certificados de firma de código. Un certificado de editor para Windows (OV o EV) cuest
Marcel Dütscher
12 jul2 min de lectura
Del tag de Git al servidor en vivo: nuestra cadena de publicación
Hoy, publicar una versión de Blocks Beyond The Stars consiste en un único comando: hacer push de un tag de Git. Todo lo demás lo hace la máquina. En este artículo te enseño nuestra cadena de CI/CD, y por qué el esfuerzo vale la pena incluso para un proyecto de afición. El flujo de publicación. En cuanto se sube un tag como v0.7.4, GitHub Actions construye el paquete completo: instaladores para Windows (setup, portable, MSI), una compilación para Linux, una compilación WebGL p
Marcel Dütscher
7 jul2 min de lectura
Mantenimiento del servidor sin echar a los jugadores
¿Qué les pasa en realidad a los jugadores cuando tenemos que actualizar el servidor? La respuesta fácil sería: desenchufar. Nosotros construimos la respuesta buena, y es una de mis funciones favoritas, aunque en el mejor de los casos apenas se nota. El aviso. El servidor puede enviar un mensaje de mantenimiento a cada mundo en marcha. En el juego aparece entonces un banner con cuenta regresiva: “Reinicio del servidor en 10 minutos”. El mensaje hay que cerrarlo a mano, pero so
Marcel Dütscher
6 jul1 min de lectura
Contraseñas, límites de intentos y cuentas sin correo electrónico
A Blocks Beyond The Stars también juegan niños. Eso no solo marca el diseño del juego, sino también la seguridad técnica que hay detrás. Tres ejemplos. Cuentas sin correo electrónico, a propósito. Para tener una cuenta de jugador con nosotros no hace falta una dirección de correo. No es una función que falte, es una decisión: queremos la menor cantidad posible de datos personales, sobre todo de los jugadores jóvenes. Lo que no guardamos no se puede perder. (La otra cara de la
Marcel Dütscher
6 jul1 min de lectura
Un VPS pequeño como flota de servidores de juego
Todos nuestros mundos en línea (el portal, los mundos oficiales, los mundos creados por los jugadores) funcionan en un único servidor Linux alquilado (VPS). Sin centro de datos, sin una factura de nube de cinco cifras. En este artículo te enseño cómo está montado el servidor y qué aprendimos por el camino. Primero, blindarlo. Antes de que el juego pudiera entrar en el servidor, tocaba la seguridad básica: un cortafuegos (ufw) que solo abre los puertos necesarios, fail2ban con
Marcel Dütscher
5 jul2 min de lectura
Cómo funcionan nuestros mundos alojados
Tu propio mundo en internet, al que tus amigos pueden unirse cuando quieran, sin que nadie tenga que montar un servidor. Esa es la idea de nuestros mundos alojados, y en este artículo te enseño qué pasa de verdad detrás del botón “Jugar” del portal. El corazón de todo es el WorldHost: un pequeño servicio en nuestro servidor que gestiona los mundos. Cada mundo corre en su propio contenedor Docker, totalmente aislado, con su propia partida guardada, su propio límite de memoria
Marcel Dütscher
5 jul2 min de lectura
Entre bastidores: cómo hicimos 28 videos de YouTube en 30 minutos 🎬
Cómo un papá, un niño y una IA convirtieron un montón de grabaciones de partidas sin editar en dos listas de reproducción completas, sin pasar ni una sola hora en un editor de video. Por fin Blocks Beyond the Stars está en YouTube: 22 Shorts y 6 videos más largos de Let's Play y tutoriales. ¿Y sabes qué? Vale la pena contar cómo se hicieron, porque la “edición” propiamente dicha llevó una media hora. Aquí tienes todo el proceso. Paso 1: Justus le da a grabar 🎮 Todo buen vide
Marcel Dütscher
2 jul3 min de lectura
Más de 1000 pruebas para un juego hecho por hobby: ¿un derroche?
Nuestro proyecto ya tiene bastante más de mil pruebas automatizadas: unas 990 en el lado del servidor y unas 120 en el cliente de Unity. Para un proyecto familiar, suena exagerado. Es justo lo contrario, y aquí va el porqué. Las pruebas son nuestro segundo desarrollador. En un proyecto en solitario no hay nadie que diga en la revisión de código: «Espera, eso rompe la fabricación». Las pruebas son ese compañero. Cada mecánica de juego (recetas, oxígeno, hambre, comportamiento
Marcel Dütscher
2 jul2 min de lectura
Un juego de vóxeles en el navegador
Blocks Beyond The Stars no solo funciona como programa para Windows y Linux, sino también directamente en el navegador: sin instalación, basta con un clic en el portal. El camino hasta ahí nos enseñó más de lo que esperábamos. Unity WebGL es un mundo aparte. Unity puede exportar a la web desde hace mucho, pero el diablo está en los detalles. Nuestro mayor tropiezo: en el navegador no hay hilos en segundo plano de verdad, como en la build nativa. Nuestro sistema de terreno nor
Marcel Dütscher
30 jun2 min de lectura
El día en que nuestros shaders desaparecieron de la build
En el editor de Unity, todo se veía perfecto. En la build final: superficies rosas y efectos que faltaban. Te presentamos una de las trampas más traicioneras de Unity… y a algunos de sus parientes. El shader stripping. Al compilar, Unity descarta todo lo que en apariencia no se necesita, shaders incluidos. El problema: si cargas shaders en tiempo de ejecución con Shader.Find() (como hacemos nosotros con nuestros más de 20 shaders propios para agua, atmósfera, hologramas y más
Marcel Dütscher
27 jun2 min de lectura
Luz en un mundo vóxel: ¿luces reales o flood fill?
Un jugador coloca una lámpara en su base. ¿Qué pasa a nivel técnico? Esta pregunta inocente nos llevó a una decisión de fondo, y la respuesta es un buen ejemplo de que la solución «más moderna» no siempre es la mejor. Opción A: luces reales de Unity. Cada bloque luminoso se convierte en una fuente de luz puntual y el motor lo calcula todo. Se ve genial, pero no escala. Un mundo vóxel puede tener cientos de bloques luminosos a la vista; tantas luces puntuales en tiempo real ha
Marcel Dütscher
27 jun2 min de lectura
100 % generado con IA: nuestro flujo de trabajo con Unity 6, .NET 8 y Python
Una de las preguntas que más nos hacen es: ¿cómo se construye exactamente un juego vóxel multijugador complejo solo con IA? La respuesta corta: con pautas muy estrictas. La IA es fantástica escribiendo código, pero enseguida pierde de vista la arquitectura en su conjunto. Por eso, desde el primer día, impuse una arquitectura cliente/servidor estricta. Nuestra tecnología de un vistazo: Cliente: Unity 6 para el renderizado, la entrada y el mallado de vóxeles. Servidor: servidor
Marcel Dütscher
26 jun1 min de lectura
La renovación gráfica: más look sin cambiar de motor
En algún momento el diagnóstico honesto quedó sobre la mesa: el juego se jugaba bien, pero parecía un prototipo. En lugar de mirar de reojo otro pipeline de renderizado, o incluso otro motor, nos hicimos una sola pregunta: ¿cuánto look sigue escondido en el URP de Unity si de verdad lo llevas al límite? La respuesta: muchísimo. Antialiasing (SMAA). Los mundos de bloques están hechos de bordes, y los bordes que parpadean arruinan cualquier captura. El SMAA los suaviza sin volv
Marcel Dütscher
26 jun1 min de lectura
De MIT a AGPL: por qué cambiamos la licencia
Blocks Beyond The Stars es de código abierto, y lo ha sido desde el principio. Pero la licencia sí la cambiamos a fondo por el camino: de la permisiva licencia MIT a la AGPL-3.0. Aquí va el porqué. Lo que habría significado MIT: con MIT, cualquiera puede tomar nuestro código, modificarlo y revenderlo como producto cerrado, sin devolver nada. Para bibliotecas, eso suele ser justo lo correcto. Para un juego completo con servidores, no nos parecía bien: alguien podría haber toma
Marcel Dütscher
25 jun1 min de lectura
Texturas y sonidos hechos con IA en nuestro flujo de assets
Blocks Beyond The Stars no tiene artista gráfico ni diseñador de sonido. Aun así, cada bloque nuevo recibe su propia textura y cada función nueva, su sonido. Nuestra herramienta para eso: la IA generativa, con un flujo de trabajo claro a su alrededor. Texturas. Las texturas de los bloques nuevos se crean con modelos de imagen de OpenAI. El prompt describe el material, el estilo y la estética vóxel del juego; el resultado se ajusta al tamaño de una casilla y se coloca en nuest
Marcel Dütscher
23 jun2 min de lectura
bottom of page