AI Villagers

Create an interactive 2D world where players can engage with NPCs through tasks and conversations. Enhance gameplay with dynamic NPC behaviors and real-time interactions, powered by advanced AI technologies. Experience a rich, immersive environment that evolves with player choices and actions.

Installation

Installing for Claude Desktop

Manual Configuration Required

This MCP server requires manual configuration. Run the command below to open your configuration file:

npx mcpbar@latest edit -c claude

This will open your configuration file where you can add the AI Villagers MCP server manually.

AI村民

專案構想

  • 設計 2D 地圖與物件:定義每個地點(如牆壁、商店等)的座標系統。
  • NPC 行為與任務系統:建立 NPC 狀態機,並根據時間或其他條件生成每日任務。
  • 地圖交互與路徑規劃:實現路徑尋路演算法,讓 NPC 能夠在地圖上自由移動。
  • 聊天系統整合:設計玩家與 NPC 之間的互動指令,讓玩家能夠直接控制 NPC。
  • 測試與優化:測試 NPC 行為的正確性和流暢度,優化移動和任務生成的邏輯。

專案技術

1. 項目架構與後端技術

後端Django:用於處理聊天系統、任務生成和管理 NPC 行為。
資料庫SQLiteMySQL:用於存儲 NPC 設定、任務腳本和 NPC 狀態。
MongoDB(如果需要更靈活的結構化數據).
API 與聊天系統GPT-3(或 GPT-4)API:生成日常任務、進行對話、解析玩家指令並指派給 NPC。
Socket.io:實現即時聊天功能,讓玩家可以與 NPC 互動。

2. 人工智能與 NPC 行為控制

| 狀態機 | Finite State Machine (FSM):用於建模 NPC 的狀態與行為(如等待、移動、互動等)。 Task Scheduler:生成每日任務,並根據任務進行行為調度 | | --- | --- | | NPC 任務生成 | 規則引擎(如 DroolsProlog):根據設置的規則來生成任務(例如“早上去超市”)。 隨機生成系統:基於規則和時間生成動態任務,增強遊戲性 |


3. 人工聊天系統與指令解析

| 自然語言處理 (NLP) | GPT-3/4:用於解析玩家指令,理解指令並生成合理的 NPC 行為。 spaCyNLTK:用於文本處理,提取指令中的關鍵資訊(例如 NPC 名稱、地點)。 | | --- | --- | | 聊天引擎 | Dialogflow(Google):用於構建聊天機器人,處理複雜的對話流和指令解析。 Rasa:開源對話式 AI 平台,可用於構建自定義聊天機器人。 | | 用戶交互接口 | Telegram Bot APIDiscord Bot API:用於在聊天平台中與玩家互動,接收指令並回應。 |


4. 前端技術與遊戲引擎

遊戲引擎UnrealEngine:渲染 2D 地圖和物體,控制 NPC 行為。

專案進度

To-Do

✅ 專案素材,圖示

UE素材: Paper ZD

  • ✅ 資料表

    1. NPC 資料表 (npc)

    這個資料表記錄所有 NPC 的基本資訊。

    欄位名稱資料型態說明
    npc_idINTNPC 唯一識別 ID
    nameVARCHARNPC 名稱
    descriptionTEXTNPC 描述
    current_taskINT當前任務 ID(指向 tasks 資料表)
    statusVARCHARNPC 狀態(例如:待命、移動中、執行任務)
    position_xINTNPC 在地圖上的 X 座標
    position_yINTNPC 在地圖上的 Y 座標
    last_activeDATETIME上次執行任務的時間

    2. 任務資料表 (tasks)

    這個資料表記錄所有可分配的任務,包括每日任務和隨機任務。

    欄位名稱資料型態說明
    task_idINT任務唯一識別 ID
    task_nameVARCHAR任務名稱
    descriptionTEXT任務描述
    task_typeVARCHAR任務類型(如日常、隨機、特殊)
    start_timeDATETIME任務開始時間
    end_timeDATETIME任務結束時間
    is_completedBOOLEAN任務是否完成

    3. 任務日程表 (npc_task_schedule)

    這個資料表記錄每個 NPC 每天需要執行的任務安排,類似日程表。

    欄位名稱資料型態說明
    npc_idINTNPC ID(指向 npc 資料表)
    task_idINT任務 ID(指向 tasks 資料表)
    dateDATE執行的日期
    time_slotVARCHAR任務執行時間段(如:早上、中午、晚上)

    4. 地圖資料表 (map)

    這個資料表記錄遊戲中的 2D 地圖資訊,每個位置對應不同的物件。

    欄位名稱資料型態說明
    position_idINT位置唯一識別 ID
    x_coordinateINTX 座標
    y_coordinateINTY 座標
    object_typeVARCHAR物件類型(牆壁、商店、飲料店等)
    object_nameVARCHAR物件名稱(如牆、超市、飲料店等)

    5. NPC 路徑資料表 (npc_path)

    這個資料表記錄 NPC 移動的路徑,讓 NPC 能夠根據路徑規劃自動移動。

    欄位名稱資料型態說明
    path_idINT路徑唯一識別 ID
    npc_idINTNPC ID(指向 npc 資料表)
    start_positionINT起始位置(對應 map 資料表中的位置 ID)
    end_positionINT終點位置(對應 map 資料表中的位置 ID)
    statusVARCHAR路徑狀態(如:未完成、完成)

    6. NPC 與物件互動記錄資料表 (npc_interaction)

    這個資料表記錄 NPC 與物體的互動,例如與商店互動、與飲料機互動等。

    欄位名稱資料型態說明
    interaction_idINT互動記錄唯一識別 ID
    npc_idINTNPC ID(指向 npc 資料表)
    object_idINT物件 ID(指向 map 資料表)
    actionVARCHAR互動行為(如:購物、吃東西等)
    timestampDATETIME互動時間

    7. 玩家指令資料表 (player_commands)

    如果你有人工聊天系統,這個資料表可以記錄玩家的指令並對應到 NPC 行為。

    欄位名稱資料型態說明
    command_idINT指令唯一識別 ID
    player_idINT玩家 ID(如果有玩家資料表)
    command_textTEXT玩家輸入的指令
    npc_idINT被指定的 NPC ID(可選)
    command_timeDATETIME指令執行時間
    statusVARCHAR指令狀態(如:待執行、已執行)

    8. 任務完成記錄資料表 (task_completion)

    這個資料表記錄 NPC 完成的任務和狀態。

    欄位名稱資料型態說明
    completion_idINT任務完成唯一識別 ID
    npc_idINTNPC ID(指向 npc 資料表)
    task_idINT任務 ID(指向 tasks 資料表)
    completion_timeDATETIME任務完成時間
    statusVARCHAR任務狀態(如:完成、未完成)

    9. NPC 等級與經驗資料表 (npc_experience)

    這個資料表記錄 NPC 的經驗值和等級,用來控制 NPC 成長。

    欄位名稱資料型態說明
    npc_idINTNPC ID(指向 npc 資料表)
    experienceINTNPC 經驗值
    levelINTNPC 等級
    last_level_upDATETIME上次升級時間

    10. 日誌資料表 (logs)

    記錄遊戲中發生的重要事件或錯誤日誌。

    欄位名稱資料型態說明
    log_idINT日誌唯一識別 ID
    log_typeVARCHAR日誌類型(如:錯誤、警告、訊息)
    log_messageTEXT日誌訊息
    timestampDATETIME日誌時間
python manage.py runserver                     # 啟動server
python manage.py runserver --noreload
pipreqs --force --encoding=utf-8               # 複寫套件資源版本
pip install -r requirements.txt                # 安裝對應版本套件
daphne AI_NPC_Backend.asgi:application -p 8080 # daphne server 8080
python manage.py test api                      # 執行測試腳本
python manage.py migrate   
Share:
Details:
  • Stars


    0
  • Forks


    1
  • Last commit


    1 month ago
  • Repository age


    2 months
View Repository

Auto-fetched from GitHub .

MCP servers similar to AI Villagers:

 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit