DeVuego no es solo una base de datos de videojuegos: es un proyecto de preservación que documenta y verifica activamente la información que publica. Esta página explica, con el mayor detalle técnico posible, cómo está construido y validado nuestro modelo de datos.
DeVuego mantiene bases de datos independientes para España, Portugal y Latinoamérica, todas compartiendo el mismo modelo de datos, adaptado a cada idioma y mercado.
Cada juego, estudio y persona tiene un identificador único generado internamente y un slug estable. Nunca aceptamos IDs externos: cualquier identificador que recibamos de un proveedor de datos se descarta y se genera el nuestro.
El id se genera con un contador autoincremental de la base de datos: bajo operación normal, ese contador nunca reutiliza un identificador ya emitido, ni siquiera si el registro se elimina más adelante (solo una intervención manual explícita sobre la base de datos podría alterar esto). Además, cuando un juego o estudio cambia de slug, conservamos el slug anterior y nuestro sistema redirige automáticamente con un 301 desde la URL antigua hacia la nueva, así que los enlaces que otros investigadores hagan a DeVuego no se rompen con el tiempo.
Nuestros procesos automáticos de importación validan duplicados y sanean el contenido antes de insertarlo. Para colaboraciones externas (estudios, editoras, medios), publicamos schemas formales — ver más abajo.
Registramos quién edita qué y cuándo, y mantenemos un monitor de actividad que verifica activamente si los estudios siguen operativos, en lugar de limitarnos a almacenar una ficha estática.
Un juego, estudio o persona no es un único estado fijo en DeVuego: combinamos varios indicadores independientes en lugar de una sola etiqueta.
No publicamos cualquier dato que nos llega: una ficha entra en la base de datos cuando podemos verificar su origen (estudio, desarrollador, editora o fuente periodística identificable) y encaja en el alcance editorial del proyecto. La financiación colectiva, los premios o la clasificación por edad de un juego, por ejemplo, solo se incorporan cuando hay una fuente comprobable, no una declaración sin respaldo.
DeVuego no es un catálogo aislado: cuando es posible, enlazamos cada juego o estudio con su identificador en otros catálogos de referencia, para que investigadores y otros proyectos de preservación puedan cruzar nuestros datos con los suyos. Guardamos, entre otros, el identificador de Wikidata, RAWG, IGDB y Twitch de cada juego, además de enlaces catalogados a Wikipedia y otras redes/fuentes. También conservamos el identificador de Steam de cada lanzamiento (codificado en la URL de la tienda) y lo resolvemos automáticamente en nuestros procesos de actualización de precios y valoraciones. Esta interconexión se amplía de forma continua, no es un campo decorativo: varios de nuestros procesos automáticos la usan para verificar y actualizar datos.
Cada juego, capítulo o libro de nuestra base de datos tiene un identificador público y autodescriptivo, el DVGO_ID, con el formato DVGO + fecha de creación (AAAAMMDD) + tipo de registro (JG/CP/LB) + id interno. No es un número opaco: cualquiera puede leer en el propio identificador cuándo se creó un registro y de qué tipo es.
Puedes comprobar la autenticidad de cualquier DVGO_ID en /bd/verificaid/: la herramienta indica si el registro existe, la fecha en que se creó, quién lo creó y quién hizo la última edición. De momento esta verificación cubre juegos, capítulos y libros; todavía no está disponible para estudios.
Estos son los esquemas formales (JSON Schema Draft-07) que validan los datos que un estudio, editora o desarrollador puede enviarnos para importar un juego o un estudio. Solo se piden campos que un proveedor externo puede conocer razonablemente: los identificadores, slugs y nombres de archivo de imagen los genera siempre nuestro propio sistema.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Juego (ampliado)",
"schema_version": "2.0",
"description": "Schema ampliado para enviar datos de un juego a importar en la base de datos de DeVuego. Es una versión más completa de basic_game_import_schema.json, que cubre más aspectos del modelo de datos que un proveedor (estudio, editora, desarrollador) puede conocer razonablemente. Los campos internos como id, slug o los nombres de archivo de las imágenes los genera nuestro propio sistema y no deben solicitarse aquí.",
"type": "object",
"properties": {
"titulo": {
"type": "string",
"description": "Título del juego"
},
"titulo_original": {
"type": "string",
"description": "Título original, si es distinto del título principal (ej. título japonés original)"
},
"titulo_localizado": {
"type": "string",
"description": "Título en otro idioma relevante, si difiere del título principal (opcional)"
},
"ano_lanzamiento": {
"type": "integer",
"description": "Año en que el juego se lanzó por primera vez"
},
"nombre_serie": {
"type": "string",
"description": "Nombre de la serie a la que pertenece este juego, si aplica (opcional)"
},
"juego_padre": {
"type": "string",
"description": "Título del juego padre, si esta entrada es una edición, remake o DLC de otro juego"
},
"numero_episodio": {
"type": "string",
"description": "Número de episodio/capítulo, si esta entrada forma parte de una serie episódica (opcional)"
},
"estudio": {
"type": "string",
"description": "Nombre del estudio de desarrollo"
},
"coestudio": {
"type": "string",
"description": "Nombre de un segundo estudio en coproducción, si lo hay (opcional)"
},
"desarrollador": {
"type": "string",
"description": "Nombre del desarrollador principal (persona individual), si no se trata de un estudio"
},
"editora": {
"type": "string",
"description": "Nombre de la editora (opcional)"
},
"motor": {
"type": "string",
"description": "Nombre del motor gráfico utilizado (opcional, ej. Unreal Engine, Unity, motor propio)"
},
"descripcion": {
"type": "string",
"description": "Sinopsis / descripción corta del juego"
},
"estilo_grafico": {
"type": "string",
"description": "Estilo gráfico (opcional, ej. 2D, 3D, Pixel art)"
},
"perspectiva": {
"type": "string",
"description": "Perspectiva de cámara (opcional, ej. Primera persona, Tercera persona, Isométrica, Vista superior)"
},
"vista": {
"type": "string",
"description": "Tipo de vista, como complemento de la perspectiva (opcional, ej. Scroll lateral, Mundo abierto)"
},
"plataformas": {
"type": "array",
"description": "Lista de lanzamientos por plataforma. Cada lanzamiento se guarda como un registro propio (tabla plataformajuegos), con su propia fecha, formato y estado, no solo el nombre de la plataforma.",
"items": {
"type": "object",
"properties": {
"plataforma": {
"type": "string",
"description": "Nombre de la plataforma (ej. PC, PlayStation 5, Nintendo Switch)"
},
"fecha_lanzamiento": {
"type": "string",
"format": "date",
"description": "Fecha de lanzamiento en esta plataforma (AAAA-MM-DD). Usa solo el año si no se conoce la fecha exacta."
},
"digital": {
"type": "boolean",
"description": "True si se lanzó digitalmente en esta plataforma"
},
"fisico": {
"type": "boolean",
"description": "True si se lanzó físicamente en esta plataforma"
},
"estado_desarrollo": {
"type": "string",
"enum": ["lanzado", "en_desarrollo", "cancelado", "en_pausa"],
"description": "Estado actual de este lanzamiento (opcional, por defecto \"lanzado\" si se indica fecha_lanzamiento)"
},
"acceso_anticipado": {
"type": "boolean",
"description": "True si este lanzamiento es/fue una versión de acceso anticipado (opcional)"
},
"modelo_negocio": {
"type": "string",
"description": "Modelo de negocio de este lanzamiento (opcional, ej. Pago único, Free-to-play, Suscripción)"
}
},
"required": ["plataforma"]
}
},
"generos": {
"type": "array",
"description": "Lista de géneros/subgéneros del juego (tablas generos / generos2, relacionadas vía genero2juegos). Pertenecen a nuestra propia taxonomía interna, así que indica los géneros en texto plano — los mapearemos a categorías existentes al importar, o crearemos nuevas si es necesario.",
"items": {
"type": "object",
"properties": {
"genero": {
"type": "string",
"description": "Género principal (ej. Acción, RPG, Estrategia)"
},
"subgenero": {
"type": "string",
"description": "Subgénero más específico dentro del género principal, si se conoce (ej. Plataformas, RPG táctico)"
}
},
"required": ["genero"]
}
},
"pegi": {
"type": "object",
"description": "Clasificación PEGI por edad y descriptores de contenido, si se conoce (opcional, tabla pegi). Se indican como strings legibles; los IDs internos de PEGI se resuelven al importar, no se solicitan aquí.",
"properties": {
"clasificacion": {
"type": "string",
"enum": ["3", "7", "12", "16", "18"],
"description": "Clasificación PEGI por edad"
},
"descriptores_contenido": {
"type": "array",
"description": "Descriptores de contenido PEGI aplicables",
"items": {
"type": "string",
"enum": ["lenguaje", "discriminacion", "drogas", "miedo", "juego_de_azar", "sexo", "violencia", "online", "compras_dentro_del_juego"]
}
}
},
"required": ["clasificacion"]
},
"esrb": {
"type": "object",
"description": "Clasificación ESRB por edad y descriptores de contenido, si se conoce (opcional, tabla esrb), como equivalente estadounidense del PEGI. Se indican como strings legibles; los IDs internos de ESRB se resuelven al importar.",
"properties": {
"clasificacion": {
"type": "string",
"enum": ["EC", "E", "E10+", "T", "M", "AO", "RP"],
"description": "Clasificación ESRB por edad"
},
"descriptores_contenido": {
"type": "array",
"description": "Descriptores de contenido ESRB aplicables, en texto plano (ej. Violencia, Sangre, Lenguaje fuerte)",
"items": { "type": "string" }
}
},
"required": ["clasificacion"]
},
"idiomas": {
"type": "array",
"description": "Idiomas soportados por el juego, con el tipo de soporte para cada uno (tabla idiomas_juegos)",
"items": {
"type": "object",
"properties": {
"idioma": {
"type": "string",
"description": "Nombre del idioma (ej. Español, Inglés, Portugués)"
},
"audio": {
"type": "boolean",
"description": "True si este idioma está soportado en audio/voces"
},
"subtitulos": {
"type": "boolean",
"description": "True si este idioma está soportado en subtítulos"
},
"interfaz": {
"type": "boolean",
"description": "True si este idioma está soportado en la interfaz/textos"
}
},
"required": ["idioma"]
}
},
"precio_lanzamiento": {
"type": "string",
"description": "Precio de lanzamiento recomendado, con su moneda (opcional, ej. \"59,99 EUR\")"
},
"sitio_web_oficial": {
"type": "string",
"format": "uri",
"description": "Sitio web oficial del juego (opcional)"
},
"enlaces_tiendas": {
"type": "array",
"description": "Enlaces a las páginas del juego en tiendas digitales (opcional)",
"items": {
"type": "object",
"properties": {
"tienda": {
"type": "string",
"description": "Nombre de la tienda (ej. Steam, GOG, itch.io, App Store, Google Play, PlayStation Store, eShop)"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": ["tienda", "url"]
}
},
"financiacion_colectiva": {
"type": "object",
"description": "Datos de la campaña de financiación colectiva, si el juego se financió así (opcional, tabla financiacion_plataformas)",
"properties": {
"plataforma": {
"type": "string",
"description": "Nombre de la plataforma de crowdfunding (ej. Kickstarter, Verkami, Indiegogo)"
},
"url_campana": {
"type": "string",
"format": "uri"
},
"objetivo": {
"type": "number",
"description": "Objetivo de financiación"
},
"recaudado": {
"type": "number",
"description": "Cantidad realmente recaudada"
},
"moneda": {
"type": "string",
"description": "Código de moneda (ej. EUR, USD)"
},
"fecha_fin_campana": {
"type": "string",
"format": "date",
"description": "Fecha en la que terminó la campaña (AAAA-MM-DD)"
},
"estado": {
"type": "string",
"enum": ["en_curso", "financiado", "fallido", "cancelado", "entregado"],
"description": "Estado actual de la campaña de financiación colectiva — importante para campañas que se financiaron pero nunca se entregaron, o que se cancelaron"
}
},
"required": ["plataforma"]
},
"banda_sonora": {
"type": "object",
"description": "Información de la banda sonora, si es relevante (opcional, tabla bso)",
"properties": {
"compositor": {
"type": "string",
"description": "Nombre del/de la compositor/a"
},
"digital": {
"type": "boolean",
"description": "True si la banda sonora está disponible digitalmente"
},
"fisico": {
"type": "boolean",
"description": "True si la banda sonora se lanzó físicamente"
},
"edicion_coleccionista": {
"type": "boolean",
"description": "True si existe una edición coleccionista de la banda sonora"
}
}
},
"premios": {
"type": "array",
"description": "Premios recibidos por el juego, si los hay (opcional, tabla premiosjuegos)",
"items": {
"type": "object",
"properties": {
"nombre_premio": {
"type": "string",
"description": "Nombre del premio (ej. The Game Awards, Independent Games Festival)"
},
"categoria": {
"type": "string",
"description": "Categoría o edición del premio, si es relevante"
},
"ano": {
"type": "integer",
"description": "Año en que se recibió el premio"
}
},
"required": ["nombre_premio", "ano"]
}
},
"etiquetas": {
"type": "array",
"description": "Etiquetas descriptivas libres sobre el juego (opcional, tabla tagjuegos)",
"items": { "type": "string" }
},
"contenido_adicional": {
"type": "array",
"description": "Títulos de contenido descargable asociado a este juego, si lo hay (opcional). Complementa juego_padre/numero_episodio para la relación inversa.",
"items": { "type": "string" }
}
},
"required": ["titulo", "ano_lanzamiento"],
"examples": [
{
"titulo": "Nombre del Juego",
"titulo_original": "",
"titulo_localizado": "",
"ano_lanzamiento": 2024,
"nombre_serie": "",
"juego_padre": "",
"numero_episodio": "",
"estudio": "Nombre del Estudio",
"coestudio": "",
"desarrollador": "",
"editora": "Nombre de la Editora",
"motor": "Unreal Engine 5",
"descripcion": "Descripción corta del juego.",
"estilo_grafico": "3D",
"perspectiva": "Tercera persona",
"vista": "Mundo abierto",
"plataformas": [
{ "plataforma": "PC", "fecha_lanzamiento": "2024-03-15", "digital": true, "fisico": false, "estado_desarrollo": "lanzado", "acceso_anticipado": false, "modelo_negocio": "Pago único" },
{ "plataforma": "PlayStation 5", "fecha_lanzamiento": "2024-03-15", "digital": true, "fisico": true, "estado_desarrollo": "lanzado", "acceso_anticipado": false, "modelo_negocio": "Pago único" }
],
"generos": [
{ "genero": "Acción", "subgenero": "Plataformas" },
{ "genero": "Aventura" }
],
"pegi": {
"clasificacion": "16",
"descriptores_contenido": ["violencia", "lenguaje"]
},
"esrb": {
"clasificacion": "M",
"descriptores_contenido": ["Violencia", "Lenguaje fuerte"]
},
"idiomas": [
{ "idioma": "Español", "audio": true, "subtitulos": true, "interfaz": true },
{ "idioma": "Inglés", "audio": false, "subtitulos": true, "interfaz": true }
],
"precio_lanzamiento": "59,99 EUR",
"sitio_web_oficial": "https://example.com",
"enlaces_tiendas": [
{ "tienda": "Steam", "url": "https://store.steampowered.com/app/000000" }
],
"financiacion_colectiva": {
"plataforma": "Kickstarter",
"url_campana": "https://www.kickstarter.com/projects/example/nombre-del-juego",
"objetivo": 50000,
"recaudado": 75000,
"moneda": "EUR",
"fecha_fin_campana": "2022-06-01",
"estado": "entregado"
},
"banda_sonora": {
"compositor": "Nombre del Compositor",
"digital": true,
"fisico": false,
"edicion_coleccionista": false
},
"premios": [
{ "nombre_premio": "Independent Games Festival", "categoria": "Excelencia en Diseño", "ano": 2024 }
],
"etiquetas": ["un_jugador", "narrativo", "indie"],
"contenido_adicional": ["Nombre del Juego: Expansión"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Game (extended)",
"schema_version": "2.0",
"description": "Extended schema for submitting game data to be imported into DeVuego's database. This is a richer version of basic_game_import_schema.json, covering more of the data model a data provider (studio, publisher, developer) can realistically know. Internal fields such as id, slug, or cover image filenames are generated by our own system and must not be requested.",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Game title"
},
"original_title": {
"type": "string",
"description": "Original title, if different from the main title (e.g. original Japanese title)"
},
"title_localized": {
"type": "string",
"description": "Title in another relevant language, if different from the main title (optional)"
},
"release_year": {
"type": "integer",
"description": "Year the game was first released"
},
"series_name": {
"type": "string",
"description": "Name of the series this game belongs to, if any (optional)"
},
"parent_game": {
"type": "string",
"description": "Title of the parent game, if this entry is an edition, remake, or DLC of another game"
},
"episode_number": {
"type": "string",
"description": "Episode/chapter number, if this entry is part of an episodic series (optional)"
},
"studio": {
"type": "string",
"description": "Name of the development studio"
},
"co_developer": {
"type": "string",
"description": "Name of a second studio involved in co-development, if any (optional)"
},
"developer": {
"type": "string",
"description": "Name of the lead developer (individual), if it's not a studio"
},
"publisher": {
"type": "string",
"description": "Name of the publisher (optional)"
},
"engine": {
"type": "string",
"description": "Name of the game engine used (optional, e.g. Unreal Engine, Unity, proprietary engine name)"
},
"description": {
"type": "string",
"description": "Short synopsis / description of the game"
},
"graphics_style": {
"type": "string",
"description": "Graphics style (optional, e.g. 2D, 3D, Pixel art)"
},
"perspective": {
"type": "string",
"description": "Camera perspective (optional, e.g. First person, Third person, Isometric, Top-down)"
},
"view": {
"type": "string",
"description": "View type, as a complement to perspective (optional, e.g. Side-scrolling, Free-roaming)"
},
"platforms": {
"type": "array",
"description": "List of platform releases. Each release is stored as its own record (table plataformajuegos), so it has its own date, format and status, not just a platform name.",
"items": {
"type": "object",
"properties": {
"platform": {
"type": "string",
"description": "Platform name (e.g. PC, PlayStation 5, Nintendo Switch)"
},
"release_date": {
"type": "string",
"format": "date",
"description": "Release date on this platform (YYYY-MM-DD). Use just the year if the exact date is unknown."
},
"digital": {
"type": "boolean",
"description": "True if released digitally on this platform"
},
"physical": {
"type": "boolean",
"description": "True if released physically on this platform"
},
"development_status": {
"type": "string",
"enum": ["released", "in_development", "cancelled", "on_hold"],
"description": "Current status of this platform release (optional, defaults to released if a release_date is given)"
},
"early_access": {
"type": "boolean",
"description": "True if this platform release is/was an early access version (optional)"
},
"business_model": {
"type": "string",
"description": "Business model for this release (optional, e.g. Premium, Free-to-play, Subscription)"
}
},
"required": ["platform"]
}
},
"genres": {
"type": "array",
"description": "List of genres/subgenres for the game (tables generos / generos2, linked via genero2juegos). These belong to our own internal taxonomy, so provide genre names in plain text — we'll map them to existing categories on import, or create new ones if needed.",
"items": {
"type": "object",
"properties": {
"genre": {
"type": "string",
"description": "Main genre (e.g. Action, RPG, Strategy)"
},
"subgenre": {
"type": "string",
"description": "More specific subgenre within the main genre, if known (e.g. Platformer, Tactical RPG)"
}
},
"required": ["genre"]
}
},
"pegi": {
"type": "object",
"description": "PEGI age rating and content descriptors, if known (optional, table pegi). Provided as readable strings; internal PEGI IDs are resolved on import, not requested here.",
"properties": {
"rating": {
"type": "string",
"enum": ["3", "7", "12", "16", "18"],
"description": "PEGI age rating"
},
"content_descriptors": {
"type": "array",
"description": "Applicable PEGI content descriptors",
"items": {
"type": "string",
"enum": ["language", "discrimination", "drugs", "fear", "gambling", "sex", "violence", "online", "in_game_purchases"]
}
}
},
"required": ["rating"]
},
"esrb": {
"type": "object",
"description": "ESRB age rating and content descriptors, if known (optional, table esrb), as a US equivalent to PEGI. Provided as readable strings; internal ESRB IDs are resolved on import.",
"properties": {
"rating": {
"type": "string",
"enum": ["EC", "E", "E10+", "T", "M", "AO", "RP"],
"description": "ESRB age rating"
},
"content_descriptors": {
"type": "array",
"description": "Applicable ESRB content descriptors, in plain text (e.g. Violence, Blood, Strong Language)",
"items": { "type": "string" }
}
},
"required": ["rating"]
},
"languages": {
"type": "array",
"description": "Languages supported by the game, with the kind of support for each (table idiomas_juegos)",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "Language name (e.g. Spanish, English, Portuguese)"
},
"audio": {
"type": "boolean",
"description": "True if this language is supported in audio/voice"
},
"subtitles": {
"type": "boolean",
"description": "True if this language is supported in subtitles"
},
"interface": {
"type": "boolean",
"description": "True if this language is supported in the user interface/text"
}
},
"required": ["language"]
}
},
"launch_price": {
"type": "string",
"description": "Recommended launch price, including currency (optional, e.g. \"59.99 EUR\")"
},
"official_website": {
"type": "string",
"format": "uri",
"description": "Official website of the game (optional)"
},
"store_links": {
"type": "array",
"description": "Links to the game's pages on digital storefronts (optional)",
"items": {
"type": "object",
"properties": {
"store": {
"type": "string",
"description": "Store name (e.g. Steam, GOG, itch.io, App Store, Google Play, PlayStation Store, eShop)"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": ["store", "url"]
}
},
"crowdfunding": {
"type": "object",
"description": "Crowdfunding campaign details, if the game was funded this way (optional, table financiacion_plataformas)",
"properties": {
"platform": {
"type": "string",
"description": "Crowdfunding platform name (e.g. Kickstarter, Verkami, Indiegogo)"
},
"campaign_url": {
"type": "string",
"format": "uri"
},
"goal_amount": {
"type": "number",
"description": "Funding goal"
},
"raised_amount": {
"type": "number",
"description": "Amount actually raised"
},
"currency": {
"type": "string",
"description": "Currency code (e.g. EUR, USD)"
},
"campaign_end_date": {
"type": "string",
"format": "date",
"description": "Date the campaign ended (YYYY-MM-DD)"
},
"status": {
"type": "string",
"enum": ["ongoing", "funded", "failed", "cancelled", "delivered"],
"description": "Current status of the crowdfunding campaign — important for campaigns that were funded but never shipped, or that were cancelled"
}
},
"required": ["platform"]
},
"soundtrack": {
"type": "object",
"description": "Soundtrack information, if relevant (optional, table bso)",
"properties": {
"composer": {
"type": "string",
"description": "Name of the composer"
},
"digital": {
"type": "boolean",
"description": "True if the soundtrack is available digitally"
},
"physical": {
"type": "boolean",
"description": "True if the soundtrack was released physically"
},
"collector_edition": {
"type": "boolean",
"description": "True if there's a collector's edition of the soundtrack"
}
}
},
"awards": {
"type": "array",
"description": "Awards received by the game, if any (optional, table premiosjuegos)",
"items": {
"type": "object",
"properties": {
"award_name": {
"type": "string",
"description": "Name of the award (e.g. The Game Awards, Independent Games Festival)"
},
"edition": {
"type": "string",
"description": "Award category or edition, if relevant"
},
"year": {
"type": "integer",
"description": "Year the award was received"
}
},
"required": ["award_name", "year"]
}
},
"tags": {
"type": "array",
"description": "Free-form descriptive tags for the game (optional, table tagjuegos)",
"items": { "type": "string" }
},
"dlcs": {
"type": "array",
"description": "Titles of downloadable content associated with this game, if any (optional). Complements parent_game/episode_number for the inverse relationship.",
"items": { "type": "string" }
}
},
"required": ["title", "release_year"],
"examples": [
{
"title": "The Game Name",
"original_title": "",
"title_localized": "",
"release_year": 2024,
"series_name": "",
"parent_game": "",
"episode_number": "",
"studio": "Studio Name",
"co_developer": "",
"developer": "",
"publisher": "Publisher Name",
"engine": "Unreal Engine 5",
"description": "Short game description.",
"graphics_style": "3D",
"perspective": "Third person",
"view": "Free-roaming",
"platforms": [
{ "platform": "PC", "release_date": "2024-03-15", "digital": true, "physical": false, "development_status": "released", "early_access": false, "business_model": "Premium" },
{ "platform": "PlayStation 5", "release_date": "2024-03-15", "digital": true, "physical": true, "development_status": "released", "early_access": false, "business_model": "Premium" }
],
"genres": [
{ "genre": "Action", "subgenre": "Platformer" },
{ "genre": "Adventure" }
],
"pegi": {
"rating": "16",
"content_descriptors": ["violence", "language"]
},
"esrb": {
"rating": "M",
"content_descriptors": ["Violence", "Strong Language"]
},
"languages": [
{ "language": "English", "audio": true, "subtitles": true, "interface": true },
{ "language": "Spanish", "audio": false, "subtitles": true, "interface": true }
],
"launch_price": "59.99 EUR",
"official_website": "https://example.com",
"store_links": [
{ "store": "Steam", "url": "https://store.steampowered.com/app/000000" }
],
"crowdfunding": {
"platform": "Kickstarter",
"campaign_url": "https://www.kickstarter.com/projects/example/the-game-name",
"goal_amount": 50000,
"raised_amount": 75000,
"currency": "EUR",
"campaign_end_date": "2022-06-01",
"status": "delivered"
},
"soundtrack": {
"composer": "Composer Name",
"digital": true,
"physical": false,
"collector_edition": false
},
"awards": [
{ "award_name": "Independent Games Festival", "edition": "Excellence in Design", "year": 2024 }
],
"tags": ["singleplayer", "story-rich", "indie"],
"dlcs": ["The Game Name: Expansion Pack"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Estudio (ampliado)",
"schema_version": "2.0",
"description": "Schema ampliado para enviar datos de un estudio de desarrollo a importar en la base de datos de DeVuego (tabla estudios). Es una versión más completa de basic_studio_import_schema.json, que cubre más aspectos del modelo de datos que un proveedor puede conocer razonablemente. Los campos internos como id, slug o los nombres de archivo del logo los genera nuestro propio sistema y no deben solicitarse aquí.",
"type": "object",
"properties": {
"nombre": {
"type": "string",
"description": "Nombre del estudio"
},
"ano_fundacion": {
"type": "integer",
"description": "Año en que se fundó el estudio (opcional)"
},
"ano_cierre": {
"type": "integer",
"description": "Año en que el estudio cerró, si ya no está activo (opcional)"
},
"activo": {
"type": "boolean",
"description": "Si el estudio está actualmente activo (opcional)"
},
"ubicacion": {
"type": "string",
"description": "Ciudad / región donde se ubica el estudio (opcional)"
},
"pais": {
"type": "string",
"description": "País donde se ubica el estudio (opcional)"
},
"rango_empleados": {
"type": "string",
"enum": ["1", "2-5", "6-10", "11-25", "26-50", "51-150", "151-350", "351-700", "701-1000"],
"description": "Número de empleados, como uno de nuestros rangos predefinidos. Si solo tienes una cifra aproximada, elige el rango más cercano (opcional)"
},
"numero_empleados": {
"type": "integer",
"description": "Cifra exacta de empleados, como alternativa más precisa a rango_empleados (opcional)"
},
"descripcion": {
"type": "string",
"description": "Descripción corta del estudio (opcional)"
},
"es_empresa": {
"type": "boolean",
"description": "Si el estudio está legalmente constituido como empresa, frente a un equipo informal/independiente (opcional)"
},
"nombre_empresa": {
"type": "string",
"description": "Nombre legal/comercial bajo el que opera el estudio, si es distinto de su nombre público (opcional)"
},
"tipo_empresa": {
"type": "string",
"enum": ["S.L.", "S.A.", "Cooperativa", "Autonomo/S.L.U.", "Otros"],
"description": "Tipo legal de empresa, como una de nuestras categorías predefinidas (opcional)"
},
"multinacional": {
"type": "boolean",
"description": "Si el estudio pertenece a una multinacional (opcional)"
},
"nombre_empresa_matriz": {
"type": "string",
"description": "Nombre de la empresa matriz, si multinacional es true (opcional)"
},
"es_editora": {
"type": "boolean",
"description": "Si el estudio también actúa como editora (opcional)"
},
"sitio_web": {
"type": "string",
"format": "uri",
"description": "Sitio web oficial del estudio (opcional)"
},
"areas_especializacion": {
"type": "array",
"description": "Áreas de especialización, en texto plano (opcional, tabla desarrollos_areas, ej. Mobile, AAA, Indie, VR, Educativo)",
"items": { "type": "string" }
},
"personas_clave": {
"type": "array",
"description": "Personas clave asociadas al estudio y su cargo (opcional, tabla desarrolladores_empleo)",
"items": {
"type": "object",
"properties": {
"nombre": {
"type": "string",
"description": "Nombre completo de la persona"
},
"cargo": {
"type": "string",
"description": "Cargo en el estudio (ej. Fundador/a, Director/a creativo/a, CEO)"
},
"fecha_inicio": {
"type": "string",
"format": "date",
"description": "Fecha en que esta persona inició este cargo (AAAA-MM-DD), si se conoce"
},
"fecha_fin": {
"type": "string",
"format": "date",
"description": "Fecha en que esta persona dejó este cargo (AAAA-MM-DD), si aplica"
}
},
"required": ["nombre", "cargo"]
}
},
"datos_anuales": {
"type": "array",
"description": "Datos financieros/de plantilla anuales del estudio (opcional, tabla estudios_datosanuales). Puedes marcar un año como anónimo si no quieres que las cifras se atribuyan públicamente.",
"items": {
"type": "object",
"properties": {
"ano": {
"type": "integer",
"description": "Año al que corresponden estas cifras"
},
"facturacion": {
"type": "number",
"description": "Facturación anual"
},
"empleados": {
"type": "integer",
"description": "Número de empleados ese año"
},
"colaboradores_externos": {
"type": "integer",
"description": "Número de colaboradores externos/freelance ese año (opcional)"
},
"moneda": {
"type": "string",
"description": "Código de moneda (ej. EUR, USD)"
},
"anonimo": {
"type": "boolean",
"description": "Si es true, estas cifras solo deben usarse para informes agregados/sectoriales, sin atribuirse públicamente a este estudio"
}
},
"required": ["ano"]
}
}
},
"required": ["nombre"],
"examples": [
{
"nombre": "Nombre del Estudio",
"ano_fundacion": 2010,
"ano_cierre": null,
"activo": true,
"ubicacion": "Vigo",
"pais": "España",
"rango_empleados": "11-25",
"numero_empleados": 18,
"descripcion": "Descripción corta del estudio.",
"es_empresa": true,
"nombre_empresa": "",
"tipo_empresa": "S.L.",
"multinacional": false,
"nombre_empresa_matriz": "",
"es_editora": false,
"sitio_web": "https://example.com",
"areas_especializacion": ["Indie", "Mobile"],
"personas_clave": [
{ "nombre": "Nombre Apellido", "cargo": "Fundador/a y Director/a creativo/a", "fecha_inicio": "2010-01-01", "fecha_fin": "" }
],
"datos_anuales": [
{ "ano": 2023, "facturacion": 250000, "empleados": 18, "colaboradores_externos": 3, "moneda": "EUR", "anonimo": false }
]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Studio (extended)",
"schema_version": "2.0",
"description": "Extended schema for submitting game studio data to be imported into DeVuego's database (table estudios). This is a richer version of basic_studio_import_schema.json, covering more of the data model a data provider can realistically know. Internal fields such as id, slug, or logo filenames are generated by our own system and must not be requested.",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Studio name"
},
"founded_year": {
"type": "integer",
"description": "Year the studio was founded (optional)"
},
"closed_year": {
"type": "integer",
"description": "Year the studio closed down, if no longer active (optional)"
},
"active": {
"type": "boolean",
"description": "Whether the studio is currently active (optional)"
},
"location": {
"type": "string",
"description": "City / region where the studio is based (optional)"
},
"country": {
"type": "string",
"description": "Country where the studio is based (optional)"
},
"employees_range": {
"type": "string",
"enum": ["1", "2-5", "6-10", "11-25", "26-50", "51-150", "151-350", "351-700", "701-1000"],
"description": "Number of employees, as one of our predefined ranges. If you only have an approximate figure, pick the closest range (optional)"
},
"employees_count": {
"type": "integer",
"description": "Exact employee count, as a more precise alternative to employees_range (optional)"
},
"description": {
"type": "string",
"description": "Short description of the studio (optional)"
},
"is_company": {
"type": "boolean",
"description": "Whether the studio is legally constituted as a company, as opposed to an informal/independent team (optional)"
},
"company_name": {
"type": "string",
"description": "Legal/business name the studio operates under, if different from its public studio name (optional)"
},
"company_type": {
"type": "string",
"enum": ["LLC", "Corporation", "Cooperative", "Sole proprietor", "Other"],
"description": "Legal company type, as one of our predefined categories (optional)"
},
"multinational": {
"type": "boolean",
"description": "Whether the studio belongs to a multinational company (optional)"
},
"parent_company_name": {
"type": "string",
"description": "Name of the parent company, if multinational is true (optional)"
},
"is_publisher": {
"type": "boolean",
"description": "Whether the studio also acts as a publisher (optional)"
},
"website": {
"type": "string",
"format": "uri",
"description": "Studio's official website (optional)"
},
"specialization_areas": {
"type": "array",
"description": "Areas of specialization, in plain text (optional, table desarrollos_areas, e.g. Mobile, AAA, Indie, VR, Educational)",
"items": { "type": "string" }
},
"key_people": {
"type": "array",
"description": "Key people associated with the studio and their role (optional, table desarrolladores_empleo)",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Full name of the person"
},
"role": {
"type": "string",
"description": "Role at the studio (e.g. Founder, Creative Director, CEO)"
},
"start_date": {
"type": "string",
"format": "date",
"description": "Date this person started in this role (YYYY-MM-DD), if known"
},
"end_date": {
"type": "string",
"format": "date",
"description": "Date this person left this role (YYYY-MM-DD), if applicable"
}
},
"required": ["name", "role"]
}
},
"annual_data": {
"type": "array",
"description": "Annual financial/headcount data for the studio (optional, table estudios_datosanuales). You can mark a year as anonymous if you don't want the figures publicly attributed.",
"items": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"description": "Year these figures correspond to"
},
"revenue": {
"type": "number",
"description": "Annual revenue"
},
"employees": {
"type": "integer",
"description": "Number of employees that year"
},
"external_collaborators": {
"type": "integer",
"description": "Number of external/freelance collaborators that year (optional)"
},
"currency": {
"type": "string",
"description": "Currency code (e.g. EUR, USD)"
},
"anonymous": {
"type": "boolean",
"description": "If true, these figures should be used for aggregate/industry reporting only, not attributed publicly to this studio"
}
},
"required": ["year"]
}
}
},
"required": ["name"],
"examples": [
{
"name": "Studio Name",
"founded_year": 2010,
"closed_year": null,
"active": true,
"location": "Porto",
"country": "Portugal",
"employees_range": "11-25",
"employees_count": 18,
"description": "Short studio description.",
"is_company": true,
"company_name": "",
"company_type": "LLC",
"multinational": false,
"parent_company_name": "",
"is_publisher": false,
"website": "https://example.com",
"specialization_areas": ["Indie", "Mobile"],
"key_people": [
{ "name": "Jane Doe", "role": "Founder & Creative Director", "start_date": "2010-01-01", "end_date": "" }
],
"annual_data": [
{ "year": 2023, "revenue": 250000, "employees": 18, "external_collaborators": 3, "currency": "EUR", "anonymous": false }
]
}
]
}
Contáctanos si quieres enviarnos datos siguiendo estos schemas.