← Về blog

Xây dựng Game Platformer 2D với Godot MCP: Chuyển động, Màn chơi và Kẻ địch

Tạo nguyên mẫu platformer Godot 4 qua MCP: cảm giác CharacterBody2D, màn chơi TileMap, kẻ địch đơn giản; dùng VberAI Studio khi cần HUD/UI tiêu đề thực sự.

Đăng ngày
  • Godot MCP
  • 2D platformer
  • Godot 4
  • GDScript
  • AI game development

Một platformer 2D có thể demo thường cần: cảm giác di chuyển/nhảy có thể điều chỉnh, màn chơi có va chạm, ít nhất một hành vi kẻ địch, và tiêu đề/HUD kết nối với các sự kiện trò chơi. Làm theo thứ tự đó. Thiết lập mặc định: Cursor (hoặc Claude Code) điều khiển dự án Godot 4 thông qua Godot MCP.

Cài đặt: Hướng dẫn cài đặt Godot MCP.

Xác định phạm vi chơi tối thiểu

Mốc đầu tiên:

  1. Di chuyển, tiếp đất, nhảy với độ cao thay đổi (tùy chọn nhảy đúp / lướt nhanh)
  2. Một màn chơi có sàn, nền tảng, gai hoặc hố tử thần
  3. Một kẻ địch tuần tra gây sát thương hoặc đẩy lùi
  4. HUD đơn giản: máu hoặc nút Restart

Nghệ thuật có thể là các khối màu tạm. Khi menu/HUD cần trông thiết kế hơn, hãy dùng bước canvas bên dưới.

Người chơi: CharacterBody2D với cảm giác có thể điều chỉnh

Cấu trúc gợi ý:

Player (CharacterBody2D)
├── CollisionShape2D
├── AnimatedSprite2D / Sprite2D
└── Coyote / jump-buffer dưới dạng timer trong script (giữ cây scene gọn gàng)

Yêu cầu MCP với các ràng buộc vật lý và đầu vào:

Tạo res://scripts/player.gd trên CharacterBody2D: phím A/D hoặc mũi tên để di chuyển; nhảy với độ cao thay đổi (cắt nhảy khi thả phím); thời gian coyote ngắn; sau move_and_slide(), reset số lần nhảy với is_on_floor().

Sau đó tinh chỉnh:

Tốc độ tối đa ~180, gia tốc ~900, vận tốc nhảy ~-320 (điều chỉnh theo pixel của bạn); phát hiệu ứng bụi khi chạm đất.

Rà soát: kiểm tra mặt đất ổn định, điều khiển trên không, nhảy đúp không kích hoạt khi vẫn đang chạm đất. Cảm giác quan trọng hơn “script được tạo”.

Màn chơi: Va chạm TileMap và điểm lưu

Giữ logic màn chơi trong engine:

  • Tách lớp rắn và lớp nguy hiểm
  • Nền tảng di chuyển bằng AnimatableBody2D hoặc path follow
  • Điểm lưu / hố Area2D để hồi sinh

Xây một màn chơi từ tileset hiện có: dạy nhảy → nền tảng di chuyển → hành lang gai; phòng hồi máu bí mật sau thác nước. Gai: Area2D body_entered gây sát thương.

Thay thế tile tạm bằng nghệ thuật chính thức sau này.

Kẻ địch: một máy trạng thái nhỏ

Ba trạng thái là đủ: Idle → Patrol → Chase.

GDScript kẻ địch: tuần tra hai điểm; đuổi theo trong phạm vi 120px; quay lại tuần tra sau 1.5s khi mất dấu người chơi; body_entered gây sát thương với i-frame ngắn.

Thêm AnimationPlayer khi bạn có frame; nếu không thì lật sprite để đổi hướng.

UI: Giới thiệu AI Studio khi bạn cần màn hình hoàn thiện

Cho đến khi gameplay hoạt động, dùng Label / ProgressBar tạm qua MCP:

Gắn health_changed của người chơi vào thanh HUD; khi chết hiện Restart và reload_current_scene().

Khi tiêu đề/cài đặt/túi đồ cần UI chất lượng thiết kế (PSD/Figma, panel tạo bởi NL, tách lớp, xuất Godot-ready), hãy dùng VberAI Studio:

  1. Tạo hoặc nhập menu/HUD trong Studio
  2. Xuất ra ví dụ res://ui/
  3. Kết nối nút/tín hiệu với Cursor + Godot MCP

Cắt nền cứng → Super Matting, sau đó Studio. Canvas sở hữu cấu trúc UI; MCP sở hữu ràng buộc gameplay—đừng mong đợi một player.gd hoàn chỉnh từ canvas.

Thứ tự đề xuất

MCP: cảm giác người chơi → một màn chơi có va chạm → một kẻ địch → HUD tạm
        ↓ (tùy chọn)
AI Studio: tiêu đề/HUD hoàn thiện → xuất
        ↓
MCP: gắn UI hoàn thiện vào máu / tạm dừng / khởi động lại

Commit trước khi chỉnh sửa lớn; giữ MCP trên localhost.

Danh sách kiểm tra chấp nhận

  • Cảm giác nhảy ngắn vs nhảy dài khác biệt rõ ràng
  • Hố/gai phản hồi thất bại rõ ràng
  • Kẻ địch tuần tra không xuyên tường
  • HUD hoặc Restart hoạt động sau khi chết
  • (Tùy chọn) UI Studio thay thế chỗ tạm

Bước tiếp theo

  1. Cài đặt Godot MCP
  2. Giao “di chuyển + một màn chơi + một kẻ địch”
  3. Mở AI Studio chỉ khi bạn cần UI hoàn thiện

Cũng xem: Godot MCP vs viết script thủ công.

Các bài hướng dẫn bạn có thể thích