BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Calendario mensual de lanzamientos de videojuegos (PC, PlayStation, Xbox y Switch) con datos de IGDB. Permite marcar cada juego como me interesa, reservado, comprado o no me interesa. Los juegos más esperados (hype de IGDB) se destacan, y en Mi lista ves todos los que sigues, sean del mes que sean (p. ej. los que te interesaban y aún no has comprado).
Se instala como app (PWA) y se despliega en Vercel, con Supabase como base de datos y autenticación.
navegador ──► /api/calendar?month=YYYY-MM ──► Supabase (caché) ──► IGDB
│ ──► /api/games?ids=1,2,3 ─────────► Supabase (caché) ──► IGDB
│ ──► /api/game?id=123 ─────────────► Supabase (caché) ──► IGDB
│ (Vercel)
└──► Supabase (tracked_games, con RLS)
/api/calendar devuelve el calendario de un mes agrupado por juego.
Sigue un cache-aside: si el mes se descargó hace menos de 12 h lo lee de
Supabase; si no, lo pide a IGDB, lo guarda y borra las fechas que IGDB ya no
devuelve. Si IGDB falla, sirve la caché aunque esté caducada. Encima, el CDN
de Vercel guarda la respuesta (1 h, y hasta 24 h más mientras revalida), así
que el calendario puede llegar a tener unas 37 h de antigüedad./api/games devuelve juegos concretos con todas sus fechas, para Mi
lista. Los que llevan más de 12 h sin comprobarse los actualiza antes desde
IGDB, para que un retraso se vea aunque nadie abra el mes antiguo; si IGDB
falla, sirve la caché. Solo atiende juegos que ya están en ella; los demás se
muestran con el nombre y la carátula guardados en tracked_games./api/game devuelve la ficha de un juego (resumen, géneros, compañías,
capturas, tráiler), que se abre al pulsar una tarjeta o una fila. Se pide a
IGDB bajo demanda y se guarda 7 días en game_details. Solo atiende juegos
que ya están en la caché del calendario.| Archivo | Qué hace |
|---|---|
index.html, styles.css, app.js | Interfaz (sin build ni framework) |
theme-init.js | Aplica el tema claro u oscuro antes de pintar |
releases.js | Fecha principal, grupos de Mi lista y orden de fechas de la ficha (funciones puras) |
config.js | URL y anon key públicas de Supabase |
api/calendar.js | Endpoint del calendario de un mes |
api/games.js | Endpoint de juegos por id (Mi lista) |
api/game.js | Endpoint de la ficha de un juego |
lib/igdb.js | Descarga de IGDB y caché en Supabase |
lib/transform.js | Transformaciones de datos (funciones puras) |
lib/igdbToken.js | Token de Twitch, guardado en Supabase |
lib/supabase.js | Cliente de Supabase con la service_role key |
schema.sql | Tablas y políticas RLS (no se despliega) |
vercel.json | Cabeceras de seguridad (CSP y otras) |
test/ | Tests (no se despliegan, ver .vercelignore) |
Supabase: crea un proyecto y ejecuta schema.sql en el SQL Editor.
Crea tu usuario en Authentication → Users: la app solo tiene inicio de sesión, no registro.
Desactiva también el registro en la configuración de Authentication: la pantalla no lo ofrece,
pero con la anon key pública cualquiera podría crearse una cuenta llamando a la API.
Twitch/IGDB: registra una aplicación en https://dev.twitch.tv/console/apps (tipo Confidential) para obtener el Client ID y el Client Secret.
config.js: pon la URL y la anon key de Supabase. Son públicas;
nunca pongas aquí la service_role key. Pon también la URL en
connect-src de la CSP, en vercel.json.
Vercel: importa el repositorio y define estas variables de entorno:
| Variable | Origen |
|---|---|
SUPABASE_URL | Supabase → Project Settings → API |
SUPABASE_SERVICE_ROLE_KEY | Ídem (secreta: ignora el RLS) |
TWITCH_CLIENT_ID | Consola de Twitch |
TWITCH_CLIENT_SECRET | Consola de Twitch (secreta) |
Requiere Node 22 o superior.
npm test
Usan el test runner de Node (node:test), sin dependencias. Cubren las
funciones puras de lib/transform.js y releases.js; no tocan la red ni
Supabase.
game_time_to_beats (tiempos que envían
los jugadores de IGDB), así que solo hay datos de juegos ya publicados.
No se usa HowLongToBeat: no tiene API y su robots.txt prohíbe el
acceso automatizado sin permiso de Ziff Davis."Oct 20, 2026" es
exacta; "Q4 2026", "2026" o "TBD" son aproximadas.release_region (1 Europa, 2 Norteamérica, 5 Japón,
8 mundial…). El antiguo campo region está obsoleto y ya no viene relleno.