MEL Performance
Más FPS en bases grandes: menos tirones al llegar a la base y en la limpieza de cada hora, tope de sombras de antorchas y medidor A/B. Solo cliente. Viene apagado: se enciende en Ajustes → Accesibilidad. Experimental.MEL Performance
Mod de FPS para el cliente de Valheim, pensado para bases grandes (muchas piezas, antorchas y hogueras).
Experimental, solo cliente y opcional: no cambia el juego ni manda nada al servidor, y se puede jugar con o sin él en
el mismo servidor. GUID vsm.perf. Funciona solo (no necesita ningún otro mod) y se integra con MEL Horizons si
está instalado.
Qué esperar (honesto)
Valheim ya hace por su cuenta lo fácil: límite y prioridad de luces y sombras, hierba instanciada, actualización centralizada de componentes, recolección de basura incremental y escala de resolución. Por eso un "OptiFine" no da 2–5x en todas partes:
| Situación | Ganancia realista |
|---|---|
| Base grande (10 000–25 000 piezas, muchas antorchas) | 2x–4x, con la fase 2 (combinar mallas). Esta versión ataca sombras y tirones |
| Base limitada por lógica (cofres, criaturas, física) | 10–30 % |
| Explorando | 0–15 % de media; sobre todo menos tirones |
| Limitado por la tarjeta gráfica (4K, SSAO) | grande solo bajando la resolución 3D |
Por eso lo primero que trae el mod es cómo medirlo (benchmark reproducible y A/B): cada mejora se puede encender y apagar en caliente y comparar.
Encenderlo
Viene apagado: apagado, el juego queda exactamente como sin el mod. Se enciende en Ajustes → Accesibilidad →
"MEL Performance (más FPS)" (con su ayuda al pasar el ratón), en F1 (Enabled) o con vsm_perf on en la consola.
Qué hace (0.1.0)
Con el interruptor encendido, cada mejora tiene su propia opción (F1 o BepInEx/config/vsm.perf.cfg):
| Mejora | Config | Por defecto |
|---|---|---|
| La limpieza de assets de cada hora (congelón de 0,1–0,5 s) se aplaza a un momento tranquilo: menú, inventario, durmiendo, pantalla de carga o 30 s sin tocar nada (como mucho una hora más) | DeferAssetUnload |
sí |
| Tope de luces puntuales con sombra (cada una son 6 caras de sombra): se quedan con sombra las que más se ven y la que te ilumina; al resto se le quita solo mientras se dibuja el frame (el sigilo no cambia) | PointShadowBudget |
4 (-1 = juego) |
| Resolución de esas sombras según la distancia | PointShadowResolution |
Vanilla |
| Sombra del sol de objetos chicos (objetos tirados, decoración, antorchas, alfombras) solo hasta N m | SunSmallShadowCull |
0 (juego) |
| Distancia de las sombras del sol | SunShadowDistance |
0 (juego) |
| Cámara sin textura de normales (experimental) | DepthNormalsOff |
no |
| Al llegar a una base, crear objetos con presupuesto de ms por tanda (menos tirones), nunca más de 1,5 s más lento que el juego | SpawnBudgetMs, SpawnMaxExtraDelaySeconds |
4 ms, 1,5 s |
Nada de esto toca objetos de red, la simulación ni la lógica del juego.
Instalar
- Con Thunderstore Mod Manager o r2modman: buscar MEL_Performance. Solo necesita BepInExPack_Valheim.
- MEL Modpack ya lo trae como dependencia (apagado): cada jugador decide si lo enciende.
- Es solo de cliente: el servidor no lo necesita. En un servidor con vsm.guard, el servidor tiene que ser de una versión
que acepte
vsm.perfcomo opcional (MEL Modpack 0.1.21 o posterior).
Medir (con el mod encendido)
- Ctrl+F9: medidor (FPS, 1 % y 0,1 % low, peor frame, draw calls, lotes, SetPass, triángulos, objetos que proyectan sombra, basura por frame, piezas, objetos por crear, luces y sombras, MEL Horizons).
vsm_perf bench marcar base(en la consola, F5) guarda tu posición y hacia dónde miras;vsm_perf bench baseespera a que la base termine de cargar, calienta 5 s y mide 30 s girando la cámara siempre igual. Resultado enBepInEx/config/vsm.perf/bench_resumen.csvy un CSV por frame enbench/.vsm_perf ab sombras basecompara A (como el juego) y B (con la mejora) en secuencia ABBA, sin guardar la config. Mejoras:sombras,resolucion,depthnormals,solchicos,soldistancia,spawn,horizon(B = MEL Horizons apagado: cuánto cuesta).vsm_perf diff <mejora>captura A y B en el mismo frame y cuenta los píxeles distintos (PNG endiff/).vsm_perf prof onmide cuántos ms por frame se lleva cada sistema del juego (humo, sonidos, luces, IA, carga de objetos, MEL Horizons…);vsm_perf profmuestra el ranking.vsm_perf contadores,vsm_perf dump,vsm_perf ayuda.
Con MEL Horizons
- Se detecta solo (sin dependencia). El medidor y el benchmark muestran su estado, escala, instancias y draw calls; el instrumentador mide su costo.
- Hay un solo modo adaptativo por FPS: el de Horizons. Durante un benchmark se fija (escala 1) para que todas las corridas dibujen lo mismo, y después vuelve a como estaba.
- La creación de objetos por presupuesto nunca se atrasa más del 10 % de lo que Horizons espera antes de guardar una zona, para que no recuerde bases a medio cargar.
- MEL Performance no toca lo que usa Horizons: plano lejano de la cámara, lodBias, terreno lejano ni distancia de simulación.
Hoja de ruta
- Fase 2: combinar las mallas de las piezas por celdas de 16 m (la mejora grande en bases; 2x–4x según otros mods). Al golpear, reparar, mojar o construir, la celda vuelve a las piezas originales al instante.
- Fase 3: apagar luces tapadas por paredes y agrupar antorchas lejanas en una sola luz sin sombra.
Para desarrolladores
Carpeta perf/ del repo: dotnet build perf\VSM.Perf.slnx, dotnet test perf\VSM.Perf.slnx --no-build,
powershell -File perf\tools\pack_perf.ps1. Un solo DLL sin dependencias del modpack.
