You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
3.2 KiB
73 lines
3.2 KiB
# Juegoland — games2
|
|
|
|
Proyecto independiente para la nueva plataforma de juegos. El frontend está en Svelte 5 y TypeScript; la API y el servidor de dominio están en Go. La carpeta no importa archivos de `games`, usa puertos propios y no modifica su despliegue.
|
|
|
|
**Estado actual:** base ejecutable. El catálogo está conectado desde el navegador a la API Go y empieza vacío porque ningún juego está instalado/publicado en este proyecto. Salas, cuentas, chat, motor, PostgreSQL y tiempo real aún no están habilitados. `/ready` describe expresamente esta fase como `foundation`; no acredita preparación para producción.
|
|
|
|
## Requisitos
|
|
|
|
- Go 1.26 o superior.
|
|
- Node.js 24 o superior y npm.
|
|
|
|
## Desarrollo
|
|
|
|
En una terminal, desde la raíz de `games2`:
|
|
|
|
```powershell
|
|
go run ./cmd/games2
|
|
```
|
|
|
|
La API escucha por defecto en `127.0.0.1:8082`. Se puede elegir otro puerto con `GAMES2_API_ADDR`. Para usar otro puerto hay que actualizar también el destino del proxy de desarrollo en `frontend/vite.config.ts`.
|
|
|
|
En otra terminal:
|
|
|
|
```powershell
|
|
cd frontend
|
|
npm ci
|
|
npm run dev
|
|
```
|
|
|
|
Abre `http://127.0.0.1:4174`. El frontend consulta `/api/v2/catalog` a través del proxy local hacia Go. En producción, un proxy HTTPS servirá el frontend estático y enviará `/api` al backend; esta configuración aún no está desplegada.
|
|
|
|
Las herramientas para validar los contratos del motor tienen dependencias propias en la raíz del proyecto:
|
|
|
|
```powershell
|
|
npm ci
|
|
npm run contracts:check
|
|
```
|
|
|
|
Comprobar:
|
|
|
|
```powershell
|
|
go test ./...
|
|
npm run contracts:check
|
|
cd frontend
|
|
npm run check
|
|
npm run build
|
|
```
|
|
|
|
Rutas de la primera fase: `GET /live`, `GET /ready`, `GET /api/v2/bootstrap` y `GET /api/v2/catalog`. Las dos últimas devuelven `requestId` y `data`; el catálogo devuelve `items: []` y `nextCursor: null` hasta la primera publicación. No hay rutas de creación o publicación de juegos para usuarios.
|
|
|
|
## Estructura
|
|
|
|
```text
|
|
cmd/games2/ arranque y apagado del proceso Go
|
|
internal/api/httpapi/ entrega HTTP y contratos de respuesta
|
|
internal/server/ casos de uso y capacidades habilitadas
|
|
internal/domain/catalog/ lectura de juegos publicados
|
|
internal/domain/ identidad, seguridad, salas, chat y moderación
|
|
internal/engine/ núcleo del motor propio
|
|
internal/games/ reglas Go propias publicadas internamente
|
|
internal/infra/ PostgreSQL y proveedores externos
|
|
internal/jobs/ plazos y outbox
|
|
frontend/ aplicación Svelte 5 y Vite
|
|
contracts/ índice de contratos ejecutables
|
|
db/migrations/ futuras migraciones PostgreSQL
|
|
deploy/ futuro despliegue independiente
|
|
docs/platform/ políticas y arquitectura de producto
|
|
docs/game-engine/ formato, esquemas y ejemplos del motor propio
|
|
docs/ROADMAP.md próximos hitos y criterios de aceptación
|
|
```
|
|
|
|
El directorio `docs/` contiene una copia de los contratos y propuestas de v2 para trabajar sin depender de archivos de la aplicación anterior. Documentan el destino; las funciones no disponibles siguen marcadas como pendientes. La [arquitectura](docs/platform/architecture.md), las [políticas](docs/platform/product-policies.md) y el [plan de implementación](docs/ROADMAP.md) indican los límites de esta primera fase.
|