Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
0

AI Character Engine - NPC Dialogue System

A topic by Abhinaw_M4 created 2 days ago Views: 21
Viewing posts 1 to 1

๐Ÿค– AI Character Engine

Transform NPCs from Scripted Robots into Memorable Characters

Python Version License: MIT Ollama Required PRs Welcome

Consistent, personality-driven AI characters with memory and evolving relationships

GITHUB  - https://github.com/Luciferjimmy/ai-character-engine

ITCH.IO - https://abhinaw-m4.itch.io/ai-character-engine-npc-dialogue-system

๐ŸŽฌ Quick Demo

See it in action! Watch your NPCs come alive with real personalities:
from character_engine import Character, Conversation  # Create characters that feel real knight = Character(     name="Sir Galadon",     personality={"bravery": 9, "loyalty": 8, "wisdom": 6},     goals=["Protect the kingdom", "Find the lost artifact"],     speaking_style="formal, honorable, slightly poetic" )  merchant = Character(     name="Baron Von Trader",      personality={"friendliness": 7, "greed": 8, "cunning": 6},     goals=["Make profit", "Expand business", "Stay safe"],     speaking_style="charming, persuasive, money-focused" )  # Watch them interact naturally characters = {"knight": knight, "merchant": merchant} conversation = Conversation(characters, "Medieval marketplace")  responses = conversation.run_round("The knight approaches the merchant's stall") for name, response in responses.items():     print(f"{name}: {response}")

Output:

knight: "Good morrow, merchant. Your wares are most exquisite this day." merchant: "Ah, noble knight! For you, a special price on this fine blade..." 

โœจ Why This Beats Everything Else

FeatureโŒ Other AI NPCsโœ… Our Engine
Personality Consistency Break character after 3-4 exchanges Perfect consistency across 100+ conversations
Memory Goldfish memory, forgets everything Remembers relationships and past interactions
Relationships Static, never change Evolve naturally based on interactions
Setup Time Hours of configuration 5 minutes to create complex characters
Cost $1000+/month for APIs Free & local with Ollama

๐Ÿš€ Installation

  1. Install Ollama
    curl -fsSL https://ollama.ai/install.sh | sh
  2. Pull the AI Model
    ollama pull phi3
  3. Install the Engine
    git clone https://github.com/Luciferjimmy/ai-character-engine.git cd ai-character-engine pip install -e .

โœ… Done! You're ready to create amazing characters.

๐ŸŽฎ Use Cases

๐Ÿ•น๏ธ Game Development

shopkeeper = Character(     name="Old Man Jenkins",     personality={"friendliness": 8, "greed": 6, "wisdom": 7},     goals=["Make money", "Protect his shop", "Help adventurers"],     speaking_style="folksy, wise, slightly greedy" )  # NPCs remember player choices! if player_saved_village:     response = shopkeeper.think("Player returns after saving the village")     # "Hero! The people sing songs of your bravery!"

๐ŸŽ“ Educational Tools

einstein = Character(     name="Albert Einstein",     personality={"intelligence": 10, "creativity": 9, "humor": 7},     goals=["Explain physics simply", "Inspire curiosity"],     speaking_style="thoughtful, metaphorical, wise" )  response = einstein.think("Student asks: What is the most beautiful thing about the universe?")

๐Ÿฅ Therapeutic Simulations

therapist = Character(     name="Dr. Evans",     personality={"empathy": 9, "patience": 8, "insight": 7},     goals=["Help patients", "Provide support", "Guide growth"],     speaking_style="compassionate, professional, supportive" )

๐ŸŽญ Interactive Stories

characters = {"detective": detective, "suspect": suspect, "witness": witness} story = Conversation(characters, "Murder mystery scene")

๐Ÿ“š Comprehensive Examples

  • ๐ŸŽฏ Basic Demo
    python examples/simple_demo.py
  • ๐ŸŽฎ Game NPC Demo
    python examples/game_npc_demo.py
  • ๐ŸŽ“ Educational Demo
    python examples/educational_demo.py

๐Ÿ”ง API Reference

Character Class

Character(     name: str,     personality: Dict[str, Any],     goals: List[str],     speaking_style: str,     relationships: Dict[str, int] = None )

Core Methods

response = character.think("Situation description") character.update_relationship("other_character", +2) history = character.get_conversation_history(limit=10)

Conversation Management

conversation = Conversation(characters, "Scenario description") responses = conversation.run_round("Current situation") summary = conversation.get_conversation_summary()

๐Ÿ“Š Real Results

Game NPC Demo Output:

Blacksmith: "Hearing strange tales around these parts ain't uncommon..." Tavern Keeper: "Oh dear, I see whispers swirling through the tavern..." Mysterious Stranger: "The stranger's eyes glinted with peculiar curiosity..." 

Relationship Evolution:

Blacksmith โ†’ Tavern Keeper: 7/10 (Trusting) Blacksmith โ†’ Stranger: 3/10 (Distrustful) 

Natural, believable character dynamics!

๐Ÿ› ๏ธ Technical Details

  • Error Handling
    try:     response = character.think(situation) except Exception:     response = "I need a moment to think about this..."
  • Performance
    • Response Time: 8โ€“12s per character
    • Memory Efficient: Local only
    • Scalable: Unlimited characters
  • Requirements
    • Python 3.8+
    • Ollama (phi3 model)
    • RAM: 4GB+
    • Storage: 2GB

๐Ÿค Contributing

We love contributors! Bug fixes, features, docs—all welcome. Email - abhinaw00singh@gmail.com

๐Ÿ“„ License

MIT License โ€“ free for personal & commercial use. See LICENSE for details.

โ“ FAQ

Q: How is this different from Character.AI? A: Consistency, local processing, relationship memory, dev-ready.

Q: Is this really free? A: Yes! Only consulting costs extra.

Q: Can I use this in my commercial game? A: Absolutely. MIT = no restrictions.

Q: What if I need help? A: Open an issue or contact us for consulting.

๐Ÿš€ Getting Help

  • ๐Ÿ“š Examples: examples/ folder
  • ๐Ÿ› Issues: GitHub tracker
  • ๐Ÿ’ก Ideas: Discussions
  • ๐Ÿ› ๏ธ Consulting: Email support

๐ŸŒŸ If you love this project, please give it a โญ๏ธ on GitHub!

"Finally, NPCs that don't sound like robots!" โ€“ Abhinaw Singh EMAIL - abhinaw00singh@gmail.com

GITHUB  - https://github.com/Luciferjimmy/ai-character-engine