Formatos de archivo
Qué es cada archivo que la app lee y escribe —el .txt de un bot, el .dbsim de una simulación, los .snp y los .json—, qué contiene por dentro y qué se reescribe al cargarlo.
La app trabaja con pocos formatos, y todos están pensados para que duren: se pueden guardar, pasar a otra computadora y volver a abrir. Esta página es la referencia de cada uno: qué es, qué contiene, con qué se abre y qué pasa cuando la app lo carga. Cómo se exportan e importan desde cada pantalla está en Tus datos; el formato del ADN en sí, en El formato .txt.
De un vistazo
| Archivo | Qué es | Quién lo escribe | Quién lo lee |
|---|---|---|---|
.txt | El ADN de un bot, en texto | Vos y el editor; el motor, al exportar un bot vivo | El cargador de ADN, en la app y en la clásica |
.dbsim | Una simulación guardada, en binario | Observar (Descargar .dbsim) y la clásica (Save sim) | La app (Importar .dbsim, Abrir un archivo .dbsim…) y la clásica (Load sim) |
.snp y _Mutations.txt | Censo de los vivos y registro de los muertos | Observar → Instantánea | Nadie dentro de la app: son texto para que lo leas vos |
.json de escenario | La configuración de una simulación | Experimentar (Exportar) | Importar .json de Experimentar, acá o en otro navegador |
.league.json | Un torneo con sus participantes y partidos | Competir (Exportar) | Importar .json de Competir (también la clásica) |
.json de biblioteca | Tus bots con sus versiones y tus marcas | Bots: biblioteca y ficha (⋯ → Exportar mis bots y marcas) | Importar biblioteca de Bots (también el inventario de la clásica) |
.html, .csv, .json, eyes.txt, .png | Salidas para leer aparte | Informes, Comparar y el inspector | Tu navegador, tu planilla, tu editor de texto |
El .txt de un bot
Todo bot es un archivo de texto: los del Bestiario (publicados en el foro y el wiki), los que escribís vos y los que el motor reconstruye al exportar. Traer uno a una simulación es sencillo: en Inicio, Desde un archivo con extensión .txt lo siembra en un mundo con algas; un escenario los nombra en sus especies; la clásica lo pega en el panel de siembra. Cómo lee el cargador ese texto línea por línea —los comentarios, la cabecera '#, el hash— está en El formato .txt, y no se repite acá.
La simulación guardada (.dbsim)
Qué contiene
El .dbsim es una fotografía completa del mundo en el ciclo en que lo bajaste:
- los bots que existen en ese momento, cadáveres incluidos: posición, rumbo y velocidad, energía, cuerpo, desechos, veneno, toxina, caparazón y baba, cloroplastos, edad, generación y mutaciones, especie y madre, la memoria entera, el ADN y los lazos (con el esperma recibido, si el bot estaba fecundado);
- los disparos en vuelo, los obstáculos y los teleporters;
- el registro de especies: nombre, color, si es vegetal, sus tasas de mutación;
- todos los parámetros y costos de la simulación, el ciclo actual, la semilla, la fecha de arranque, el sol y las mareas;
- el estado de la autoespeciación: si el archivo la trae encendida, con sus umbrales, el motor la cumple aunque la app no tenga un control para encenderla (ver Especies y linaje).
Es el mismo formato binario del DarwinBots original, que guardaba estos archivos con el nombre .sim.
Lo que no viaja y se reescribe al cargar
Tres cosas no están en el archivo, y al cargar se rellenan o se reescriben:
- El ADN de cada especie. El registro guarda el nombre, no el código. Al cargar, la app lo busca en lo que esta página sembró (el escenario de la corrida y tus siembras) y en el Bestiario. Si no lo encuentra, avisa con el nombre del bot: esa especie no puede volver a sembrarse ni a repoblar, aunque los bots que ya la llevan siguen bien, porque cada uno guarda su propio ADN.
- Los cloroplastos iniciales y los ajustes de los modos de juego (el reinicio, la descalificación, el F1…). En el original sobrevivían a la carga porque vivían en el programa, no en el archivo. Al retomar una corrida guardada con escenario, la app los reescribe con los del escenario; en un
.dbsimabierto como archivo suelto valen los de la sesión. - El apagado global de las mutaciones. El archivo lo guarda, pero el cargador del original lo encendía siempre (un detalle de cómo leía el indicador), y el port replica ese comportamiento: al cargar una simulación, las mutaciones quedan encendidas. Las tasas de cada especie sí viajan, así que solo tenés que volver a apagarlas si así lo querías.
Una cuarta no es del formato sino de la app: la historia de métricas, los eventos y el linaje no van adentro del .dbsim; quedan con la corrida guardada en el navegador, recortados al ciclo del archivo (ver Tus datos). El .dbsim es el mundo, no la corrida entera.
Retomar no es repetir
El generador de azar tampoco viaja: al cargar, el motor lo vuelve a sembrar con la semilla que trae el archivo. Por eso una corrida retomada sigue una vida válida pero no idéntica a la que habría tenido de no guardarla. Lo que sí se garantiza: el mismo archivo, cargado en cualquier navegador, corre igual. La mecánica completa de la semilla está en Semillas y reproducibilidad.
Una y otra interfaz
La app y la clásica comparten motor y formato: un archivo de una se abre en la otra. La clásica lo baja como darwinbots-cycleN.dbsim (N es el ciclo) y su selector también acepta archivos con la extensión vieja, .sim; por dentro es lo mismo.
Las instantáneas (.snp)
El menú Instantánea de Observar baja dos cosas:
- Instantánea de los vivos (.snp): una ficha de cada bot vivo en el momento en que tocás el botón, con su ADN completo. Con Con el detalle de mutaciones marcado baja además un
_Mutations.txtcon la historia de mutaciones de cada uno. - Registro de muertos: con Registrar los muertos encendido, la simulación anota una ficha de cada bot que muere (es el parámetro Registrar los muertos; Sin vegetales, el Sin vegetales en el registro). Descargar baja lo acumulado como
DeadRobots.snpyDeadRobots_Mutations.txt, y el registro sigue; Reiniciar lo borra del todo.
Los vivos se bajan como <corrida>-<ciclo>.snp. Por dentro es texto plano, como en el original:
Rob id,Parent id,Founder name,Generation,Birth cycle,Age,Mutations,New mutations,Dna length,Offspring number,kills,Fitness,Energy,Chloroplasts
13,0,Animal Minimalis,2,1450,331,1,1,27,5,2,1045935.86,4300,0
cond
*93 1 <
start
5 .up store
stop
Una línea de cabecera con las catorce columnas y, por cada bot, su línea de números y debajo su ADN. «New mutations» son las propias del bot (no las heredadas); «Energy» es su energía más diez veces su cuerpo; «Fitness» es la misma aptitud que usa Buscar el mejor. Se abre con cualquier editor de texto: sirve para quedarte con los ganadores de una evolución, compararlos o analizarlos con tus propios programas. La app no los relee.
Los .json de la app
Escenarios
El .json de un escenario es texto con sangría, pensado para leerse y editarse a mano: nombre, descripción y etiquetas; los parámetros como cambios encima de una base (Clásica o Liga F1); las especies con su bot, cantidad, color, marca de vegetal, energía inicial y una huella del ADN; y los objetos del mundo. Los bots del Bestiario van por nombre y huella; los tuyos viajan con su ADN adentro, así que el archivo funciona en cualquier navegador. Un ejemplo entero, campo por campo, está en Escenarios. Al importar, si ya tenés un escenario con el mismo identificador, entra como uno nuevo sin pisar el tuyo.
Torneos
El .league.json lleva el torneo entero: cada temporada con sus reglas, su formato y sus participantes —cada uno con el ADN congelado al inscribirse—, y todos los partidos jugados. No hace falta tener los bots: el ADN viaja adentro, así que se puede compartir con cualquiera. Al importar entra como torneo nuevo (con «(importado)» si el nombre ya existía) y también se aceptan los archivos que exporta la clásica.
Tu biblioteca
El .json de Bots lleva todos tus bots propios con sus versiones, tus favoritos, etiquetas, notas y selecciones con nombre. La importación suma sin borrar nada, y también acepta el inventario exportado por la clásica. Los detalles, en Bots: biblioteca y ficha.
Salidas para leer aparte
- Informe
.html(Informes): un solo archivo autocontenido, con los gráficos y los datos embebidos; se abre sin conexión y se imprime en A4 desde el navegador. - Series
.csvy Todo.json(Informes): las métricas de una corrida para tu planilla, o la historia, los eventos y el linaje completos. Los barridos de Comparar bajan sus propios CSV. eyes.txt: el gen que fija los ojos diseñados en el inspector, listo para pegar en un bot.- Imagen del mundo (PNG): el campo tal como se ve, desde Observar o el Panel de Analizar.
.gsave: el volcado de texto de un gráfico del original. Solo existe en la clásica; la app lo reemplaza con el CSV.
De dónde vienen estos nombres
Qué respaldar
La regla práctica: exportá seguido lo que es barato de exportar y caro de perder.
- Tus bots (el
.jsonde la biblioteca) y tus torneos: son chicos y valen años de trabajo. - Las corridas que te importen, con Descargar .dbsim antes de que la política de 20 las empuje afuera.
- Tus escenarios y los informes que quieras conservar.
Todo lo demás se vuelve a generar. Cómo hacerlo, y qué hace perder los datos del navegador, está en Tus datos.