CoolFace
Modelpublic

Novaciano/RC.Outbreak-1B-iMatrix-GGUF

sourceHugging Facegemmaupdated 8mo agoView on Hugging Face
0likes13downloads
Model Card

Raccoon City Outbreak - 1B (Gemma3)

<center> Este bot fue creado como prototipo con la idea de intentar replicar la experiencia del Resident Evil Outbreak en un modelo 1B de Gemma3 al que se le ha inyectado un dataset para facilitar esto.

image/png </center>

Para *replicar la experiencia de Resident Evil Outbreak* en un modelo Gemma 3 de 1B, el enfoque correcto no es “copiar” el juego, sino emular sus pilares sistémicos y narrativos dentro de las limitaciones de un LLM pequeño. A continuación detallo un marco técnico y de diseño** que funciona en la práctica con modelos de ese tamaño.


Bots para este LLM

RE • Outbreak (🇪🇦): AQUÍ

RE • Outbreak (🇬🇧): HERE

RE • Raccoon City (🇬🇧): HERE


1. Identificar los pilares de Outbreak (lo que realmente hay que replicar)

No es el lore ni los personajes; es el loop de juego emergente:

  1. 1.Supervivencia cooperativa asimétrica
  2. 2.Información incompleta (el jugador no lo sabe todo)
  3. 3.Estados persistentes (infección, heridas, estrés)
  4. 4.Eventos dinámicos y no deterministas
  5. 5.Dependencia del entorno (mapa, objetos, puertas, atajos)
  6. 6.Fracaso como resultado válido (muertes abruptas)

Todo lo que sigue gira alrededor de esto.


2. Arquitectura recomendada para Gemma 3 1B

Gemma 1B no soporta razonamiento largo ni simulaciones complejas internas, así que debes externalizar la lógica.

Esquema correcto

[Usuario]
   ↓
[Gemma 3 1B]
   ↓
[Narrador + Parser]
   ↓
[Motor de Estado (externo)]
   ↓
[Gemma 3 1B]

Gemma no decide el mundo, solo narra y reacciona.


3. Motor de estado (CRÍTICO)

Debes mantener fuera del modelo una estructura tipo:

json
{
  "players": {
    "Kevin": {
      "hp": 62,
      "infection": 34,
      "status": ["bleeding"],
      "inventory": ["Handgun", "9mm x6"]
    }
  },
  "environment": {
    "location": "Raccoon Hospital - West Wing",
    "lights": "off",
    "threat_level": 3
  },
  "events": {
    "timer": 4,
    "pending": ["door_breach"]
  }
}

Gemma solo recibe:

  • —estado resumido
  • —estímulos sensoriales
  • —restricciones

Nunca el JSON completo.


4. Simulación de cooperación (clave de Outbreak)

Gemma no puede manejar múltiples mentes bien, así que:

Solución correcta

  • —1 usuario = 1 personaje
  • —Los demás jugadores son NPCs con agendas ocultas
  • —Cada NPC tiene:
  • —objetivo
  • —miedo
  • —umbral de cooperación

Ejemplo:

NPC: Yoko
Estado: asustada
Confianza: baja
Puede mentir u ocultar objetos

Eso recrea la tensión cooperativa real de Outbreak.


5. Infección y presión temporal

Esto es obligatorio.

Implementa:

  • —infección progresiva (ticks)
  • —eventos por temporizador
  • —consecuencias irreversibles

Gemma solo narra, el motor decide:

EVENTO: la infección aumenta +6%
CONSECUENCIA: visión borrosa

Nunca dejes que el modelo “olvide” el tiempo.


6. Contenido entrenable (si haces LoRA)

Si quieres afinar Gemma:

Dataset ideal

  • —Logs de partidas tipo:
  • —decisiones fallidas
  • —muertes abruptas
  • —cooperación rota
  • —NO diálogos largos
  • —NO intros épicas

Formato:

[ESTADO]
[ESCENA]
[DECISIÓN USUARIO]
[RESULTADO HOSTIL]

Eso entrena brutalidad sistémica, no fantasía.


7. Lo que NO debes hacer

  • —No dejes a Gemma “dirigir” el juego
  • —No permitas finales garantizados
  • —No expliques reglas al jugador
  • —No suavices consecuencias

Si haces eso, ya no es Outbreak.


8. Resultado esperado

Con este enfoque, Gemma 3 1B puede ofrecer:

  • —sesiones tensas
  • —sensación de vulnerabilidad
  • —cooperación frágil
  • —muertes injustas
  • —narrativa emergente

Exactamente lo que hacía Resident Evil Outbreak… pero en texto y con recursos mínimos.

Perfecto. Vamos directo a implementación en KoboldAI, sin teoría innecesaria. Te indico qué escribir, dónde, qué NO usar, y qué valores concretos funcionan para este caso (Outbreak-like, Gemma-class / 1B aprox.).

Asumo KoboldAI (KoboldCPP o KoboldAI United) con soporte de:

  • —System Prompt
  • —Author’s Note
  • —World Info
  • —Parámetros de inferencia estándar

9. Qué va en cada sitio (visión global)

ComponenteFunción real¿Se usa?
System PromptReglas duras, prohibiciones, rolSÍ (crítico)
Author’s NoteRecordatorio de tono y formatoSÍ (muy corto)
Mensaje inicialArranque de sesiónSÍ
World InfoHechos persistentes no sistémicosSÍ, con cuidado
InferenciaControl del caosCRÍTICO

10. Prompt base (núcleo del sistema)

Gemma debe estar limitada y reprimida, no “creativa libre”.

Ejemplo de system prompt:

Rol: Narrador de supervivencia cooperativa.
Prohibido: meta, optimización, decisiones por el jugador.
Estilo: descriptivo, conciso, hostil al error.
Reglas:
- El mundo es peligroso.
- Los recursos son escasos.
- Los NPCs no ayudan sin motivo.
- La información puede ser incompleta o errónea.
Formato fijo:
ESCENA:
EVENTOS:
OPCIONES:

Esto reduce al mínimo la alucinación, algo vital en 1B.

Variación en inglés (Suele funcionar mejor)

Esto va en System Prompt, literal o casi literal. No lo adornes.

You are a survival horror narrator.

Your role is to describe scenes, events, and consequences.
You must NEVER:
- Explain rules
- Optimize player decisions
- Provide reassurance
- Decide actions for the player
- Break format

The world is hostile.
Resources are scarce.
Information may be incomplete or wrong.
Failure is normal and sudden.

You do NOT control the game logic.
You only narrate what the player perceives.

Always use this exact format:

SCENE:
EVENTS:
OPTIONS:

Notas:

  • —Frases cortas.
  • —Imperativos negativos claros.
  • —Nada de lore.
  • —Nada de “you can try to…”.

Esto castra positivamente al modelo.


11. Author’s Note (recordatorio de superficie)

Aquí no pongas reglas, solo presión estilística. Máximo 3–4 líneas.

Tone is tense, cold, and concise.
Descriptions are sensory, not explanatory.
Consequences are abrupt and unfair.
Do not soften outcomes.

Funciona como “aguja moral” sin competir con el System Prompt.


12. Mensaje inicial (inicio de partida)

Este es el primer output del modelo, así que debe ya respetar el formato.

Ejemplo funcional:

SCENE:
A dark hospital corridor. Emergency lights flicker. The air smells of disinfectant and rot. You hear coughing somewhere beyond a closed door.

EVENTS:
Your chest burns when you breathe. Something wet drips from your left arm.

OPTIONS:
- Check your wound
- Move toward the coughing
- Try the nearby door

Claves:

  • —No contexto previo largo.
  • —No presentación épica.
  • —Inmediatamente incomodidad + decisión.

13. World Info (sí, pero muy limitado)

Cuándo usar World Info

Solo para:

  • —localizaciones
  • —objetos importantes
  • —NPCs recurrentes

Cuándo NO usarlo

  • —estados numéricos
  • —reglas
  • —timers
  • —lógica de infección

Eso va fuera del modelo, en tu motor.

Ejemplo correcto

Entry: Raccoon Hospital – West Wing

A neglected hospital wing.
Power is unreliable.
Multiple locked doors and narrow corridors.
Sounds often echo from unknown sources.

Entry: Yoko

A quiet civilian survivor.
Avoids direct confrontation.
Values self-preservation over cooperation.

Nada más. Si pones mecánicas aquí, el modelo empezará a razonar.


14. Inferencia: valores CONCRETOS que funcionan

Aquí está lo que la mayoría arruina.

Objetivo

  • —Baja creatividad
  • —Alta coherencia
  • —Cero épica
  • —Respuestas cortas y secas

Parámetros recomendados (Gemma / 1B-like)

Temperatura

0.4 – 0.55
  • —<0.4 → seco, repetitivo
  • —> 0.6 → empieza a “ayudar”

Punto dulce: 0.45


Top-K

30 – 50
  • —Muy bajo mata variación sensorial
  • —Muy alto introduce lirismo

Recomendado: 40


Top-P

0.85 – 0.9

No lo pongas en 1.0. 0.88 funciona muy bien.


Typical Sampling (si existe)

0.9 – 0.95

Ayuda a evitar frases “bonitas”.


Repetition Penalty

1.1 – 1.15

Más alto hace que invente de más.


Max Tokens

120 – 180

Nunca más. Si el modelo tiene espacio, lo llenará con mierda.


Mirostat

NO Introduce variabilidad adaptativa, justo lo que no quieres.


15. Cosas que NO debes hacer (importante)

  • —No subas temperatura “para hacerlo más interesante”
  • —No pongas reglas en World Info
  • —No permitas que el modelo narre consecuencias sistémicas no confirmadas por tu motor
  • —No dejes que explique por qué algo pasó

Si dudas: menos texto, menos libertad.


16. Regla final (la más importante)

Si en algún momento el modelo:

  • —aconseja,
  • —tranquiliza,
  • —explica mecánicas,
  • —justifica consecuencias,

el sistema está mal configurado, no es “culpa del modelo”.


Model creator: UmbrellaInc<br/> Original model: UmbrellaInc/T-Virus-1B<br/> GGUF quantization: provided by Novaciano using llama.cpp<br/>

Special thanks

🙏 Special thanks to Georgi Gerganov and the whole team working on llama.cpp for making all of this possible.

Use with Ollama

bash
ollama run "hf.co/Novaciano/RC.Outbreak-1B-iMatrix-GGUF:Q4_K_M"

Use with LM Studio

bash
lms load "Novaciano/RC.Outbreak-1B-iMatrix-GGUF"

Use with llama.cpp CLI

bash
llama-cli --hf "Novaciano/RC.Outbreak-1B-iMatrix-GGUF:Q4_K_M" -p "The meaning to life and the universe is"

Use with llama.cpp Server:

bash
llama-server --hf "Novaciano/RC.Outbreak-1B-iMatrix-GGUF:Q4_K_M" -c 4096