Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Terror filosófico en ASCII: los últimos quince minutos antes del Juicio, en un hospital que sigue atendiendo pacientes.
Translation pending
GamesC# · PythonGitHub @Jorge-Polanco-RoqueOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
HINENI (הִנֵּנִי) — terror filosófico en ASCII: los últimos 15 minutos antes del Juicio. Unity · juega en el navegador.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗«Heme aquí.» — Isaías 6:8
Terror filosófico en ASCII. Los últimos quince minutos antes del Juicio, en un hospital que sigue atendiendo pacientes.
Despiertas de un coma. Te llamas Álex, llevas diecinueve días en el Hospital del Umbral y al mundo le quedan quince minutos. Nadie se ha ido: una enfermera sigue cambiando sábanas, un médico apoya la frente contra la pared y cuenta hasta cuarenta y uno, un hombre mira una esquina y te pide que no mires el techo.
Lo último que hagas decide cómo termina. No hay combate ni una respuesta correcta que desbloquear: hay cinco actos posibles, un reloj que no se detiene y algo que te observa desde arriba.
| itch.io | roqueio.itch.io/hineni · en el navegador o descargable para Windows, macOS y Linux |
| Navegador | jorge-polanco-roque.github.io/hineni · ~63 MB · Chrome, Edge, Firefox, Safari |
| macOS | Descargar desde Releases · build de desarrollo sin firmar: clic derecho → Abrir la primera vez |
| Móvil | El mismo enlace del navegador. Se juega en horizontal |
Usa auriculares: la música, las voces y la respiración del Testigo son posicionales.
| Acción | Teclado y ratón | Móvil |
|---|---|---|
| Caminar | W A S D | Palanca izquierda |
| Mirar | Ratón | Palanca derecha |
| Usar / hablar | E | Botón USAR (aparece cuando hay algo delante) |
| Linterna (empieza apagada) | F | CONTROLES → LINTERNA |
| Respirar / contener el aliento | Espacio | Botón RESPIRAR / CONTENER |
| Colgar el teléfono | Q | Botón COLGAR |
| Pausa y opciones | Esc | CONTROLES → PAUSA |
| Elegir en un diálogo | Clic o 1–9 | Toque |
El juego detecta si se está jugando en un teléfono: muestra dos palancas flotantes, un botón contextual y el botón CONTROLES, que despliega el resto. En vertical pide girar el teléfono.
Texto y voces se eligen por separado en el menú (Texto y Voces): español, inglés, portugués, chino simplificado y japonés. Por defecto, texto en inglés y voces en japonés. En la web también por enlace: ?lang=pt&voice=es.
Tools/i18n.py los extrae del código; Assets/Resources/Lang/<código>.json).Cinco actos jugables. El primero que completes es el final que vives.
| Acto | Dónde | Cómo se juega |
|---|---|---|
| Quedarse | Sala común, junto al hombre de la cama | Siéntate con él y respira a su ritmo: pulsa en lo alto de cada respiración, seis veces |
| La voz | Teléfono de recuperación | Sintoniza la línea entre la estática (A/D, ratón o palanca) y quédate con Lucía hasta que se corte |
| Las velas | Capilla | Siete velas, nueve segundos cada una. Las siete encendidas a la vez |
| El armario | Sala eléctrica | Escóndete mientras el Testigo te busca. Contén el aliento cuando esté cerca. Cuarenta segundos |
| El cielo | Cualquier techo | Mira hacia arriba más tiempo del que se puede mirar |
Por el camino: un fusible en el altar, un cuadro eléctrico con tres interruptores cuyo orden está escrito en la pared y una presencia que solo se detiene si la iluminas y la miras. Y una palanca roja, la 41, que no alimenta ningún circuito. Bajarla tiene consecuencias: el médico del pasillo revienta, las pintadas se reescriben y todos los finales cambian una línea.
Cada final tiene su propio tratamiento visual y se puede volver a ver desde Finales en el menú.
Render ASCII por forma. El mundo es una escena 3D normal; solo su imagen se convierte en caracteres (Assets/Shaders/Ink.shader, InkCamera.cs). El tamaño de celda se ajusta a la pantalla (≈165 filas; 5×10 px físicos a pantalla completa, 4×8 en ventanas pequeñas y teléfonos). Cada celda se divide en 2×3 subregiones y se compara con el vector de forma de cada glifo del atlas (Meslo LG S, horneado en 13 tamaños con Tools/BakeAsciiAtlas.swift); las celdas planas usan una rampa tonal. Los contornos salen de las discontinuidades de profundidad y normales; el color de cada glifo es el tono de la escena bajo él. La interfaz se dibuja en una rejilla de texto aparte, con los mismos glifos.
Una sola tubería, varias paletas. El mismo shader produce el grabado (tinta sobre papel hueso con la sangre en rojo), el fósforo verde, el ámbar, el pan de oro y el rojo del Juicio; un parámetro de desgarro desplaza bandas de filas, revuelve glifos e invierte la imagen durante unos fotogramas.
El cielo (Heaven.cs) se construye por código: ofanim (anillos con ojos sobre ejes distintos), cuerpos con seis alas y cuatro rostros (hombre, león, buey, águila) en postura de oración, lágrimas de sangre que caen hacia el jugador, coro y lenguas procesadas. El cielo guarda su propio tiempo: al bajar la mirada se detiene y al volver sigue exactamente donde estaba.
Gestos. Uncanny.cs resuelve los brazos con cinemática inversa de dos huesos, solo para quien está de pie en una pose neutra (Inés): alterna gestos lentos y gesticula al hablar. Un rayo del hombro a la mano impide atravesar paredes. Los demás conservan su pose con respiración, balanceo y temblor.
Personas. Cinco personajes basados en los Universal Base Characters de Quaternius, vestidos, proporcionados y posados en Blender sin interfaz (Tools/build_characters.py), con blend shapes de parpadeo, miedo y grito. Uncanny.cs les da respiración, mirada repartida por la columna, temblor y susurros con límites anatómicos.
La ciudad. Se ve por un hueco real en el muro: cielo en llamas, humo y dos hileras de edificios a distintas distancias, con pisos ardiendo. Su sonido (Tools/city_mix.py) mezcla sirenas y gritos grabados con los disparos y risas sintéticos (Tools/city_sound.py); solo se oye junto al cristal y sube a cada paso.
Voces. 50 líneas por idioma (cinco idiomas) generadas offline con Kokoro-82M (Tools/voices.py): mezclas de estilo por personaje (mujer u hombre, edad, ritmo, tono), radio filtrada, el Testigo grabado al revés, el prólogo con la voz más grave y eco de nave, y lenguas angélicas a partir de sílabas inventadas. Chino y japonés pasan por misaki. Las acotaciones […] quedan en el guion pero no se leen ni se muestran.
Idiomas. Loc.cs busca cada texto español en Resources/Lang/<código>.json; texto y voz tienen idioma propio. Tools/i18n.py extrae los textos del código, construye las tablas y lista los caracteres que necesitan los atlas.
Validación automática. El juego incluye sus propias pruebas, que se lanzan como argumentos del ejecutable: reglas de la amenaza, guardado, cada final, cada acto, la palanca de principio a fin, el cielo, la voz y una auditoría de escena que detecta objetos flotando, piezas que se atraviesan y pintadas tapadas por muebles.
Requisitos: Unity 6000.4.0f1 (módulos macOS y WebGL). Opcional: Blender 5.1 para personajes y ~/.venvs/kokoro (kokoro-onnx, misaki[zh,ja], unidic-lite, fonttools) para voces y fuentes.
UNITY=/Applications/Unity/Hub/Editor/6000.4.0f1/Unity.app/Contents/MacOS/Unity
# macOS → Builds/macOS/Hineni.app
$UNITY -batchmode -quit -projectPath . -executeMethod BuildDemo.Build -logFile build.log
# Web → Builds/WebGL (la página publicada usa Tools/web/index.html)
$UNITY -batchmode -quit -projectPath . -buildTarget WebGL -executeMethod BuildDemo.BuildWeb -logFile web.log
# Publicar la web en GitHub Pages (rama gh-pages, URLs con sello por despliegue)
Tools/web/deploy.sh
# Textos: extraer, construir tablas, caracteres para los atlas
python3 Tools/i18n.py extract && python3 Tools/i18n.py build && python3 Tools/i18n.py chars && python3 Tools/i18n.py narrow
# Voces de los cinco idiomas (solo regenera las líneas que cambiaron) · sonido de la ciudad
~/.venvs/kokoro/bin/python Tools/voices.py
~/.venvs/kokoro/bin/python Tools/city_sound.py
| Prueba | Qué comprueba | Salida |
|---|---|---|
--smoke-test | Arranque, diálogos, guardado, reloj, un final de acto (16 comprobaciones) | /tmp/spooky-qa |
--horror-test | Testigo, linterna, fusible, interruptores, armario, captura (20) | /tmp/spooky-horror-qa |
--layout-qa | Objetos flotando, solapes, pintadas tapadas, cielo, palanca, voz | /tmp/spooky-layout-qa/report.txt |
--lever-qa | La palanca 41 de principio a fin (14) | /tmp/spooky-layout-qa/lever.txt |
--ending-qa <id> | Fotografía un final (quedarse, voz, velas, armario, ojos, juicio) | /tmp/spooky-layout-qa |
--acts-qa · --sky-qa · --touch-qa --touch | Velas, cielo en partida real, interfaz táctil | /tmp/spooky-layout-qa |
--press-kit | Las capturas de este README (prólogo incluido) | /tmp/spooky-press |
--lang <código> · --voice <código> | Cualquier prueba en otro idioma de texto o de voz | — |
index.html?qa=press · ?qa=ending-<id> · ?qa=tear · ?qa=gestures | Las mismas capturas en la versión web (la página las fotografía con Playwright) | consola QA_SNAP |
Builds/macOS/Hineni.app/Contents/MacOS/Hineni --smoke-test
Las pruebas nativas necesitan la pantalla encendida (con la pantalla apagada macOS no da fotogramas al juego) y sin otra instancia abierta.
| Archivo | Responsabilidad |
|---|---|
DemoGame.cs | Flujo de partida, prólogo, diálogos, reloj, guardado, interfaz, menú (texto y voces) y galería |
Loc.cs | Idiomas de texto y de voz, tablas de traducción, ancho de caracteres CJK |
HospitalWorld*.cs | Arquitectura procedural, utilería, personajes, luces, pintadas y sus variantes, palanca 41 |
HorrorDirector.cs | El Testigo (regla de luz y mirada), puzle eléctrico, armario, puertas |
Acts.cs · Endings.cs | Los cinco actos y sus minijuegos · la puesta en escena de los seis finales |
Heaven.cs | El cielo, el desgarro, las lenguas y sus subtítulos |
Watchers.cs | Ojos en la oscuridad, huellas de manos, desgarros esporádicos, lágrimas de sangre (Weeping) |
Controls.cs | Entrada unificada: teclado y ratón, palancas táctiles, botones, orientación |
InkCamera.cs · Ink.shader | El render ASCII y la rejilla de texto de la interfaz |
Uncanny.cs | Vida procedural de los personajes |
LayoutAudit.cs · EndingAudit.cs · *Test.cs | Validación automática |
Tools/ | Atlas de glifos (latino y CJK), personajes, utilería, traducciones (i18n.py, i18n/), voces, sonido de la ciudad, página web y despliegue |
| Recurso | Autor | Licencia |
|---|---|---|
| Diseño, guion, código | Jorge Polanco | MIT |
| Música «Mechanical Hum» | antm_ai (hecha con Suno) | Con permiso del autor |
| Personajes base | Quaternius · Universal Base Characters | CC0 1.0 |
| Utilería | Poly Haven | CC0 1.0 |
| Campanas del prólogo | «Kerkklokken begrafenis», Bert76 (Wikimedia Commons) | CC0 1.0 |
| Sirenas y gritos de la ventana | Civil-defense-siren-waver (Techtonic, dominio público) · American police siren i (lezer, dominio público) · Kamagasaki riot (Kamagasaki450, CC0) · Scream-c/d/e (Raspberry Pi Foundation, Andy Oakley) | Dominio público · CC0 · CC BY-SA 4.0 (la mezcla Sounds/ciudad.wav hereda CC BY-SA 4.0) |
| Voces | Generadas con Kokoro-82M | Apache 2.0 |
| Glifos | Meslo LG (Nerd Font) | Apache 2.0 |
| Pintadas (web) | Rubik Wet Paint |
El código, el guion y los textos originales están bajo licencia MIT. Los recursos de terceros conservan sus propias licencias (tabla de arriba), y la música se incluye con permiso de su autor. Detalle en Assets/Resources/THIRD_PARTY.txt. En macOS las pintadas usan la fuente del sistema Chalkduster, que no se distribuye.
| SIL OFL 1.1 |
| Chino y japonés | Noto Sans SC/JP, Ma Shan Zheng, Yuji Syuku | SIL OFL 1.1 |
| Fonemas chino/japonés | misaki (herramienta, no se distribuye) | Apache 2.0 |
| Apocalipsis 6:8 · 9:6 | Reina-Valera 1909, King James, 和合本, 口語訳 (dominio público); Almeida Revista e Corrigida (cita breve, © SBB) | — |