Sonic 06: los efectos que Sonic Team apagó por rendimiento

¿Por qué Sonic 06 se ve tan plano si su motor tiene de todo?

El shader más usado en todo Sonic 06 solo calcula iluminación por vértice: no admite sombras en cascada ni luces puntuales. Esa es la razón por la que buena parte del juego se ve plana, y también la razón por la que el desglose técnico que se publicó esta semana funciona como clase magistral de deuda técnica para cualquier equipo que haya apagado una función para llegar a la fecha de entrega.

Isaac Marovitz, mientras trabajaba en el proyecto Marathon Recompiled, desarmó el sistema de renderizado del título y documentó algo que los jugadores intuyen desde hace años: Crisis City tiene reflejos, partículas y luz dramática, mientras que Castle Town se ve tan vacía que el propio autor admite que lo deprime.

El motor no era pobre. Lo que pasó es que buena parte de sus capacidades quedó desactivada.

¿Y esto cómo se aplica en tu negocio?

En CAR, dueños de empresa de Latinoamérica y España usan la tecnología para ser más rentables. Empiezas con una ruta de 7 días y terminas con un sistema funcionando en tu negocio.

👥 Probar 7 días

Los efectos que Sonic Team apagó siguen dentro del disco

En el material de las versiones beta se ven efectos que nunca llegaron al juego final: Kingdom Valley tenía bump maps completos, Castle Town tenía geometría y vegetación más complejas, y la colisión de New City sugiere un layout de edificios distinto en algún punto del desarrollo.

El hallazgo central es que casi todo ese contenido recortado sigue dentro del juego: no se borró, se desactivó por razones de rendimiento. Incluso con los recortes aplicados, el título no alcanzaba el FPS objetivo en hardware real, y Sonic Team arrastraba el crunch para sacarlo a la calle. Las funciones visuales fueron de lo primero que se cayó.

El detalle clave está en cómo se apagan las cosas. El juego usa dos shaders, Terrain y Billboard, cada uno con variantes numeradas del 00 al 07. Cuanto más alto el número, mejor el set de características: iluminación por píxel en lugar de por vértice, soporte de sombras en cascada (CSM), luces puntuales y mezcla de dos texturas. Ahora adivina cuál es la variante más usada del juego: Billboard02, que apenas tiene iluminación por vértice, sin CSM y sin luces puntuales.

Cambiar de variante no es tan simple como parece. Los layouts de entrada y salida difieren entre versiones, y los materiales definen sus texturas en archivos .xno. Puede que algunos de esos archivos ni siquiera referencien sus mapas de normales o bump, aunque sigan guardados en el disco.

Sombras: cuatro cascadas que el presupuesto fue recortando

El motor está armado para un máximo de cuatro cascadas de sombras, que dividen el frustum de la cámara por distancia para mantener relativamente constante la cantidad de píxeles usados en resolverlas. La asignación la definen dos funciones, GenerateCSMLevels y GenerateCSMObjects, y ahí aparece otro recorte de última hora: la mayoría de las áreas usa las cuatro cascadas, pero en el nivel interno twn_a y en algunos niveles de prueba las de terreno bajan a 3 y las de objetos a 2, lo que acorta de forma significativa la distancia a la que se proyectan las sombras. En multijugador el recorte aplica en todas partes.

Los problemas no terminan ahí. Las sombras sufren shadow acne severo porque falta el pequeño valor epsilon que suele corregir ese artefacto. Y algunos objetos quedan marcados mal: la tabla de snowboard de Sonic en Crisis City no proyecta sombra, y la falda de Elise pierde la suya en una cinemática.

Luces puntuales: el límite de 2 que Flame Core ignoró

El sistema de iluminación tiene luces ambientales fijas por objeto y varias luces puntuales pensadas para detalles pequeños, como antorchas. No proyectan sombras y son baratas de renderizar, pero Sonic Team las limitó a dos por objeto: literalmente no hay espacio en los inputs del shader para más.

El límite no sería problema si el diseño de niveles lo hubiera respetado. Kingdom Valley lo hace. Flame Core y Dusty Desert intentan renderizar 8 o más luces por objeto, y el renderer se confunde: las luces compiten por prioridad y algunas aparecen o desaparecen de forma semialeatoria.

Peor aún, la optimización general que asignaba luces a objetos cercanos falló por algún detalle en el chequeo. El autor sospecha que el límite se bajó tarde en el desarrollo y que migrar objetos de iluminación por píxel a por vértice cambió el área de contribución de cada luz. El resultado: las luces puntuales casi nunca funcionan en el juego original, incluso en niveles que respetan el límite.

Reflejos en tiempo real y el peaje del multijugador

Sonic 06 sí tiene reflexiones planares en tiempo real y funcionan bien, aunque limitadas a un cuarto de la resolución del framebuffer. El problema está en el modo multijugador: para no renderizar reflexiones costosas dos veces, el equipo las eliminó y las reemplazó por cubemaps estáticos. Kingdom Valley pasa de verse excelente a parecer un pantano deprimente.

La solución parece obvia, pero el render graph se construye con scripts de Lua distintos por modo: render_gamemode.lua incluye la llamada a RenderReflection() y render_gamemode_multi.lua no. Copiar el script no alcanza, porque el renderer multijugador arma el split-screen con dos framebuffers y necesita un grafo capaz de dibujar ambos.

La recompilación destapa lo que el crunch enterró

Parte de estos problemas ya está resuelta de forma parcial en el proyecto de recompilación, sobre todo el parcheo de la optimización que rompía las luces puntuales. El autor aclara que todavía no domina las ediciones de shaders necesarias para recuperar el nivel de las versiones beta, pero sostiene que entender el backend del juego alimenta directamente los parches futuros.

Ese trabajo no es un caso aislado. El movimiento de recompilación estática creció rápido. IGN cubrió el port no oficial Sonic Unleashed Recompiled, que corre nativo en PC en lugar de emulado, con soporte de alta resolución, framerate desbloqueado y mods, exige tener la copia original del juego de Xbox 360 y llegó 17 años después del lanzamiento original, según ese medio. Android Authority reportó en marzo de 2025 que las herramientas XenonRecomp y XenosRecomp abrieron la puerta a los ports de la séptima generación, con Sonic Unleashed como primer caso. DSOGaming detalló que ese equipo escribió un renderer nuevo desde cero, con multithreading, bindless textures, especialización de shaders y optimizaciones específicas de shadow maps.

En el frente de Nintendo, XDA Developers describe cómo N64: Recompiled, la herramienta de Mr-Wiseguy, traduce código máquina a C compilable para plataformas modernas; según Ars Technica, citado por ese medio, es "la diferencia entre semanas de trabajo y años de trabajo". El decompilado de Super Mario 64, el proyecto que inició esta ola, arrancó alrededor de 2018 y tardó unos dos años en alcanzar su hito de coincidencia. Android Authority reportó en enero de 2026 el lanzamiento de Banjo: Recompiled, con mods que se instalan arrastrando y soltando archivos, y que el port de Majora's Mask ya supera los 120 mods creados por la comunidad. TweakTown informó además que GoldenEye 007 quedó decompilado al 100% de la mano de KholdFuzion, con un port nativo en camino.

Traducción para un negocio: todas estas personas reconstruyen, por afición y sin respaldo corporativo, la documentación que las empresas nunca escribieron.

¿Qué significa esto para tu startup?

Sonic 06 es un caso extremo de algo que pasa en cualquier producto digital: lo que apagas por presión de entrega no desaparece, queda como inventario oculto con un costo de mantenimiento y un motivo que nadie recuerda.

  • Audita tus funciones apagadas. Haz una lista de todo lo que está detrás de un interruptor en producción, con fecha, dueño y motivo del apagado. El código de Sonic 06 conserva los efectos, pero nadie dejó la nota de por qué se cortaron; reconstruir ese contexto demandó años de trabajo comunitario.
  • Revisa tus valores por defecto como si fueran el shader principal. La variante más usada del juego era una de las peores, y eso definió la experiencia de todo el producto. Tu plan por defecto, tus límites de API y tus plantillas operan igual: la mayoría de tus usuarios nunca los cambia.
  • Verifica funcionalidad después de cada optimización. La optimización de luces puntuales de Sonic Team estaba bien pensada y rompió justo lo que debía mejorar. Cualquier cambio de performance necesita una prueba de regresión funcional, no solo una medición de latencia.
  • Publica los límites técnicos donde los vean producto y diseño. El tope de dos luces por objeto era razonable; el problema fue diseñar niveles que pedían ocho. Si tu equipo de producto no conoce la cuota de la base de datos o el límite de webhooks, los va a romper sin querer.

Conclusión

Sonic 06 arrastra fama de lanzamiento apurado, y su código revela que buena parte de esa decepción no vino de falta de ambición técnica sino de falta de tiempo. El autor cierra pidiendo una reflexión sobre las condiciones en que Sonic Team tuvo que terminar el juego y deseando un feliz vigésimo aniversario anticipado.

Para un founder la lección es incómoda y directa: cada función que apagas para cumplir una fecha deja una deuda que alguien pagará después, probablemente sin ti y sin tus notas. La diferencia entre un recorte gestionado y una pérdida permanente no es técnica, es de documentación.

Fuentes

¿Y esto cómo se aplica en tu negocio?

En CAR, dueños de empresa de Latinoamérica y España usan la tecnología para ser más rentables. Empiezas con una ruta de 7 días y terminas con un sistema funcionando en tu negocio.

👥 Probar 7 días

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...