Saltar al contenido
SheetForge

SheetForge — Canalización de datos basada en hojas de cálculo para Unity

SheetForge convierte una hoja de cálculo (Google Sheets o TSV/CSV/xlsx local) en clases C# fuertemente tipadas y ScriptableObjects generados mediante bake que tu juego carga por una dirección estable.

Cada celda se valida al importar. Un valor incorrecto se detecta al importar, no cuando la fila se usa por primera vez en tiempo de ejecución. Se informa como una frase con su pestaña, fila, columna y una corrección sugerida. La canalización funciona como un compilador: recopila todos los errores en una sola pasada y ensambla las Definiciones inmutables solo a partir de una hoja completamente limpia.

La hoja es siempre la única fuente de verdad; el SO generado mediante bake es solo una caché de consulta. En torno a eso:

  • Ida y vuelta. La importación tiene un camino inverso: Export/Push escribe los valores de vuelta en la hoja preservando su estructura.
  • Creación integrada en el editor. Una ventana de creación integrada en el editor — la Data Studio — edita la hoja con deshacer Ctrl+Z.
  • UI localizada. La interfaz del producto se distribuye en 10 idiomas.
  • Extensión por plugin. Los plugins añaden tipos de celda, reglas de validación, aristas de grafo y orígenes de importación sin modificar Core. Ese límite lo impone el compilador de C#.

La API pública es un núcleo de creación (authoring kernel): una segunda superficie de creación, como un lienzo de grafo de nodos, puede construirse sobre ella sin cambios en Core ni en Editor — consulta Núcleo de creación.

Requisitos: Unity 6 y el paquete Addressables (com.unity.addressables) — la carga en tiempo de ejecución se basa en direcciones. El asset compila sin el paquete, pero la canalización permanece bloqueada hasta que se instala. Primeros pasos cubre la instalación guiada.

Cómo funciona (de un vistazo)

              ENTRANCES                    TRUTH                       EXITS
  ┌───────────────────────────┐   ┌──────────────────┐   ┌───────────────────────────────┐
  │ Google Sheets (SheetsApi/ │   │                  │   │ Strongly-typed C# classes     │
  │   ExportUrl)              │──▶│  Immutable IR    │──▶│   (codegen, last stage)       │
  │ Local TSV / CSV / xlsx    │   │  (Definitions)   │   │ Per-tab Database SO (bake)    │
  │ Data Studio (in-editor    │   │                  │   │   → Addressables address      │
  │   authoring, WYSIWYG)     │   │  built ONLY if   │   │   "SheetForge/{tab}"          │
  │ Custom source providers   │   │  validation is   │   │ Export / Push back to the     │
  │   (plugin, e.g. DB/REST)  │   │  100% clean      │   │   sheet (round-trip)          │
  └───────────────────────────┘   └──────────────────┘   └───────────────────────────────┘

Cada entrada produce el mismo IR validado, y cada salida se deriva de él. Un solo error en cualquier lugar significa que no hay ninguna salida — sin ensamblaje parcial.

Cada error te indica:

  • dónde — pestaña · fila · letra de columna y nombre de campo
  • qué — el valor causante
  • por qué — la regla infringida
  • cómo — una sugerencia accionable

Esto reemplaza lo que un equipo tendría que escribir por cada tabla: el parser, el validador, el generador de código y la vía de carga.

Cifras clave

  • La importación de 50,000 filas × 20 columnas tarda ≈ 628 ms en el editor en vivo (Mono); 50 pestañas × 2,000 filas con 180k celdas de referencia ≈ 294 ms.
  • Códigos de error estructurados — una referencia completa de validación.
  • 10 idiomas para toda la interfaz del producto (menús, la ventana de creación, diálogos, informes, tooltips).
  • Suite de pruebas: un doble arnés de pruebas de .NET sin interfaz (headless) más pruebas de Unity EditMode, 0 fallos — los recuentos exactos están en Capacidades y límites ▸ Estado verificado.

Mapa de la documentación

PáginaQué cubre
Primeros pasosRequisitos (Unity 6, Addressables), instalación, ajustes, tu primera importación, la escena de demostración
Conceptos fundamentalesLa hoja como única fuente de verdad, el IR, las etapas de la canalización, el SO generado mediante bake como caché, los baselines, la cadena automática de importación
Sintaxis de la hojaMarcadores (@name/@type/@desc/@overlap/@style/@enum/@loc), el sistema de tipos completo, las hojas de definición de enum, las reglas de notación
Data StudioLa superficie de creación — consulta, búsqueda, edición de celdas, edición de estructura, el lienzo de registros, Ctrl+Z, validación previa
Fuentes, exportación y envíoOrígenes locales y de Google, configuración de proveedores, ciclo de ida y vuelta de la exportación, medidas de seguridad de Push, listas desplegables escritas en la hoja
Configuración de Hojas de GoogleCreación de la cuenta de servicio y la clave JSON, compartir la hoja, apuntar SheetForge hacia la clave
LocalizaciónLa interfaz en 10 idiomas, idioma por usuario, regeneración de menús, incorporación de traducciones
Hojas de localizaciónEl texto de tu juego como una hoja — columnas de configuración regional @loc, referencias LocRef, constantes de clave, el puente StringTable de Unity Localization, flujos de trabajo de traducción
Creación de pluginsLos 16 contratos de plugin (tipos de celda, validadores, aristas, marcadores, plantillas, overrides de lienzo, registros de código, temas, superficies de creación declarativas, cadenas de UI, observadores de canalización, orígenes, widgets/acciones/editores de celda/paneles de Studio) + las capacidades opcionales, incluida la paridad de referencia completa para tu propia notación — añade un dominio con cero modificaciones al Core
Núcleo de creaciónConstrucción de una segunda superficie de creación (p. ej., un lienzo de grafo) sobre la API pública del motor
Referencia de la APILa superficie completa de la API pública — todos los tipos públicos, organizados por ensamblado
Capacidades y límitesLa lista completa de qué funciona, qué no, y por qué
Preguntas frecuentes y solución de problemasProblemas del primer uso e integración, con soluciones
SheetForge WebEl complemento de navegador — el mismo núcleo compilado a WebAssembly, paridad de creación/validación/reflejo, cuándo usarlo
Mercado de plugins webInstalación de plugins desde el registro (un clic, con hash fijado), la puerta de compatibilidad, la carga lateral de plugins sin revisar mediante URL de GitHub, la ventana de mercado dentro de Unity
Acceso a Hojas de Google desde la WebLectura y escritura de Hojas de Google desde el sitio desplegado mediante tu propio OAuth, y la regla de que la clave de cuenta de servicio es solo local

SheetForge Web (complemento)

Una app web complementaria en web.sheetforge.workers.dev lleva la creación, la validación y el reflejo de la hoja al navegador.

Compila el mismo núcleo C# a WebAssembly — no es una reimplementación —, así que el parser y el validador nunca pueden desviarse del asset de Unity, y una DLL de plugin compilada en Unity se carga sin modificaciones. El codegen y el bake siguen siendo responsabilidad exclusiva de Unity; la salida web es la hoja reflejada.

Las tres páginas web anteriores cubren la app, su mercado de plugins y su acceso a Hojas de Google. Cada regla de sintaxis de hoja de este sitio — incluida la paridad de referencia de IntId@Tab — se cumple de forma idéntica en el navegador.

Principios de diseño

  1. La hoja es canónica. La edición directa del SO no es un flujo de trabajo; todo pasa por la hoja y la validación de reimportación. (Existe un interruptor de "edición de prueba" para experimentos temporales en tiempo de ejecución — nunca se escribe de vuelta y desaparece al reimportar.)
  2. Recopílalo todo, no ensambles nada roto. La validación nunca se detiene en el primer error, y un solo error significa que no hay salida — arreglas una lista completa, de una vez, en lugar de un ciclo de corregir uno y reimportar.
  3. Creación WYSIWYG. En Data Studio, todo lo que preparas es visible de inmediato exactamente como quedará: las columnas añadidas aparecen y las filas eliminadas desaparecen, antes incluso de escribir en la hoja.
  4. Totalmente automático. Después de una acción de creación, el ciclo codegen → recompilación → bake se completa sin que tengas que volver a activar nada, incluso a través del domain reload.
  5. Extensión abierto/cerrado. Los nuevos tipos de celda, reglas de validación, aristas de grafo y orígenes de importación se incorporan mediante registro — la canalización nunca se modifica.
  6. Límites documentados. Lo que el producto no puede hacer está documentado con la misma precisión que lo que sí puede hacer. Consulta Capacidades y límites.
  7. Datos abiertos. La verdad es un archivo TSV/CSV/xlsx plano o una hoja de Google, legible por cualquier herramienta. Eliminar SheetForge elimina la canalización, no tus datos.

Páginas relacionadas