Mcpy
MCPy是一個基於Python和Cython的高性能Minecraft服務器引擎,集成了科學計算庫和高級優化技術,旨在提供卓越的性能和可擴展性。項目目前處於開發階段,包含核心模塊如服務器引擎、世界生成、網絡處理、實體系統和數據持久化。
2分
8.7K

安裝

複製以下命令到你的Client進行配置
注意:您的密鑰屬於敏感信息,請勿與任何人分享。

🚀 MCPy:高性能Minecraft服務器引擎

MCPy 是一款由Python、Cython和先進的科學計算庫驅動的下一代超優化Minecraft服務器引擎。我們的目標是提供卓越的性能和靈活性,讓Minecraft服務器開發變得輕鬆且具有前瞻性。

⚠️ 重要提示

MCPy 正在積極開發中,功能尚未完善。代碼庫存在已知錯誤且不穩定。我們歡迎您提交 錯誤報告和貢獻,以幫助我們更快地實現目標!

🚀 快速開始

安裝

前提條件

  • Python 3.9+(推薦 3.11+)
  • 現代 C++ 編譯器(VS 2019+ / GCC 9+)
  • PostgreSQL 13+(用於生產環境)
  • 至少 8 GB 內存(推薦 16 GB)

快速設置

git clone https://github.com/magi8101/mcpy.git
cd mcpy
# Windows
setup.bat
# Linux/macOS
chmod +x setup.sh
./setup.sh

手動安裝

git clone https://github.com/magi8101/mcpy.git
cd mcpy
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r _requirements.txt
pip install -e ".[dev]"
pip install -e ".[ai]"  # 可選:啟用 AI 功能
python check_dependencies.py
python setup.py build_ext --inplace

運行服務器

# 使用設置腳本
# Windows:
setup.bat run
# Linux/macOS:
./setup.sh run

# 直接從命令行運行
python -m mcpy.server
python -m mcpy.server --config custom_config.toml --world my_world
python -m mcpy.server --performance-mode --max-players 100
python -m mcpy.server --debug --log-level debug

命令行選項

選項 描述
--config PATH TOML 配置文件的路徑
--world PATH 世界目錄
--port NUMBER 網絡端口(默認:25565)
--max-players NUMBER 最大玩家數(默認:20)
--view-distance NUMBER 區塊視野距離(默認:10)
--performance-mode 額外的性能優化
--debug 啟用調試模式
--log-level LEVEL 設置日誌級別(默認:info)
--backup 啟用自動備份

✨ 主要特性

  • Cython加速核心:事件驅動的服務器引擎,性能接近 C 語言水平。
  • 科學計算支持:集成 NumPy、SciPy 和 Polars 進行高效運算。
  • 零開銷網絡:異步、非阻塞、協議優化的網絡通信。
  • 複雜實體系統:高效、可擴展的實體管理,支持先進的 AI。
  • 強大的持久層:由 PostgreSQL 和 SQLAlchemy ORM 驅動,實現可靠的數據存儲。
  • 全面的基準測試:內置性能分析和性能剖析工具。
  • 可擴展的插件框架:輕鬆添加服務器修改。
  • 實時監控:集成 Prometheus 和 Grafana 進行實時指標監控。

📦 安裝指南

前提條件

  • Python 3.9+(推薦 3.11+)
  • 現代 C++ 編譯器(VS 2019+ / GCC 9+)
  • PostgreSQL 13+(用於生產環境)
  • 至少 8 GB 內存(推薦 16 GB)

快速設置

git clone https://github.com/magi8101/mcpy.git
cd mcpy
# Windows
setup.bat
# Linux/macOS
chmod +x setup.sh
./setup.sh

手動安裝

git clone https://github.com/magi8101/mcpy.git
cd mcpy
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r _requirements.txt
pip install -e ".[dev]"
pip install -e ".[ai]"  # 可選:啟用 AI 功能
python check_dependencies.py
python setup.py build_ext --inplace

💻 使用示例

基礎用法

# 運行服務器
python -m mcpy.server

高級用法

# 自定義配置和世界
python -m mcpy.server --config custom_config.toml --world my_world

# 啟用性能模式和設置最大玩家數
python -m mcpy.server --performance-mode --max-players 100

# 啟用調試模式和設置日誌級別
python -m mcpy.server --debug --log-level debug

📚 詳細文檔

架構概述

MCPy 是模塊化的,包含五個高性能核心組件:

  1. server_core.pyx

    • 事件驅動的請求處理
    • 自適應、高精度的 tick 系統
    • 動態工作線程池管理
    • 實時性能剖析
  2. world_engine.pyx

    • 基於多八度噪聲和先進生物群系的程序地形生成
    • 多線程區塊生成和內存高效的地形存儲
  3. network_core.pyx

    • 零拷貝數據包序列化和協議級壓縮
    • 強大的連接池和 DDoS 緩解
  4. entity_system.pyx

    • 基於空間哈希的實體跟蹤和多線程物理模擬
    • 模塊化 AI 行為樹
  5. persistence

    • 用於 PostgreSQL/SQLite 的 SQLAlchemy ORM
    • 高效的區塊序列化和事務性世界狀態

數據庫配置

SQLite(默認)

[database]
type = "sqlite"
path = "world/mcpy.db"
journal_mode = "WAL"
synchronous = "NORMAL"

PostgreSQL(生產環境)

[database]
type = "postgresql"
host = "localhost"
port = 5432
dbname = "mcpy"
user = "postgres"
password = "your_password"
pool_size = 10
max_overflow = 20
echo = false

持久化特性

  • 事務性世界保存
    with session.begin():
        for chunk in dirty_chunks:
            session.add(ChunkModel.from_chunk(chunk))
    
  • 高效的區塊序列化
    chunk_data = np.savez_compressed(io_buffer,
                                    blocks=chunk.blocks,
                                    heightmap=chunk.heightmap,
                                    biomes=chunk.biomes)
    
  • 玩家數據管理
    player_model = PlayerModel(
        uuid=player.uuid,
        username=player.username,
        position=json.dumps([player.x, player.y, player.z]),
        inventory=pickle.dumps(player.inventory, protocol=5),
        stats=json.dumps(player.stats)
    )
    
  • 智能自動保存:僅保存修改過的區塊/實體
  • 自動備份:可配置的間隔和保留策略

開發與測試

pytest                                # 運行完整測試套件
pytest tests/test_entity_system.py     # 實體系統測試
python -m benchmarks.benchmark        # 基準測試
python -m mcpy.profiling.profile_module world_engine  # 模塊性能剖析
pytest --cov=mcpy --cov-report=html   # 測試覆蓋率報告

性能調優示例

  • 實體系統
    entity_spatial_hash = {(int(e.x/16), int(e.z/16)): [] for e in entities}
    for entity in entities:
        entity_spatial_hash[(int(entity.x/16), int(entity.z/16))].append(entity)
    
  • 世界引擎
    with ThreadPoolExecutor(max_workers=os.cpu_count()) as executor:
        futures = [executor.submit(generate_chunk, x, z) for x, z in chunk_coords]
        chunks = [f.result() for f in futures]
    
  • 網絡優化
    cdef char* buffer = <char*>malloc(packet_size)
    memcpy(buffer, &packet_header, sizeof(packet_header))
    memcpy(buffer + sizeof(packet_header), packet_data, packet_data_size)
    

高級特性

插件系統

輕鬆添加自定義命令和行為:

from mcpy.plugins import Plugin, event

class TeleportPlugin(Plugin):
    @event("player.command")
    def on_command(self, player, command, args):
        if command == "tp" and len(args) >= 1:
            target = self.server.get_player_by_name(args[0])
            if target:
                player.teleport(target.x, target.y, target.z)
                return True
        return False

實時監控

集成 Prometheus/Grafana 支持:

[monitoring]
enabled = true
prometheus_port = 9090
metrics = ["tps", "memory_usage", "players_online", "chunks_loaded"]

AI 實體行為

靈活的、基於行為樹的 AI:

class ZombieAI(MobAI):
    def setup_behaviors(self):
        self.behaviors = BehaviorTree(
            Selector([
                Sequence([
                    CheckPlayerNearby(radius=16),
                    PathfindToPlayer(),
                    AttackPlayer()
                ]),
                Sequence([
                    Wait(random.randint(20, 100)),
                    MoveToRandomPosition(radius=10)
                ])
            ])
        )

🔧 技術細節

Cython 與性能

  • 靜態類型 (cdef) 和激進的編譯器指令
  • 直接的 NumPy 緩衝區訪問和指針運算
  • 通過線程池實現多線程並行

實體系統

  • 分層、基於組件的設計
  • 通過自定義內存池實現 O(1) 空間分區
  • 自適應細節層次(LOD)實體管理

世界生成

  • 多八度 Perlin/Simplex 噪聲
  • 基於 Voronoi 的生物群系過渡
  • 侵蝕、洞穴和結構算法
  • 10 倍的區塊壓縮以提高存儲效率

📊 性能目標

指標 目標值
可擴展性 20 TPS,支持 100 個以上併發玩家
內存使用 10,000 個區塊時小於 2 GB
延遲 每個玩家操作小於 50 ms
可靠性 核心模塊 100% 測試覆蓋率
吞吐量 每個 tick 更新 10,000 個以上實體

🗺️ 路線圖

短期

  • [ ] 實體碰撞系統
  • [ ] 合成與庫存管理
  • [ ] 基本戰鬥機制
  • [ ] 世界生成優化

中期

  • [ ] 多世界支持和傳送門
  • [ ] 自定義方塊行為
  • [ ] 增強的生物 AI
  • [ ] 遊戲內腳本 API

長期

  • [ ] 分佈式服務器架構
  • [ ] 機器學習驅動的生物 AI
  • [ ] 實時光線追蹤照明
  • [ ] 自定義物理引擎

🤝 貢獻

我們歡迎您的貢獻!請查看我們的 貢獻指南 以開始:

  1. 分叉倉庫
  2. 創建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到您的分支 (git push origin feature/amazing-feature)
  5. 打開一個拉取請求

📄 許可證

本項目採用 MIT 許可證。有關詳細信息,請參閱 LICENSE 文件。

替代品

V
Vestige
Vestige是一個基於認知科學的AI記憶引擎,通過實現預測誤差門控、FSRS-6間隔重複、記憶夢境等29個神經科學模塊,為AI提供長期記憶能力。包含3D可視化儀表板和21個MCP工具,完全本地運行,無需雲端。
Rust
5.4K
4.5分
M
Moltbrain
MoltBrain是一個為OpenClaw、MoltBook和Claude Code設計的長期記憶層插件,能夠自動學習和回憶項目上下文,提供智能搜索、觀察記錄、分析統計和持久化存儲功能。
TypeScript
6.4K
4.5分
B
Bm.md
一個功能豐富的Markdown排版工具,支持多種樣式主題和平臺適配,提供即時編輯預覽、圖片導出和API集成能力
TypeScript
4.5K
5分
S
Security Detections MCP
Security Detections MCP 是一個基於Model Context Protocol的服務器,允許LLM查詢統一的安全檢測規則數據庫,涵蓋Sigma、Splunk ESCU、Elastic和KQL格式。最新3.0版本升級為自主檢測工程平臺,可自動從威脅情報中提取TTPs、分析覆蓋差距、生成SIEM原生格式檢測規則、運行測試並驗證。項目包含71+工具、11個預構建工作流提示和知識圖譜系統,支持多SIEM平臺。
TypeScript
6.7K
4分
P
Paperbanana
PaperBanana是一個自動化生成學術圖表和統計圖的智能框架,支持從文本描述生成高質量的論文插圖,採用多智能體管道和迭代優化,提供CLI、Python API和MCP服務器等多種使用方式。
Python
6.9K
5分
B
Better Icons
一個提供超過20萬圖標搜索和檢索的MCP服務器和CLI工具,支持150多個圖標庫,幫助AI助手和開發者快速獲取和使用圖標。
TypeScript
7.7K
4.5分
A
Assistant Ui
assistant-ui是一個開源TypeScript/React庫,用於快速構建生產級AI聊天界面,提供可組合的UI組件、流式響應、無障礙訪問等功能,支持多種AI後端和模型。
TypeScript
7.8K
5分
A
Apify MCP Server
Apify MCP服務器是一個基於模型上下文協議(MCP)的工具,允許AI助手通過數千個現成的爬蟲、抓取器和自動化工具(Apify Actor)從社交媒體、搜索引擎、電商等網站提取數據。它支持OAuth和Skyfire代理支付,可通過HTTPS端點或本地stdio方式集成到Claude、VS Code等MCP客戶端中。
TypeScript
6.7K
5分
B
Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
39.5K
4.5分
M
Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
32.2K
5分
F
Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
122.6K
5分
S
Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
31.8K
4.5分
N
Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
18.4K
4.5分
C
Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
79.6K
4.7分
M
Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
19.7K
5分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
24.4K
4.8分
AIBase
智啟未來,您的人工智慧解決方案智庫
© 2026AIBase