OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
Simulador y taller de cohetes 2D con ranking.
Translation pending
GamesTypeScript · CSSGitHub @DaniVillalba03OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Simulador y taller de cohetes 2D, inspirado en OpenRocket y Kerbal Space Program (versión accesible y arcade). Diseña un cohete, lánzalo con física real y compite en el ranking de mayor apogeo y mayor distancia horizontal.
Stack: Next.js (App Router) · TypeScript · Tailwind CSS · Zustand · Vitest · Supabase (opcional).
/vab): cohete de una sola etapa. Arrastra las piezas al cohete (o haz clic para seleccionarlas): ojiva, hasta 4 cuerpos de propelente, motor y aletas; y elige el ángulo inicial (15°–90°). El panel muestra masa, TWR (con alerta si es < 1), tiempo de quemado y Δv. Todos los cohetes usan el mismo propelente: KNSB (nitrato de potasio + sorbitol, Isp 120 s)./flight): Enter lanza · Espacio abre el paracaídas · 1/2/3 time warp 1x/2x/5x./leaderboard): pestañas por apogeo y por distancia, Top 10 / Top 50.npm install
npm run dev # http://localhost:3000
npm test # Vitest
npm run lint
npm run build
src/engine: física y render en TypeScript puro, sin React. Paso fijo de 1/120 s, Euler semi-implícito, unidades SI (y = 0 es el suelo).src/store/flightStore.ts), por lo que React no re-renderiza a 60 FPS.src/lib/leaderboard: repositorio intercambiable (LeaderboardRepository) con implementación JSON local y Supabase.src/app/api/leaderboard: GET ?type=apogee|distance&limit=10|50, POST con validación de nombres, piezas, rangos y ángulo, y DELETE ?id=<uuid> (icono de papelera en el ranking; sin autenticación).Modelo 2D en SI, integrado con Euler semi-implícito a paso fijo (1/120 s):
g = g₀·(R/(R+h))².T = T₀ + (p₀ − p)·Aₑ). Todos los motores usan KNSB (Isp 120 s), ṁ = T / (Isp·g₀).Fd = ½ρv²·Cd·A con aumento transónico según el número de Mach, y arrastre de flujo cruzado si el cohete se cruza.Sin control manual de orientación: el vuelo depende del diseño y del ángulo inicial.
Todo vectorial y procedimental en canvas: cielo de amanecer con sol y destellos, nubes volumétricas (con niebla al atravesarlas), estrellas y Vía Láctea, terreno con vegetación, playa y océano animado, curvatura de la Tierra con halo atmosférico, pluma de escape que cambia con la altitud (discos de choque a baja altura), humo persistente que deriva con el viento, polvo en el despegue, cono de vapor transónico y temblor de cámara.
Sin configuración, el ranking se guarda en .data/leaderboard.json (solo desarrollo; ignorado por git).
En producción usa Supabase:
Ejecuta supabase/schema.sql en el SQL Editor del proyecto (crea la tabla, índices y activa RLS).
Define las variables de entorno (ver .env.example):
| Variable | Descripción |
|---|---|
SUPABASE_URL | URL del proyecto |
SUPABASE_SERVICE_ROLE_KEY | Clave service_role (solo servidor, nunca NEXT_PUBLIC_) |
El acceso se hace únicamente desde el servidor; la clave anónima no puede leer ni escribir.
main como rama de producción.SUPABASE_URL y SUPABASE_SERVICE_ROLE_KEY en Production y Preview, y redespliega.Ver LICENSE.