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

安裝

複製以下命令到你的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 文件。

替代品

M
MCP
微軟官方MCP服務器,為AI助手提供最新微軟技術文檔的搜索和獲取功能
9.0K
5分
A
Aderyn
Aderyn是一個開源的Solidity智能合約靜態分析工具,由Rust編寫,幫助開發者和安全研究人員發現Solidity代碼中的漏洞。它支持Foundry和Hardhat項目,可生成多種格式報告,並提供VSCode擴展。
Rust
4.9K
5分
D
Devtools Debugger MCP
Node.js調試器MCP服務器,提供基於Chrome DevTools協議的完整調試功能,包括斷點設置、單步執行、變量檢查和表達式評估等
TypeScript
6.4K
4分
S
Scrapling
Scrapling是一個自適應網頁抓取庫,能自動學習網站變化並重新定位元素,支持多種抓取方式和AI集成,提供高性能解析和開發者友好體驗。
Python
8.9K
5分
M
Mcpjungle
MCPJungle是一個自託管的MCP網關,用於集中管理和代理多個MCP服務器,為AI代理提供統一的工具訪問接口。
Go
0
4.5分
C
Cipher
Cipher是一個專為編程AI代理設計的開源記憶層框架,通過MCP協議與各種IDE和AI編碼助手集成,提供自動記憶生成、團隊記憶共享和雙系統記憶管理等核心功能。
TypeScript
0
5分
N
Nexus
Nexus是一個AI工具聚合網關,支持連接多個MCP服務器和LLM提供商,通過統一端點提供工具搜索、執行和模型路由功能,支持安全認證和速率限制。
Rust
0
4分
S
Shadcn Ui MCP Server
一個為AI工作流提供shadcn/ui組件集成的MCP服務器,支持React、Svelte和Vue框架,包含組件源碼、示例和元數據訪問功能。
TypeScript
11.2K
5分
M
Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
19.8K
5分
B
Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
26.7K
4.5分
F
Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
67.0K
5分
S
Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
21.0K
4.5分
N
Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
13.4K
4.5分
M
Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
16.5K
5分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
16.5K
4.8分
C
Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
45.7K
4.7分
AIBase
智啟未來,您的人工智慧解決方案智庫
© 2025AIBase