Librería en Python para simulación de NPCs con toma de decisiones, emociones, objetivos y aprendizaje.
Project description
npcore
Framework de simulación de NPCs con inteligencia emergente, comportamiento social y toma de decisiones adaptativa.
npcore es una librería en Python para simular NPCs (Non-Player Characters) inteligentes en entornos dinámicos.
Permite modelar comportamiento autónomo mediante reglas, memoria, emociones, aprendizaje, interacción social y navegación espacial.
Demo de simulación
Ejemplo de simulación:
Visualización del entorno
Descripción
npcore implementa un sistema modular para construir agentes que:
- toman decisiones basadas en reglas
- aprenden de experiencias pasadas
- reaccionan a eventos del entorno
- interactúan con otros NPCs
- cooperan en grupos
- navegan en mapas con obstáculos y costos
- generan narrativas de su comportamiento
Está diseñada como una base para simulaciones, videojuegos, sistemas multi-agente y experimentación en comportamiento emergente.
Instalación
Instala la librería directamente con pip:
pip install npcore
En Google Colab:
!pip install npcore
Uso básico
from npcore.brain import Brain
from npcore.npc import NPC
from npcore.environment import Environment
# Crear cerebro
brain = Brain()
def idle_rule(context):
return {"run": 1.0, "wait": 1.0}
brain.add_rule("idle", idle_rule)
# Crear NPC
npc = NPC("Guard", brain)
npc.set_state("idle")
# Crear entorno
env = Environment(width=8, height=6)
env.add_npc(npc)
# Ejecutar simulación
env.run(steps=5)
# Ver resumen
print(env.summary())
Características principales
Sistema de decisiones
- Motor de reglas (Brain)
- Estados dinámicos (idle, group, react, etc.)
- Selección probabilística de acciones
Memoria y aprendizaje
- Memoria estructurada de eventos
- Prioridad de memoria
- Aprendizaje basado en éxito de acciones
- Ajuste dinámico de decisiones
Personalidad y emociones
- Traits: agresión, sociabilidad, miedo, lealtad
- Estados emocionales que afectan decisiones
Interacción social
- Relaciones entre NPCs
- Comunicación entre aliados
- Sistema de órdenes (líder → grupo)
- Compartición de objetivos y prioridades
Comportamiento grupal
- Seguimiento de líder
- Reagrupamiento
- Coordinación de destino
- Reacción a eventos compartidos
Movimiento y entorno
- Pathfinding con A*
- Obstáculos en el mapa
- Zonas con costos de movimiento
- Evaluación de riesgo local
- Movimiento hacia objetivos
Sistema de eventos
- Eventos globales y locales
- Reacciones basadas en reglas
- Integración con módulos del entorno
Visualización
- Render ASCII del entorno
- Visualización con matplotlib
- Simulación paso a paso
Narrativa
- Generación de historia basada en acciones
- Resumen automático de la simulación
Ejemplo completo
from npcore.environment import Environment
from npcore.npc import NPC
from npcore.brain import Brain
env = Environment(width=8, height=6)
brain = Brain()
def rule(context):
return {"run": 1.0, "wait": 0.5}
brain.add_rule("idle", rule)
npc1 = NPC("Captain", brain)
npc2 = NPC("Guard", brain)
npc1.set_state("idle")
npc2.set_state("idle")
env.add_npc(npc1)
env.add_npc(npc2)
env.run(steps=5)
print(env.summary())
Estructura del sistema
npcore está compuesto por los siguientes módulos:
- NPC: agente principal con estado, memoria, emociones y comportamiento
- Brain: motor de decisiones basado en reglas
- Environment: entorno donde interactúan los NPCs
- pathfinding: navegación con A*
- probability: selección probabilística de acciones
- story_engine: generación de narrativa
Casos de uso
- simulación de comportamiento de agentes
- prototipos de IA para videojuegos
- sistemas multi-agente
- experimentación académica
- modelado de interacción social
- análisis de comportamiento emergente
Tests
Para ejecutar los tests:
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file npcore-0.1.3.tar.gz.
File metadata
- Download URL: npcore-0.1.3.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69e66ac2981bfe847986b027d2ec7ee124a905d617b34f3e118e608a173b1819
|
|
| MD5 |
e1b7e43838779d7725c2151ebf59cccc
|
|
| BLAKE2b-256 |
b29168fa5e943e3603055681188a365a9e6c1111329162942fcd61455c4541c6
|
File details
Details for the file npcore-0.1.3-py3-none-any.whl.
File metadata
- Download URL: npcore-0.1.3-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
792c9e247ad1a72adc07bb32b795c6f3c597ea6807318e65a0073872f96b9205
|
|
| MD5 |
85adfc8779e454c2969ecafedb4c9179
|
|
| BLAKE2b-256 |
8f478932680941a4a3b4725b089807982dbaf6251d9d939a54cff47263b8ab10
|