Skip to main content

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.

Python Status Tests Open in Colab

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

npcore-0.1.3.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

npcore-0.1.3-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

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

Hashes for npcore-0.1.3.tar.gz
Algorithm Hash digest
SHA256 69e66ac2981bfe847986b027d2ec7ee124a905d617b34f3e118e608a173b1819
MD5 e1b7e43838779d7725c2151ebf59cccc
BLAKE2b-256 b29168fa5e943e3603055681188a365a9e6c1111329162942fcd61455c4541c6

See more details on using hashes here.

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

Hashes for npcore-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 792c9e247ad1a72adc07bb32b795c6f3c597ea6807318e65a0073872f96b9205
MD5 85adfc8779e454c2969ecafedb4c9179
BLAKE2b-256 8f478932680941a4a3b4725b089807982dbaf6251d9d939a54cff47263b8ab10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page