1 puntos por GN⁺ 2024-11-09 | 1 comentarios | Compartir por WhatsApp
  • Foro de TIGSource

    • TIGSource abrió un servidor oficial de Discord.
    • En el foro hay varios temas y debates, y muchos miembros están participando.
  • Return of the Obra Dinn

    • Se está llevando a cabo una discusión sobre el estilo gráfico del juego y los problemas de dithering.
    • Hay intentos de resolver el problema del parpadeo renderizando a alta resolución y luego reduciendo la escala.
    • Se debate un método para dar estabilidad al movimiento fijando el patrón de dithering.
  • Proceso de dithering

    • Obra Dinn pasa por un proceso de renderizado en escala de grises de 8 bits y luego conversión a 1 bit.
    • Usa dos patrones de dithering para ofrecer diversos efectos visuales.
    • En las imágenes en movimiento, el patrón de dithering puede causar problemas.
  • Estabilización del dithering

    • Se investiga un método para aumentar la estabilidad fijando el patrón de dithering a la geometría.
    • Se están probando varios métodos de mapeo en un esfuerzo por encontrar el mejor resultado.
  • Conclusión

    • Resolver el problema del dithering tomó mucho tiempo, pero al final se solucionó manteniendo el estilo visual del juego.
    • Está previsto que el juego final ofrezca dos modos de visualización.

1 comentarios

 
GN⁺ 2024-11-09
Opiniones en Hacker News
  • Llevo más de 10 años haciendo programación gráfica y aun así no lo noté mientras jugaba. Considerando el lenguaje visual general del juego, me parece que esas 100 horas estuvieron muy bien invertidas.
    Con esto bien podría haber presentado un trabajo en SIGGRAPH sobre coherencia temporal en renderizado no fotorrealista.

    • La estabilidad del dithering sí se notaba claramente al mirar alrededor de la escena, pero no tenía idea de que hubiera requerido tanto trabajo. Después de leer esto, creo que voy a admirarlo mucho más de ahora en adelante.
  • Para quienes no lo sepan, Return of the Obra Dinn y Papers, Please son ambos juegos de Lucas Pope, y se consideran clásicos indiscutibles que han ganado varios premios.
    Vale mucho la pena echarles un vistazo incluso si normalmente no disfrutas mucho los videojuegos. Ninguno de los dos es un juego típico.

    • Papers, Please es una obra maestra. Con Obra Dinn creo que hice algo mal: después de que apareció muy poca historia como para cruzarla con otras pistas, dejó de darme pistas.
    • Papers, Please es uno de mis juegos favoritos de todos los tiempos. Incluso hice flashcards para memorizar información clave y practiqué repetidamente para mejorar mis habilidades de inspección.
      No hay muchos juegos que me hayan llevado tan lejos. No he probado Obra Dinn porque su estilo artístico no me atraía, pero si te gustan los juegos de deducción, también vale la pena revisar Curse of the Golden Idol. Está bastante cerca de estos juegos en términos de creatividad y es muy divertido.
    • En su sitio web hay muchos proyectos geniales hechos en game jams. Son ideas realmente divertidas y creativas, y varias terminaron convirtiéndose en juegos completos.
    • He jugado shooters en primera persona desde Wolfenstein 3D, pero Return of the Obra Dinn fue el único juego que me provocó mareo.
      Aun así lo terminé.
  • El dithering fuerte de 1 bit es un tema realmente interesante. Incluso en 2D hay muchos enfoques, cada uno con sus ventajas, desventajas y compromisos.
    Sorprende que algo que fue central en la experiencia informática de los 80 sea, en el hardware moderno, bastante complicado. En mi proyecto[0] descubrí que es casi imposible mapear 1:1 los píxeles offscreen con el canvas que proporciona el navegador.
    [0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...

    • Todavía me da risa que una tarjeta nVidia bastante reciente tarde varios segundos en cambiar de resolución, mientras que una Atari de hace 35 años podía cambiar de resolución varias veces dentro de un solo refresco de pantalla.
      Un juego simple que hice antes usaba visualización en color de baja resolución en 3/4 de la pantalla, y en la parte inferior usaba 4 colores con el doble de resolución horizontal para meter más texto. Así que cambiaba de resolución 120 veces por segundo sin que la CPU se ralentizara mucho.
  • Ninguno de los enfoques propuestos parece funcionar muy bien, y este problema se ve mucho más complejo de lo que parece.
    Lo que podría tener posibilidades de funcionar correctamente sería usar un patrón de dithering “fractal” para que el acercamiento y alejamiento sean suaves e invariantes a la escala; procesarlo en espacio de texeles para que tanto el movimiento de la cámara como el de los objetos funcionen bien; o aplicar filtrado bilineal o supermuestreo del patrón de dithering y luego ejecutar algún tipo de pasada de difusión de error en espacio de pantalla mediante un shader de cómputo.
    Aun así, no estoy seguro de que funcione bien en la práctica. Si eso no basta, también parece posible hacer primero un procesamiento simple en espacio de pantalla, luego remapear el resultado al espacio de texeles preservando la resolución, y en el siguiente frame usar la información en espacio de texeles para producir una solución compatible en espacio de pantalla, para después mapearla otra vez al espacio de texeles. Sería una forma de acumular progresivamente en runtime un patrón fractal por texel. Puede que esto sea lo mejor, pero parece muy caro en memoria, cómputo y complejidad.

    • Hasta la semana pasada, ya había logrado que el enfoque fractal funcionara bastante bien.
      https://x.com/dgant/status/1851840125065453894
      https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...
      Funciona usando dithering en espacio de mundo, aplicando dithering 2D a superficies con mapeo triplanar, eligiendo la escala de coordenadas según la profundidad para que el patrón de dithering quede en el rango [1px, 2px), y pintando las superficies lo suficientemente lejanas con coordenadas esféricas. En los umbrales de profundidad algunas partes se repintan, pero en la práctica no molesta demasiado.
  • Para quienes tengan interés, investigué un poco más y encontré los devlogs que él publicó antes sobre este tema [1] [2].
    Me llamó especialmente la atención la parte sobre un algoritmo de escalado llamado Scale2X, y está bastante genial [3].
    [1] https://forums.tigsource.com/index.php?topic=40832.260
    [2] https://forums.tigsource.com/index.php?topic=40832.msg121719...
    [3] https://www.scale2x.it

  • Me encanta que esta persona comparta todo en el foro.
    Recuerdo haber visto el trabajo inicial de Papers, Please, y hay algo muy valioso en compartir el proceso de trabajo y exponerse al feedback.

    • Creo que hace falta tener cierto público mientras trabajas. Si no, se siente como gritar al vacío.
    • Tigsource es un tesoro de información y documentos de diseño. Muchos juegos famosos, como Spelunky y Dead Cells, también nacieron ahí.
  • Discusión de aquella época: https://news.ycombinator.com/item?id=15766249

  • Es uno de los mejores artículos sobre dithering que he visto hasta ahora. Yo trabajé en el dithering en blanco y negro de Return to Dark Castle.
    Quería usar dithering de Atkinson, pero por la forma en que los valores de píxeles vecinos se propagan entre sí era difícil implementarlo en un shader, y en ese momento también estaba con mucho estrés y cansancio. Creo que no se me ocurrió fijar el patrón al offset de la escena, así que en niveles con desplazamiento, como las catacumbas o el paquete de helicóptero, probablemente había parpadeo. Quizá sí lo hice, pero no lo recuerdo. En cualquier caso, excelente.

  • Hace poco lo conseguí en GOG e intenté jugarlo en una 5K Studio Display, pero no pude lograr que esos hermosos píxeles no se vieran borrosos. Una verdadera lástima.
    Revisé todos los menús de configuración.

    • Hay que encontrar una forma de mostrarlo con letterboxing a una resolución que sea un múltiplo entero de la resolución del juego.
  • Como dato divertido, el soundtrack de este juego está aquí:
    https://www.youtube.com/watch?v=8qvdAWLcPyU