Scripts, datos en bruto y semillas
Lanza sims desde un script con la CLI simhive, descarga el json2 y el CSV en bruto de simc de cualquier resultado, reproduce una ejecución con su semilla y consigue límites más altos como theorycrafter conocido.
La interfaz está hecha para decidir sobre el equipo. El día de un theorycrafter son cientos de sims, efectos pequeños y números en bruto en un notebook. Estos son los puntos de entrada para eso.
La salida en bruto de cualquier resultado #
Cada resultado tiene dos botones junto a Guardar informe:
- json2 descarga el json2 en bruto de SimulationCraft de la ejecución: cada estadística, buff, proc, recurso y línea de tiempo que simc escribió, tal como la interfaz lo recibió. Una ejecución en el pool es la salida combinada de sus lotes, con la misma estructura que simc usa para sus propios hilos.
- CSV descarga las filas de comparación de un resultado de Top Gear, Droptimizer o Avanzado: nombre, ranura, nivel de objeto, id del objeto, origen, DPS, error, diferencia.
El json2 en bruto se conserva, comprimido, junto a la entrada del historial en la máquina que ejecutó la sim, y se borra con ella. Una sim lanzada desde la interfaz web del pool lo conserva con el resultado hasta que una de tus máquinas la pasa al Historial, 48 horas como máximo, salvo que sea muy grande (más de 8 MB comprimido).
Reproducir una ejecución #
Cada línea de resultado termina con la semilla que usó la ejecución y el commit de SimulationCraft del pool. Una ejecución en el pool indica la semilla de su primer lote; los demás lotes cuentan hacia arriba desde ella. Repetir, misma semilla vuelve a lanzar la misma sim con esa semilla:
- en una sola máquina el resultado es idéntico, así que un cambio que hagas en la entrada es la única diferencia;
- en el pool el trabajo se reparte entre las máquinas que estén online, así que las semillas de los lotes pueden no coincidir igual y el resultado puede variar dentro de su error.
También puedes poner seed=123456 tú mismo en una sim de Avanzado; el pool lo respeta.
La CLI #
El motor de la app escucha en tu máquina (puerto 4747, o el siguiente libre, indicado en Ajustes → This machine). El script simhive envía un archivo .simc como sim de Avanzado, espera y escribe lo que le pidas:
simhive run mysim.simc --json result.json --raw result.json2.json --csv rows.csv
El archivo es la sim tal como la escribirías para simc: un personaje, opciones, líneas profileset.. Los profilesets se convierten en filas. Las iteraciones, el error objetivo y la duración del combate salen del archivo. Imprime los DPS, el número de filas, la semilla y el commit, y sale con 0 cuando la sim ha terminado.
Dónde está el script: bin/simhive.mjs en la carpeta del motor (la app: data/localbots/ dentro de su carpeta de datos; Docker: /app). Ejecútalo con node bin/simhive.mjs run …, o haz npm link una vez en esa carpeta para tener simhive en tu PATH. --server apunta a otro motor, por ejemplo uno en Docker en tu LAN.
Límites más altos #
Las sims en el pool tienen tope para que un miembro no pueda acaparar el pool durante una hora: 200.000 iteraciones por perfil, 1.000 profilesets, error objetivo no más fino que 0,05 %. Un theorycrafter que persigue un efecto del 0,1 % necesita más. El operador puede marcar a un miembro como high limits en la consola: un millón de iteraciones, 5.000 profilesets, error objetivo hasta 0,01 %. Las reglas sobre archivos y red no cambian nunca. Pídeselo al operador de tu pool.