VibeGame- Khám phá các trò chơi mã hóa Vibe

  • 11 min read
VibeGame- Khám phá các trò chơi mã hóa Vibe

VibeGame: Khám phá các trò chơi mã hóa Vibe

Mọi người đang cố gắng viết mã vibe cho các trò chơi. Và lúc đầu nó có vẻ hiệu quả. Tuy nhiên, khi dự án phát triển, mọi thứ bắt đầu tan rã. Tại sao? Và chúng ta có thể làm gì về nó?

Tôi sẽ nói về vấn đề này, cách tôi khắc phục nó và nên đi đâu từ đây.

“Vibe Coding” là gì?

Trước tiên, mã vibe là gì? Ban đầu nó được Andrej Karpathy đặt ra trong một tweet lan truyền nơi nó được định nghĩa là nơi bạn “hoàn toàn отдаться vibes, đón nhận cấp số nhân và quên rằng mã thậm chí còn tồn tại”.

Tuy nhiên, kể từ đó, nó được sử dụng để mô tả rất nhiều điều khác nhau, từ “sử dụng AI khi viết mã” đến “hoàn toàn không nghĩ về mã”. Trong bài đăng trên blog này, tôi sẽ định nghĩa nó là: sử dụng AI như một ngôn ngữ lập trình cấp cao để xây dựng một cái gì đó. Giống như các ngôn ngữ lập trình khác, điều này được hưởng lợi từ việc hiểu những gì đang diễn ra bên dưới, nhưng không nhất thiết phải yêu cầu nó.

Với cách giải thích này, bạn có thể tạo một trò chơi mà không cần hiểu mã, mặc dù biết các nguyên tắc cơ bản vẫn hữu ích.

Quản lý bối cảnh

Trước đó, tôi đã đề cập rằng “khi dự án phát triển, mọi thứ bắt đầu tan rã”. Điều này là do có bằng chứng cho thấy khi cửa sổ ngữ cảnh đầy, hiệu suất của mô hình bắt đầu giảm. Điều này đặc biệt đúng đối với phát triển trò chơi, nơi ngữ cảnh có thể phát triển rất lớn, rất nhanh.

Để giải quyết vấn đề này, có nhiều giải pháp ad-hoc cá nhân, chẳng hạn như viết ngữ cảnh dành riêng cho LLM trực tiếp trong các tệp dự án hoặc các giải pháp toàn diện hơn như Claude Code Development Kit để quản lý ngữ cảnh quy mô lớn.

Tôi không thể tìm thấy một giải pháp nhẹ, dễ tiếp cận, không dựa vào kiến thức chuyên môn đáng kể. Vì vậy, tôi đã tạo một giải pháp: 🧅 Shallot, một hệ thống quản lý ngữ cảnh đơn giản, nhẹ, không thiên vị cho Claude Code. Nó dựa trên hai lệnh cơ bản:

  1. /peel [prompt] để tải ngữ cảnh khi bắt đầu cuộc trò chuyện
  2. /nourish để cập nhật ngữ cảnh khi kết thúc cuộc trò chuyện

Theo kinh nghiệm, điều này hoạt động tốt. Tuy nhiên, nó hoạt động tốt nhất khi dự án vẫn tinh gọn và được tổ chức tốt, vì vậy tất cả ngữ cảnh liên quan có thể dễ dàng nằm trong cửa sổ ngữ cảnh của mô hình. Mặc dù Claude Code được sử dụng ở đây, nhưng các nguyên tắc tương tự có thể được tổng quát hóa cho các mô hình khác.

Ngoài các công cụ quản lý ngữ cảnh, việc lựa chọn nền tảng là rất quan trọng. Lý tưởng nhất là nền tảng nên tự nhiên giữ cho các dự án tinh gọn thông qua các trừu tượng cấp cao, đồng thời là thứ mà các mô hình AI hiểu rõ. Vậy, những nền tảng hiện có nào phù hợp nhất để viết mã vibe?

Khám phá ban đầu

Ban đầu, tôi đã thử 3 cách tiếp cận khác nhau để viết mã vibe cho trò chơi: Roblox MCP, Unity MCP và web. Đối với mỗi cách tiếp cận, tôi đã cố gắng xây dựng một trò chơi gia tăng đơn giản lấy cảm hứng từ Grass Cutting Incremental, sử dụng Claude Code cho từng trò chơi.

Đây là cách nó diễn ra:

Nỗ lực 1: Roblox MCP

Máy chủ MCP chính thức từ Roblox. Điều này cho phép AI tương tác với Roblox Studio bằng cách gửi các lệnh để chạy mã.

Ưu điểm:

  • Mức độ trừu tượng tuyệt vời với các cơ chế trò chơi tích hợp
  • AI có thể dễ dàng hiểu cú pháp và chuyển đổi hướng dẫn thành mã

Nhược điểm:

  • Không có tệp, chỉ sử dụng mã để đọc dữ liệu, điều này hạn chế nghiêm trọng việc quản lý ngữ cảnh
  • Thông tin thời gian chạy rất hạn chế để AI làm việc
  • Vườn có tường bao độc quyền

Roblox cung cấp một lớp trừu tượng tuyệt vời để giữ cho cơ sở mã tinh gọn và dễ quản lý, điều này hoàn hảo để viết mã vibe. Tuy nhiên, khu vườn có tường bao và việc thiếu ngữ cảnh khiến nó không khả thi để viết mã vibe, trừ khi nó được thực hiện nội bộ tại Roblox.

Nỗ lực 2: Unity MCP

Máy chủ MCP không chính thức cho Unity. Điều này cho phép AI tương tác với Unity Editor: đọc bảng điều khiển, quản lý tài sản và xác thực tập lệnh.

Ưu điểm:

  • Truy cập đầy đủ hệ thống tệp

Nhược điểm:

  • Có rất nhiều cách để làm mọi thứ trong Unity, thay đổi thường xuyên giữa các phiên bản, khiến AI bị nhầm lẫn
  • Yêu cầu kiến thức chuyên môn đáng kể để cho AI biết cách thực hiện mọi thứ, thay vì những gì cần làm
  • Hiệu suất AI không nhất quán và không đáng tin cậy
  • Công cụ độc quyền (mặc dù minh bạch hơn nhiều so với Roblox)

Unity là một công cụ mạnh mẽ với rất nhiều khả năng. Tuy nhiên, sự phức tạp và tính biến đổi của công cụ khiến AI khó tạo ra kết quả tốt một cách nhất quán nếu không có kiến thức chuyên môn đáng kể của người dùng.

Nỗ lực 3: Web Stack

Nền tảng web mở, sử dụng three.js để kết xuất 3D, rapier cho vật lý và bitecs cho logic trò chơi.

Ưu điểm:

  • Khả năng thành thạo AI vượt trội so với các công cụ trò chơi, có thể là do dữ liệu đào tạo lớn
  • Truy cập đầy đủ hệ thống tệp
  • Ngăn xếp hoàn toàn mã nguồn mở với khả năng kiểm soát/minh bạch hoàn toàn

Nhược điểm:

  • Các thư viện cấp thấp tương đối, về cơ bản yêu cầu xây dựng công cụ trước khi xây dựng trò chơi
  • Thiếu hệ sinh thái cho các trò chơi 3D chất lượng cao; web có xu hướng hướng tới các trò chơi 2D và trải nghiệm 3D đơn giản

Cách tiếp cận này có hiệu suất AI tốt nhất cho đến nay, có thể là do lượng dữ liệu phát triển web khổng lồ có sẵn trong quá trình đào tạo. Tuy nhiên, bản chất cấp thấp của các thư viện có nghĩa là tôi phải xây dựng một công cụ trò chơi trước khi có thể xây dựng trò chơi. Điều này cho phép chúng ta làm việc ở mức độ trừu tượng cao hơn nhiều, như chúng ta đã làm với Roblox.

Mặc dù nó yêu cầu xây dựng một công cụ trước, nhưng cách tiếp cận này là cách duy nhất tạo ra một kết quả thú vị mà không cần kiến thức chuyên môn sâu rộng.

Tóm tắt so sánh

Nền tảng Hiệu suất AI Mức độ trừu tượng Quản lý ngữ cảnh Mã nguồn mở
Roblox ⭐⭐⭐ ⭐⭐⭐⭐⭐
Unity ⭐⭐ ⭐⭐⭐
Web ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐

Giải pháp: VibeGame

Sau những thử nghiệm này, tôi đã có một bức tranh rõ ràng: web stack có hiệu suất AI tuyệt vời nhưng quá cấp thấp, trong khi Roblox có sự trừu tượng hoàn hảo nhưng lại thiếu tính cởi mở và khả năng quản lý ngữ cảnh.

Vậy, điều gì về việc kết hợp những gì tốt nhất của cả hai?

Xin giới thiệu VibeGame, một công cụ trò chơi khai báo cấp cao được xây dựng dựa trên three.js, rapier và bitecs, được thiết kế đặc biệt để phát triển trò chơi có sự hỗ trợ của AI.

Triết lý thiết kế

Có ba quyết định quan trọng đã được đưa ra trong thiết kế của VibeGame:

  1. Trừu tượng: Một trừu tượng cấp cao với các tính năng tích hợp như vật lý, kết xuất và các cơ chế trò chơi phổ biến, giữ cho cơ sở mã tinh gọn và dễ quản lý. Điều này lấy cảm hứng từ các trò chơi/công cụ “engine” sandbox cấp cao phổ biến như Roblox, Fortnite UEFN và Minecraft.
  2. Cú pháp: Một cú pháp khai báo giống XML để xác định các đối tượng trò chơi và thuộc tính của chúng, giúp AI dễ hiểu và tạo mã. Điều này tương tự như HTML/CSS, những thứ mà các mô hình AI đã thành thạo.
  3. Kiến trúc: Kiến trúc Hệ thống - Thành phần - Thực thể (ECS) để có khả năng mở rộng và tính linh hoạt. ECS tách dữ liệu (thành phần) khỏi hành vi (hệ thống), khuyến khích dự án duy trì tính mô-đun và có tổ chức khi nó phát triển, có lợi cho việc viết mã vibe và quản lý ngữ cảnh.

Một trò chơi cơ bản trông như thế này:

html

Xem nó hoạt động trong JSFiddle này hoặc Bản demo trực tiếp.

Điều này sẽ tạo ra một cảnh đơn giản với một mặt phẳng đất và một quả bóng rơi. Người chơi, máy ảnh và ánh sáng được tạo tự động. Tất cả những điều này đều có tính mô-đun và có thể được thay thế. Các thành phần và hệ thống tùy chỉnh tùy ý có thể được thêm vào khi cần thiết.

Điều này đi kèm với một tệp llms.txt chứa tài liệu về công cụ, được thiết kế đặc biệt cho AI, để được đưa vào lời nhắc hệ thống hoặc ngữ cảnh ban đầu.

Vậy nó có thực sự hoạt động không?

Có.

À, cũng không hẳn.

Đây là trò chơi mà tôi đã xây dựng để kiểm tra việc xây dựng một trò chơi thu thập cỏ gia tăng đơn giản bằng VibeGame và Claude Code. Nó hoạt động rất tốt, đòi hỏi kiến thức chuyên môn tối thiểu để triển khai các cơ chế trò chơi cốt lõi.

Grass Cutting Game

Tuy nhiên, vẫn còn một số lưu ý lớn:

  1. Nó hoạt động tốt để xây dựng những gì công cụ trò chơi hỗ trợ, tức là một platformer đơn giản hoặc một trò chơi chỉ dựa vào vật lý và kết xuất cơ bản.
  2. Tuy nhiên, nó gặp khó khăn với bất kỳ điều gì phức tạp hơn mà chưa được triển khai trong công cụ, như tương tác, kho, nhiều người chơi, chiến đấu, v.v.

Vì vậy, với một định nghĩa về mã vibe là cách tiếp cận một lần “tạo cho tôi một trò chơi”, nó không hoạt động. Tuy nhiên, với định nghĩa về việc đối xử với mã vibe như một ngôn ngữ lập trình cấp cao, nó hoạt động rất tốt, nhưng yêu cầu người dùng phải hiểu khả năng và giới hạn của công cụ.

Tự mình dùng thử

Để thử ngay lập tức, tôi đã xây dựng một bản demo nơi bạn có thể phát triển trò chơi trực tiếp trong trình duyệt bằng VibeGame với Qwen3-Next-80B-A3B-Instruct: Bản demo trực tiếp trên Hugging Face.

Bạn cũng có thể kiểm tra nó cục bộ với một mô hình tiên phong như Claude Code:

bash npm create vibegame@latest my-game cd my-game npm run dev # or bun dev

Sau đó, dán tất cả nội dung của llms.txt đi kèm vào CLAUDE.md, cung cấp tài liệu đầy đủ về công cụ để AI tham khảo (hoặc trỏ hệ thống quản lý ngữ cảnh của riêng bạn vào đó). Điều này hoạt động với các mô hình khác nữa.

Tiếp theo là gì?

Hiện tại, công cụ này rất sơ sài và chỉ hỗ trợ các cơ chế rất cơ bản (trừ khi viết nó từ đầu). Tuy nhiên, kết quả ban đầu rất hứa hẹn.

Các bước tiếp theo sẽ là:

  1. Bổ sung công cụ với nhiều cơ chế tích hợp hơn, tiến gần hơn đến ngang bằng với các phiên bản đầu của Roblox hoặc UEFN. Điều này bao gồm:
    • Tương tác
    • Kho/vật phẩm
    • Nhiều người chơi
    • Lưới/hoạt ảnh có da với cơ sở dữ liệu được tuyển chọn
    • Âm thanh với cơ sở dữ liệu được tuyển chọn
  2. Cải thiện các hệ thống hướng dẫn AI, cung cấp cho người mới bắt đầu trải nghiệm tốt hơn. Điều này bao gồm:
    • Nhắn tin rõ ràng về khả năng/giới hạn của công cụ
    • Lời nhắc có hướng dẫn cho các tác vụ phổ biến
    • Nhiều ví dụ và mẫu hơn
    • Tài nguyên giáo dục

Cũng đáng để khám phá cách các trò chơi mã hóa vibe có thể khai thác các công cụ đã được chứng minh hơn. Ví dụ: xây dựng một trình chỉnh sửa trò chơi sandbox cấp cao trên Unity hoặc Unreal Engine (tương tự như cách Unreal Editor for Fortnite được xây dựng trên Unreal Engine) có thể cung cấp một môi trường được kiểm soát tốt hơn để AI làm việc, đồng thời tận dụng sức mạnh của các công cụ đã được thiết lập.

Chúng ta cũng có khả năng sẽ thấy nhiều giải pháp nội bộ hơn từ những người chơi lớn.

Theo dõi tôi để theo kịp những gì đang diễn ra trong không gian này!

Liên kết:

Recommended for You

Tăng tốc Qwen3-8B Agent trên Intel® Core™ Ultra với các Mô hình Nháp được Cắt tỉa Độ sâu

Tăng tốc Qwen3-8B Agent trên Intel® Core™ Ultra với các Mô hình Nháp được Cắt tỉa Độ sâu

Chào mừng EmbeddingGemma, mô hình nhúng hiệu quả mới của Google

Chào mừng EmbeddingGemma, mô hình nhúng hiệu quả mới của Google