3 puntos por GN⁺ 2025-05-08 | 1 comentarios | Compartir por WhatsApp
  • Se publicó el código fuente del juego indie de 2010 VVVVVV; el juego fue creado por Terry Cavanagh y la música estuvo a cargo de Magnus Pålsson
  • El código fuente de la versión de escritorio está en la carpeta desktop_version del repositorio
  • VVVVVV todavía se vende comercialmente, pero se pueden compilar builds libremente para uso personal
  • Para distribuir una versión compilada, se debe consultar el LICENSE.md del repositorio
  • Las discusiones sobre actualizaciones de VVVVVV se dan principalmente en el canal vvvvvv-code del VVVVVV Discord no oficial

Código fuente publicado

  • Este repositorio contiene el código fuente de VVVVVV, el juego indie de 2010 de Terry Cavanagh
  • El anuncio de la publicación del código fuente puede verse en el aviso del blog de Terry: announcement
  • El código fuente de la versión de escritorio está en la carpeta desktop_version

Condiciones de uso y distribución

  • VVVVVV todavía puede comprarse comercialmente en thelettervsixtim.es
  • Para uso personal, se puede compilar el juego directamente
  • Para distribuir una versión compilada del juego, se debe consultar LICENSE.md

Canal de discusión sobre actualizaciones

  • Las discusiones sobre actualizaciones de VVVVVV se realizan principalmente en el VVVVVV discord no oficial
  • El canal relacionado es vvvvvv-code

1 comentarios

 
GN⁺ 2025-05-08
Opiniones de Hacker News
  • Cuando fui con mi familia a London hacia el final de la secundaria, le escribí un correo a Terry Cavanagh porque quería ser desarrollador de juegos y, para mi sorpresa, aceptó de muy buena gana que almorzáramos juntos.
    Fue muy amable y me dio varios consejos de vida. Recuerdo que dijo que la mayoría de las ideas no surgen de una gran visión, sino de trastear y experimentar con mecánicas de juego. En fin, es una gran persona, y me alegra que haya liberado como open source VVVVVV, al que él llamaba V.

    • La parte de “la mayoría de las ideas se obtienen trasteando y experimentando con mecánicas” es importante. Demasiada gente piensa que las ideas nuevas solo salen de conceptos abstractos, pero también pueden surgir perfectamente al jugar con el propio medio.
    • Aprendí que dos frases son ciertas: si no preguntas, ni siquiera pueden decirte que no, y eso de “no conozcas a tus héroes” es un espejismo.
      Hay que conocer a unas cuantas personas realmente desagradables para poder reconocer bien a las que de verdad valen la pena.
    • Qué buena historia. Me da curiosidad si ese encuentro influyó después en la elección de carrera, si al final se volvió desarrollador de juegos, o si al menos lo intentó. Siempre es interesante cuando hay un desenlace.
    • Me da curiosidad cuál fue exactamente el consejo de vida que le dio.
  • Un juego realmente divertido. No soy de jugar muchísimo, pero recuerdo haber comprado el Humble Bundle para conseguirlo.
    Fue uno de los pocos juegos que terminé. Terry, gracias por el gran trabajo y por los buenos momentos. Y, de paso, veni vidi vici fue endemoniadamente difícil y me tomó un buen rato.
    https://www.youtube.com/watch?v=4CtiY5D6HCs

    • Compré el bundle y pensé: “mientras se descargan los juegos más pesados e interesantes, juguemos un rato a este juego de plataformas 2D liviano”, y al final le dediqué toda esa tarde.
    • Este video no logra capturar del todo la experiencia de apenas superar cada pantalla y aun así aterrizar del lado izquierdo.
    • Sí se disculpó. Había una pantalla que decía “I’m sorry” :P
    • Si no recuerdo mal, lo terminé tras unos cientos de intentos. Eso, en cierto modo, me preparó la paciencia para terminar el calabozo Pitioss de Final Fantasy XV.
      Mi novio de ese entonces fue quien me regaló VVVVVV, y estaba intentando una corrida sin muertes con todos los trinkets. No entendía cómo podía ser tan bueno en los juegos. Y todavía escucho seguido PPPPPP, la banda sonora de VVVVVV. En especial me gustan las pistas de stream de osu! relacionadas.
    • Compré los primeros Humble Bundle, y VVVVVV se quedó acumulando polvo en mi biblioteca de Steam desde entonces. Ahora tendré que probarlo.
  • Son artículos relacionados. Me pregunto si habrá otros.
    Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - enero de 2021
    Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - enero de 2020
    VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - enero de 2020
    VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - enero de 2020
    VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - marzo de 2011

  • En el comentario de Graphics::print_level_creator(...) se dice que muestra una cara en vez de “by {author}”.
    Las razones eran que “by” podría verse raro si no coincide con el idioma del autor; en otros idiomas podría volverse más largo y romper el límite existente del nivel; “by” y el nombre del autor podrían requerir fuentes que no combinen; también se evitan problemas gramaticales como género o declinaciones del nombre; tiene sentido representarlo con una cara; y, si a alguien le entristece esa decisión, una cara sonriente de todos modos le levantará el ánimo. Difícil refutarlo.

  • En el enlace del artículo, https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-..., se decía que la versión en C++ tiene muchas partes extrañas que solo se entienden recordando que primero se hizo en Flash y luego se portó a mano tal cual, con defectos incluidos.
    Por ejemplo, tenía la costumbre de declarar variables temporales como i, j y k como miembros de cada clase para no declararlas dentro de las funciones, porque en Flash declararlas dentro de una función era molesto por razones tediosas. Como resultado surgían bugs difíciles de rastrear y, en especial en el manejo de colisiones de entidades, varias funciones compartían la misma variable i, lo que incluso podía causar un bucle infinito. Suena realmente mal y confirma el prejuicio de que el código de juegos es un desastre.

    • A mí, por el contrario, me suena excelente, y confirma mi sospecha de que los programadores de juegos aprenden más que los programadores comunes.
    • Para anotarlo antes de que se me olvide: el código puede ser un desastre y aun así ser divertido. Es el caso de bugs interesantes que se crean y se descubren dentro de ideas nuevas.
      El código puede ser excelente pero aburrido. Como una app de calculadora bien escrita pero con una implementación insulsa. El código también puede ser un desastre y aburrido. Como un producto B2B con poco diseño, cientos de casos excepcionales y muchos bugs parecidos pero distintos en cada uno. El código puede ser excelente e interesante. Cosas como Doom.
    • ¿La gente de verdad hace esto? De pronto, tener que poner this. delante de todos los miembros en JavaScript me molesta muchísimo menos.
  • También quiero mencionar Super Hexagon, del mismo creador. Un juego extremadamente simple, pero de verdad divertido y muy adictivo.
    Recuerdo haber leído en algún lado que el creador lo hizo dedicándole apenas como un día. Y PPPPPP, el soundtrack de VVVVVV, también es genial.

    • Ya que hablamos de juegos del mismo creador, Dicey Dungeons también es muy divertido. Es parecido a un roguelike de construcción de mazos, pero usa dados en vez de cartas.
      Tiene como seis personajes únicos, varios desafíos por personaje, y las reglas van cambiando todo el tiempo, lo que te obliga a replantearte el juego. También tiene mucho humor, además de DLC gratuito y contenido de mods que todavía no he probado.
    • No sabía que Super Hexagon era del mismo desarrollador. Aunque es un tipo de juego totalmente distinto a VVVVVV, me pareció realmente divertido.
      Siempre es interesante cuando un desarrollador indie, después de un éxito inicial, cambia de rumbo hacia un género completamente nuevo, y de ahí han salido joyitas geniales. Por ejemplo, una trayectoria como Fallen London -> Sunless Sea -> Cultist Simulator.
    • No hay una forma más segura de entrar en estado de flow que jugar 10 minutos a Super Hexagon.
    • Estoy de acuerdo con esta recomendación. Es un juego en el que el proceso de aprendizaje es realmente divertido.
      Al principio parece imposible, pero el cerebro se adapta. Es como sentir que ves más allá de la Matrix.
    • Le dediqué una cantidad enorme de tiempo de mi vida a este juego.
      También se lo compartí a varias personas y las volví locas a todas. Creo que todavía debo tener unas 5 o 6 copias en mi inventario de Steam, por si acaso. Lo mismo con V, SMB, Braid y muchos otros juegos. A veces basta con una pequeña inspiración y gráficos toscos.
  • Hubo una época en la que acababa de mudarme de Canadá a California y necesitaba desesperadamente un trabajo, así que conseguí uno de ventas puerta a puerta en Comcast.
    Odiaba ese trabajo, así que a menudo me quedaba sentado en el auto evadiendo mis responsabilidades y jugando VVVVVV en el teléfono. Terry me dio un respiro por un rato.

  • Gran juego. Como corresponde a un indie de esa época, el código es un verdadero desastre, y eso está bueno de ver.

    • “Un verdadero desastre” es la expresión exacta. Mi parte favorita es la función Game::updatestate() de 3300 líneas y el enorme switch.
    • Originalmente fue escrito en Flash y luego portado a C++, así que eso explica parte del desastre. No todo, pero sí una parte.
    • Este código de verdad inspira. La lección es que poner la calidad del código en un pedestal no siempre es lo mejor.
    • Este código no tiene ningún problema. A eso se le llama desenrollado de bucles, y ayuda a mantener el rendimiento del juego.
  • Lo empaqueté para Zig, y con solo ejecutar zig build se puede jugar en Linux, macOS y Windows.
    https://github.com/allyourcodebase/VVVVVV

  • Confesó que, para no tener que declarar i, j, k cada vez que las usaba dentro de una función, las declaró en todas las clases, y que, como era de esperarse, eso provocó bugs sucios y difíciles.
    Es sorprendente que haya logrado crear un buen juego con código así.

    • Casi todos los juegos tienen todo tipo de código hacky espantoso. Claro que este es de los casos más extremos que he visto.