smallville  by nmatter1

Generative agents for video games

created 2 years ago
696 stars

Top 49.9% on sourcepulse

GitHubView on GitHub
Project Summary

Smallville provides a framework for creating dynamic, memory-enabled non-player characters (NPCs) in video games, powered by Large Language Models (LLMs). It aims to reduce manual programming of NPC interactions by enabling agents to observe their environment, store memories, and react to state changes, leading to more realistic and engaging virtual characters. The project is suitable for game developers and researchers interested in AI-driven character behavior.

How It Works

Smallville leverages LLMs to simulate agent behavior, allowing them to perceive their surroundings, recall past experiences, and make decisions. The core approach involves an event-driven simulation loop where agents' states and memories are updated based on environmental changes. This contrasts with traditional scripted NPC behaviors by offering emergent, dynamic interactions driven by the LLM's understanding of context and memory.

Quick Start & Requirements

  • Server: Java 17 runtime required. Run java -jar smallville-server.jar --api-key <OPEN_AI_KEY> --port 8080.
  • Client Libraries: Java (via Jitpack) and JavaScript (via npm).
  • Dependencies: OpenAI API key is mandatory for LLM interaction.
  • Resources: A running server instance is needed. The dashboard is available at http://localhost:8080/dashboard.
  • Docs: Example Project

Highlighted Details

  • Based on the "Generative Agents: Interactive Simulacra of Human Behavior" research paper.
  • Provides a dashboard for monitoring agent memory streams, activities, and locations.
  • Supports client interaction via HTTP endpoints, Java, and JavaScript.
  • Allows direct manipulation of object states and agent interviews through the dashboard.

Maintenance & Community

Licensing & Compatibility

  • The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is undetermined.

Limitations & Caveats

The project is described as having an "example project" that is "not finished yet." The specific LLM models supported beyond OpenAI are not detailed, and configuration options for local LLM providers like LocalAI are mentioned but not fully elaborated.

Health Check
Last commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
14 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.