Làm game Roblox bằng AI với Claude Code

Workflow làm cả game Roblox bằng Claude Code: skill cho từng mảng, MCP của Roblox Studio, Flux, Hi3DGen, Blender và Open Cloud API.

Đã duyệt độc lập · cập nhật 17/10/2026 · 25 min

1. Vì sao game Roblox do AI làm trông giống nhau

SyphoDev mở đầu bằng một chuyện quen thuộc với kênh: sau video về game Roblox do AI làm, bình luận được gửi nhiều nhất, bỏ xa mọi bình luận khác, là xin một bản hướng dẫn. Vì vậy video này đi qua toàn bộ workflow của anh: mọi công cụ, mọi model AI, mọi API, lý do anh chọn từng thứ, và cách bạn tự dựng lại y hệt chỉ bằng việc hỏi Claude.

Nhân vật Roblox của SyphoDev đứng trước hai thumbnail video cũ của kênh
Nhân vật Roblox đại diện cho SyphoDev đứng cạnh hai video trước của kênh: "AI Creates an Incremental Game in Roblox" và "Can AI Create a Tower Defense Game in Roblox?". Cả hai đều bắt đầu từ một câu yêu cầu gửi cho Claude.

Trước hết anh tóm lại vấn đề. Phần lớn video "AI làm game" đều bắt một AI viết mọi thứ dưới dạng code: map là code, UI là code, model 3D cũng là code. Đó chính là lý do chúng trông giống hệt nhau.

Setup của anh lật ngược cách làm đó. Claude là bộ não, nhưng mỗi mảng chuyên môn (code, UI, map, VFX, âm thanh, animation, model 3D) có workflow riêng, công cụ riêng và cách riêng để tự kiểm tra kết quả của chính nó. Trên màn hình, ý này được tóm thành hai ô: "The brain: Claude" và "Per discipline: own workflow".

Có ba khối xây dựng (building blocks): skill, MCP và API. Anh sẽ đi qua từng thứ cho cẩn thận, rồi cho thấy chúng nối với nhau thế nào để dựng nên cả một game.

2. Claude Code, không phải chat website

Mọi thứ chạy qua Claude Code. SyphoDev nhấn mạnh: không phải trang chat trên web, mà là Claude Code. Claude Code chạy ngay trên máy tính của anh, thông qua ứng dụng Claude Desktop. Muốn dùng thì cần gói Claude Pro, theo anh khoảng 18 đến 20 bảng Anh mỗi tháng.

Vì nó chạy trên máy của bạn nên nó thực sự chạy được mọi thứ: script Python, chỉnh file Blender, điều khiển Roblox Studio. Chat website chỉ đưa cho bạn đoạn text để tự copy rồi paste. Ngược lại, ứng dụng Claude Desktop dùng Claude Code thì có thể được cấp quyền truy cập vào máy tính của bạn. Trên màn hình, ô "The chat website" bị gạch chéo, nhường chỗ cho ô "Claude Code".

Model anh dùng là Claude Opus. Lý do: những việc dài như làm cả một game cần model theo dõi được rất nhiều phần đang chuyển động cùng lúc mà không bị lạc mạch.

Claude (Claude Code)bộ não, chạy trên máy Skillcách làm từng việc MCPđiều khiển app khác APIgiao việc cho AI khác
Hình 2.1Ba khối xây dựng trong workflow của SyphoDev: Claude Code ở trung tâm, skill quy định cách làm, MCP nối vào Roblox Studio, API giao phần vẽ và dựng 3D cho model khác.

3. Skill là gì: file SKILL.md và cách Claude đọc nó

Khối đầu tiên là skill. Về bản chất, một skill chỉ là một thư mục chứa hướng dẫn và công cụ mà Claude nạp vào khi một việc cần tới nó. Trên màn hình, thư mục mẫu my-skill/ gồm file SKILL.md, thư mục references/ và thư mục scripts/.

Trong skill có một file quan trọng nhất: SKILL.md. Ở đầu file markdown này là tên (name) và mô tả (description), và chính phần description là thứ Claude dựa vào để quyết định khi nào và ở đâu dùng skill đó.

File SKILL.md mẫu tên map-design với ba nhãn always read, only when needed, references
File SKILL.md mẫu của skill map-design: phần name và description (luôn được đọc, với mọi skill, mọi lúc), phần hướng dẫn "How to build a map" (chỉ nạp khi cần), và reference (chỉ nạp khi tới đúng bước đó).

Đây là chỗ khéo, theo SyphoDev: Claude lúc nào cũng chỉ đọc phần description. Toàn bộ hướng dẫn chỉ được nạp khi skill thật sự cần dùng, còn các file reference bổ sung chỉ được nạp khi tới đúng bước cần chúng. Nhờ vậy anh có thể cài khoảng hai chục skill mà bộ nhớ vẫn không bị nghẽn.

Ví dụ trên màn hình là skill map-design với description "Use when building or changing a Roblox map...", và phần thân bắt đầu bằng "# How to build a map", bước 1 "Read the movement numbers", bước 2 "Block out, then prove it".

4. Thư mục scripts, tự viết skill và skill creator

Tiếp theo là thư mục scripts/. Anh nói đây là phần mọi người hay bỏ qua. Thay vì để Claude viết code mới mỗi lần chạy skill, skill mang theo sẵn code Python mà anh đã viết và test từ trước.

Ví dụ: trong lúc dùng và test skill, Claude gặp một lỗi. Claude sửa lỗi đó, rồi ghi lại script Python đã dùng để sửa. Lần sau chạy skill, lỗi đó sẽ không xuất hiện nữa. Nói cách khác, mỗi lần có gì hỏng, nó được ghi lại thành một luật, kèm lý do, để session sau không lặp lại đúng sai lầm đó.

Claude gặp lỗiClaude sửa Lưu scriptLần sau: không lặp mỗi lần hỏng thành một luật, kèm lý do
Hình 4.1Vòng học của một skill như SyphoDev mô tả (trên màn hình: "Claude hits an issue, fixes it, saves the script, next run never again"): lỗi đã sửa được giữ lại dưới dạng script và luật.

Tự dựng một skill thực ra khá đơn giản. Bạn tạo một thư mục trong .claude/skills, đặt vào đó một file SKILL.md có name và description, rồi viết ra cách bạn thực sự muốn việc đó được làm. Về cơ bản nó chỉ là một prompt lớn mà bạn thiết kế riêng cho đúng bài toán đó. Trên màn hình là ba bước: "A folder", "SKILL.md", "How you want it done", kèm dòng "It's just a big prompt".

Nếu không muốn tự viết, Claude có sẵn một skill tên là skill creator. Bạn chỉ cần gõ "skill creator", nói điều bạn muốn, và nó sẽ phỏng vấn bạn rồi viết bản nháp đầu tiên. Việc còn lại là test skill lặp đi lặp lại cho tới khi nó làm đúng như bạn thật sự muốn. Phần cập nhật Claude sẽ lo; còn khi chạy, bạn chỉ cần hỏi Claude.

Tài liệu chính thức về skill trong Claude Code nằm ở code.claude.com/docs/en/skills.

5. MCP: nối Claude với Roblox Studio, và Rojo giữ code trong file

Khối thứ hai là MCP, viết tắt của Model Context Protocol. Đây là một cách chuẩn để cắm công cụ vào Claude, để Claude thật sự dùng được các ứng dụng khác.

Cái quan trọng nhất ở đây là MCP server có sẵn của chính Roblox Studio. Với nó, Claude có thể tạo object, đặt thuộc tính (properties), chạy code bên trong Studio, chụp màn hình để kiểm tra và bắt đầu một lượt playtest.

Roblox Studio với năm thẻ create, set, run code, screenshots, playtest
Roblox Studio với bảng Assistant Settings mở ở mục MCP Servers. Năm thẻ phía trên tóm tắt những gì MCP có sẵn của Studio cho Claude làm: tạo object, đặt properties, chạy code trong Studio, chụp màn hình để kiểm, và bắt đầu playtest.

Ban đầu SyphoDev dùng một MCP Roblox của bên thứ ba, nhưng nó không chạm được vào game trong lúc game đang chạy. Bản có sẵn của Studio có công cụ cho play mode đàng hoàng, nghĩa là nó test được chính cái game vừa làm ra, nên anh đã chuyển sang. Tuy vậy, bản chính thức thỉnh thoảng bị hỏng, nên trong workflow của anh, nếu MCP chính thức của Roblox Studio hỏng thì Claude lập tức chuyển sang dùng bản bên thứ ba.

Anh cũng trả lời một câu hỏi từ video trước: code không thật sự nằm trong Studio. Đúng là nó có trong Studio, nhưng nó sống trong các file trên máy tính của anh và được đồng bộ vào Studio bằng một công cụ tên là Rojo. Nhờ vậy Claude có thể test code trước cả khi Studio được mở.

Điều thú vị về MCP là không chỉ Roblox Studio và những thứ tương tự mới có MCP. Có MCP cho rất nhiều thứ (trên màn hình là Figma, Blender, Discord), và đây là một chủ đề rất đáng tìm hiểu. Nếu bạn bắt đầu dùng Claude Code để làm bất cứ việc gì, anh khuyên nên học về MCP.

6. API và model: Flux cho ảnh, Hi3DGen cho 3D, và chuyện license

Khối thứ ba là API và model. API cho phép skill của anh giao một việc cho một AI khác khi Claude không phải công cụ phù hợp. Claude viết ra chữ; nó không vẽ được một bức tranh và không nặn được một model 3D. Vì vậy, với những phần khác của workflow như ảnh hay model 3D, anh dùng API để nối sang các công cụ bên thứ ba. Trên màn hình: "Claude: writes text", "Other AIs: paint + sculpt".

Với ảnh, anh dùng API Workers AI của Cloudflare, chạy một model tên là Flux Schnell. Nó nằm trong gói miễn phí, chạy nhanh, và vì không dùng giờ GPU của anh nên số giờ đó được để dành cho phần đắt tiền.

Trang tài liệu Cloudflare Workers AI cho model flux-1-schnell
Trang tài liệu của Cloudflare Workers AI cho model flux-1-schnell của Black Forest Labs: một model text-to-image 12 tỷ tham số.

Phần đắt tiền là 3D. Cho phần này anh dùng Hi3DGen, một model mã nguồn mở biến một tấm ảnh duy nhất thành một mesh 3D. Nó dùng license MIT nên anh được dùng những gì nó tạo ra trong game.

Cũng có những model sinh 3D mã nguồn mở khác, tức là miễn phí. Tuy nhiên chuyện license đã loại một số model. Ví dụ, license của Tencent Hunyuan3D loại trừ Vương quốc Anh, và vì anh ở Anh nên model này bị gạch ngay. Khi tự dựng workflow này, anh dặn hãy kiểm tra kỹ license và tìm xem model nào thực sự phù hợp nhất với bạn.

7. Kaggle, Blender và Roblox Open Cloud API

Hi3DGen cần một GPU tốt để chạy, mà máy anh thì không có GPU mạnh lắm. Nên anh chạy nó qua API của Kaggle. Theo lời anh, Kaggle cho bạn 33 giờ GPU mỗi tuần, và mỗi asset tốn khoảng 100 giây GPU, bạn tự làm phép tính. Trang tài liệu Kaggle hiện trên màn hình ghi quota GPU reset hằng tuần, là 30 giờ hoặc đôi khi cao hơn tùy nhu cầu và tài nguyên.

Và đây là điểm vướng: thứ trả về có khoảng 600.000 mặt (faces), trong khi giới hạn của Roblox là 20.000 tam giác cho mỗi mesh. Vậy nên Claude mở Blender ở chế độ không cửa sổ và cắt mesh xuống còn khoảng 6.000 tam giác.

Ba thẻ 600K faces, khoảng 6K triangles, detail gets lost trước màn hình có model khẩu súng
Quy trình giảm lưới: Blender chạy không cửa sổ nhận mesh khoảng 600 nghìn mặt, cắt xuống khoảng 6 nghìn tam giác, và chi tiết bị mất theo. Trên màn hình là model một khẩu súng lục.

Vì mất quá nhiều tam giác trong lúc decimation (giảm lưới), rất nhiều chi tiết bị mất. Claude vì thế bake toàn bộ chi tiết đó trở lại dưới dạng texture để model trông chi tiết như cũ. Màu được tô theo một spec nhỏ thay vì đoán. Và không phải thứ gì cũng đi đường này: những vật có cạnh cứng như thùng gỗ hay súng được dựng thẳng trong Blender.

API cuối cùng anh dùng là Open Cloud API của chính Roblox. Có key rồi thì model và ảnh hoàn chỉnh được upload thẳng vào tài khoản của anh, sẵn sàng dùng trong Studio. Mỗi API chỉ làm một việc và trả về một file (trên màn hình: "Each API: one job, one file back"). Mọi thứ còn lại diễn ra trên máy tính của anh.

8. Cài đặt: bật MCP trong Studio và cất API key an toàn

Để nối MCP server của Roblox, SyphoDev làm từng bước trong Roblox Studio: bấm vào biểu tượng Assistant, bấm vào dấu ba chấm, chọn Manage MCP Servers. Sau đó đảm bảo mục "Enable Studio as MCP server" được bật.

Hộp thoại Assistant Settings của Roblox Studio, mục MCP Servers, con trỏ ở Claude Code CLI
Hộp thoại Assistant Settings, mục MCP Servers: "Enable Studio as MCP server" đã bật, báo "1 client connected". Bên dưới là phần Quick connect với Antigravity, ChatGPT (codex), Claude Code CLI và Visual Studio Code; con trỏ đang ở dòng Claude Code CLI.

Tiếp theo, mở dòng Claude Code CLI và copy nội dung trong đó. Sang một session Claude Code, nói đơn giản là bạn có một MCP đang chạy và muốn Claude dùng nó để kết nối, paste phần vừa copy vào, và Claude sẽ tự làm phần còn lại. Theo anh, chỉ cần vậy là nối xong MCP. Hướng dẫn chính thức của Roblox cho bước này nằm ở trang Connect to the Roblox Studio MCP server.

Để dùng API của Roblox, anh vào create.roblox.com, tức Creator Hub, chọn All tools, mở ra, nhìn xuống dưới cùng sẽ thấy Open Cloud API, rồi vào API keys và làm theo mọi bước ghi ở đó. Anh không quay toàn bộ phần này vì anh có API key riêng không muốn bị lộ, nhưng bạn chỉ cần làm theo các bước, rồi lấy token.

Sau đó anh gõ vào Claude Code một câu như sau (đây là câu xuất hiện trong ô nhập của anh):

I have a roblox api key to allow you to import assets into my game. tell me how to store it as a secrect variable on my machine, allowing you to access it but not store it in the chat
Ứng dụng Claude Desktop với prompt hỏi cách cất Roblox API key thành biến bí mật
Ứng dụng Claude Desktop với câu hỏi về cách cất Roblox API key đang nằm trong ô nhập. Bảng thống kê phía trên cho thấy model yêu thích là Opus 5; ô chọn model ở góc dưới đang là Opus 5.5, mức Medium.

Gửi đi rồi làm theo những gì Claude bảo. Nó sẽ hướng dẫn bạn cất key thành một biến bí mật chỉ bạn biết, bằng các lệnh trong terminal, mà không cần paste token thật vào Claude Code. Nếu bạn paste token vào Claude Code, nó sẽ được lưu trong đoạn chat, và bạn không muốn điều đó. Nếu gặp vấn đề gì khi làm lại workflow này, anh bảo cứ hỏi Claude Code: nó biết mình đang làm gì và sẽ tự tìm ra cách.

9. Skill code: bài toán khó nhất

Giờ SyphoDev đi qua từng skill một. Code đi trước, vì nó có bài toán khó nhất: bạn không thể thật sự xem một game Roblox trong lúc nó chạy. Claude không nhìn được play mode, chụp màn hình chỉ hoạt động ở edit mode, và thứ duy nhất thật sự đi ra từ một game đang chạy là output log. Trên màn hình, ô "Watch the running game" bị gạch chéo dưới tiêu đề "Code: the hardest problem".

Vì vậy luật là: càng nhiều phần của game càng tốt phải kiểm tra được khi game đứng yên. Điều đó có nghĩa là hai việc.

Thứ nhất, các luật của game, như một cú đánh gây bao nhiêu damage hay một lần nâng cấp tốn bao nhiêu, đều nằm trong thư mục riêng, viết bằng con số thuần và không có object Roblox nào. Như vậy chúng có thể được test ngay trên máy tính của anh mà không cần Roblox chạy.

Thứ hai, mọi thứ phải qua bốn bước kiểm trước khi Studio được nhìn thấy nó:

1. Rojo buildbắt file hỏng ~1 giây 2. Testsluật game còn đúng 3. Linterbắt code cẩu thả 4. Formattercode đúng format project trống cũng phải qua đủ bốn bước trước dòng code game đầu tiên
Hình 9.1Bốn bước kiểm trước khi code đi vào Studio ("4 checks before Studio"), theo thứ tự SyphoDev kể.

Bước một là Rojo build, ghép toàn bộ game lại với nhau và bắt được file hỏng trong khoảng một giây. Bước hai là bộ test, kiểm các luật của game vẫn còn đúng. Bước ba là linter, bắt code cẩu thả. Bước bốn là formatter, đảm bảo code đúng định dạng.

Khi skill khởi tạo một project mới, project trống phải qua đủ bốn bước này trước khi một dòng code game nào được viết. Bởi vì nếu điểm xuất phát đã fail, bạn không thể phân biệt lỗi thật của mình với đống code rác (slop) mà AI sinh ra. Trên màn hình: "The empty project passes first, or you can't tell your mistakes from the AI's slop".

Trong skill còn có năm luật chuẩn, và chúng đến từ một game mà anh đã phải làm lại từ đầu. Code sống trong file, không bao giờ gõ thẳng vào Studio: bản đầu tiên chết vì Studio và các file trôi lệch khỏi nhau. Mọi con số bạn có thể muốn chỉnh, như tốc độ, damage hay giá, nằm trong một thư mục config duy nhất, nên cân bằng game là đổi dữ liệu, không phải viết lại toàn bộ code. Mọi thông điệp giữa người chơi và server đi qua một file duy nhất, nên tên của mọi thông điệp được ghi ở một chỗ. Và cuối cùng là một danh sách các cái bẫy, mỗi cái đã làm anh mất những ngày làm việc thật.

10. Skill UI: một spec, ba sản phẩm, depth stack

Tiếp theo là UI. Vấn đề khi thiết kế UI trong một công cụ thiết kế là bản thiết kế chỉ là một tấm hình, còn thứ thật thì dần trôi xa khỏi nó. Vì vậy ở đây không có công cụ thiết kế nào. Anh viết một spec duy nhất, và từ spec đó skill tạo ra ba thứ: một ảnh preview, file UI thật dùng trong game, và một script dựng UI đó trong Studio. Vì cả ba được vẽ ra từ cùng một nguồn, bản preview không thể lệch với game về một kích thước hay một màu sắc.

Mọi panel và nút đều tự động có thứ anh gọi là depth stack: một cái bóng (shadow) bên dưới, hơi ngả sang xanh dương; một gradient trên mặt; độ nổi (lift) từ phía trên; và một đường viền (outline) dày như nhau ở mọi chỗ. Theo anh, đó là phần lớn khác biệt giữa UI trông phẳng và UI trông chuyên nghiệp. Độ dày viền lẫn lộn là dấu hiệu lộ rõ nhất của một UI do người mới hoặc AI làm.

Bốn thẻ depth stack phía trên màn hình UI The Settlement trong game
Bốn lớp của depth stack: shadow hơi ngả xanh, gradient trên mặt, lift từ phía trên, outline cùng độ dày. Bên dưới là một màn hình UI trong game ("The Settlement", với các mục "Stable a sheep" và "Supplies"), nơi viền và nút cùng một phong cách.

Một vấn đề nữa của UI do AI làm thông thường là chuyện icon: AI không có sẵn icon. Thay vào đó nó sẽ dùng emoji, hoặc bất cứ thứ gì tương tự mà nó tìm được. Trên màn hình: "AI-made UI has no icons".

11. Icon, bộ checker và UI học từ game khác

Trong workflow của SyphoDev, mọi icon đều được tạo bằng Flux trên Cloudflare, đúng model anh nhắc ở phần API.

Sau đó là bộ checker. Nó test mọi trang ở bốn kích thước màn hình thật, từ một chiếc điện thoại nhỏ tới màn hình full HD. Nút phải đủ lớn để bấm bằng ngón cái. Không thứ gì được phép chạm vào thứ khác. Thứ gì đáng lẽ nằm giữa thì được đo để lệch không quá 1,5 pixel. Chữ không được phép co lại nhỏ tới mức không đọc được, và không frame nào được phép vẽ một cái khung ngẫu nhiên quanh nút. Lỗi khung ngẫu nhiên này AI cứ mắc đi mắc lại, nên anh đặt hẳn một luật để nó tuân theo.

1. Bốn kích thước màn hình thật, từ điện thoại nhỏ tới full HD 2. Nút đủ lớn để bấm bằng ngón cái 3. Không thứ gì chạm vào thứ khác 4. Căn giữa sai lệch tối đa 1,5 px 5. Không chữ quá nhỏ, không khung ngẫu nhiên quanh nút
Hình 11.1Năm điều bộ checker UI kiểm (trên màn hình: "4 real screen sizes", "thumb-sized buttons", "nothing touches", "centred to 1.5 px", "no tiny text, no random boxes").

Quan trọng nhất, thiết kế UI mà Claude đang dùng là một thiết kế do chính Claude tạo ra sau khi được "train" trên nhiều UI khác nhau tìm thấy trên Roblox (trên màn hình: "My UI style: trained, not guessed"). Vì vậy UI không bị giới hạn ở kiểu này; UI có thể là bất cứ thứ gì mà dữ liệu nó học. Nghĩa là nếu muốn, anh có thể vào game đang được chơi nhiều nhất trên Roblox, copy UI của nó, đưa cho Claude, và Claude sẽ tìm cách tái tạo lại rồi giữ nó làm template trong skill. Từ đó, mọi game anh làm bằng skill này sẽ dùng UI đó. Skill sẽ lấy những phần hay của UI mẫu để tự tạo UI riêng mỗi lần.

12. Skill map: đo được thì phải đo

Tiếp theo là map. Nhiều vấn đề của map sinh ra bằng script là nó thường chỉ là một đống part. Nhưng một map không chỉ là một đống part: đó là một không gian mà người chơi thật sự di chuyển qua được, và những câu hỏi quan trọng đều có đáp án đúng. Bạn có tới được đó không? Bạn có quay về được không? Bạn có nhìn xuyên qua được không? Bạn rơi bao lâu?

Tất cả những điều này đo được, nên skill tự đo bằng raycast và các con số di chuyển thật của game: độ cao nhảy, tốc độ, mọi thứ đều đọc ra từ config của chính game. Mỗi con số đều được gắn nhãn nguồn gốc, và bất cứ thứ gì chỉ là phỏng đoán đều được liệt kê trong mọi báo cáo. Trên màn hình: "Raycasts + real movement numbers", "Jump height, speed: from config", "Every number labelled with its source", "Guesses listed in every report".

Sau đó là chín bước kiểm: platform lơ lửng; mặt trên mà bạn không thật sự đứng được; chỗ cao mà không ai lên tới được; chỗ người chơi tới được nhưng không nên tới; những hố bạn rơi vào mà không bao giờ trèo ra được; tầm nhìn quá thoáng hoặc quá kín; part bị kẹt vào trong nhau; những vòng platform không cách đều; và những cú rơi ngắn hơn đoạn ragdoll mà nhân vật cần để hồi lại.

Tám thẻ kiểm map: floating, no footing, unreachable, shouldn't reach, no way out, sight lines, overlaps, uneven
Các bước kiểm map trên màn hình: Floating (platform), No footing (mặt trên), Unreachable (chỗ cao), Shouldn't reach (chỗ không nên tới), No way out (hố), Sight lines (quá thoáng hoặc quá kín), Overlaps (part trong part), Uneven (vòng platform). Bước thứ chín, cú rơi ngắn hơn ragdoll, chỉ có trong lời nói.

Đây là những bước kiểm và luật được rút ra từ chính các lần test và chạy skill của anh (trên màn hình: "Rules from my own test runs"). Một lần nữa, như mọi skill khác trong video, skill là thứ cá nhân hóa được: thứ hợp với anh có thể không hợp với bạn. Đó là điều hay nhất của skill: bạn chỉnh nó theo bản thân, theo map của bạn, UI của bạn, code của bạn, model của bạn. Điều quan trọng không phải là bản thân đoạn code, mà là cách bạn thiết kế nó. Các bước kiểm này được đo bằng code, để game cuối cùng không có một đống lỗi di chuyển hay lỗi map.

13. Map phải đẹp và nhẹ, rồi tới VFX

Một map phải dùng được, nhưng cũng phải đẹp. Khi tạo map bằng code, nó chỉ tạo ra part, và thường trông xấu hoặc lộ rõ là do AI làm: không có chút công sức nào, không kiểm xem có đẹp không, chỉ tạo ra một thứ gì đó. Thay cho part, anh tạo mesh bằng Blender hoặc bằng skill mesh 3D. Trên màn hình, ô "Just parts" bị gạch chéo, thay bằng "Meshes (Blender / 3D skill)".

Giống như UI, thiết kế của map cũng có thể học từ map khác. Ví dụ, anh tìm được một loạt ảnh chụp màn hình map của một game Roblox khác. Anh rất thích thiết kế và kiểu texture mesh theo phong cách anime trong dòng game này, nên anh đưa phong cách đó vào skill. Nếu bạn thích thiết kế của một game, chỉ cần train skill trên game đó. Nếu bạn thích thiết kế của hai game nhưng không tách được mình thích gì ở mỗi game, hãy train trên cả hai và để AI tạo ra một thứ mới. Skill của bạn làm gì là tùy bạn.

Cuối cùng, để một map Roblox được thiết kế đúng thì nó phải luôn được tối ưu (trên màn hình: "It has to stay optimised"). Nghĩa là không để mesh có hàng chục nghìn tam giác, nên anh cho kiểm từng model trước khi import vào Studio.

Tiếp theo là VFX. Đây là thứ rất khó mô phỏng bên ngoài Roblox: nó khá đặc thù với rất nhiều con số và đủ loại hiệu ứng bạn có thể làm bằng particle emitter trong Roblox, nên khó mô phỏng bằng code. Vì vậy skill không sinh hiệu ứng từ con số không. Nó thu thập hiệu ứng, tạo ra các khối xây dựng, rồi sinh hiệu ứng từ những khối đó.

Như bạn biết, trong Toolbox có rất nhiều gói VFX miễn phí. Cách skill của anh hoạt động là anh lấy một loạt gói asset miễn phí từ Toolbox vào Studio, cho skill thu hoạch (harvest) tất cả hiệu ứng trong đó, phân loại chúng, rồi biến chúng thành các khối để skill chọn mà tạo hiệu ứng mới.

Ví dụ có một hiệu ứng quả cầu lửa: skill sẽ lấy một quả cầu, một ngọn lửa, một tia (beam), rồi ghép chúng lại để tạo thành hiệu ứng. Trên màn hình: "A ball, a flame, a beam, fireball".

14. Phase freeze, sound và animation

Tất nhiên, với cách này nó cũng có thể tạo ra một đống thứ vô nghĩa trông chẳng đẹp gì. Nên để kiểm, skill dùng thứ anh gọi là phase freeze. Một lần bùng hiệu ứng kéo dài chưa tới một giây, nên chụp màn hình lúc đó thì chẳng khác gì tung đồng xu. Thay vào đó, nó kích hoạt hiệu ứng, chờ đúng khoảng thời gian muốn kiểm, rồi đóng băng các hạt (particle) tại chỗ. Nó nhìn ở đầu, giữa và cuối, nhờ vậy có thể tự tin nói hiệu ứng có mạch lạc từ đầu tới cuối hay không.

Thẻ phase freeze với ba bước fire the effect, wait the exact time, freeze the particles
Phase freeze: một lần bùng hiệu ứng kéo dài dưới một giây, nên skill kích hoạt hiệu ứng, chờ đúng thời điểm cần kiểm, rồi đóng băng các particle để nhìn.

Anh nói trước: khi anh tặng các skill này lúc đạt 1.000 người đăng ký, anh sẽ tặng VFX collector, không phải thư viện của anh, vì texture trong các gói đó là công sức của người khác. Nếu muốn thứ tương tự, bạn sẽ phải tự xây thư viện riêng từ các gói của mình.

Tiếp theo là sound. Có một vấn đề lớn với âm thanh trong Roblox khi dùng workflow này để upload: số lần upload âm thanh qua API mỗi tháng có giới hạn. Có những cách sinh âm thanh bằng AI, nhưng anh thấy hay hơn là để Claude dùng một loạt âm thanh anh đã thu thập sẵn và phân loại theo tên như boom, fire effect, gunshot, rồi ghép các âm thanh này lại để tạo ra âm thanh tốt.

Rồi đến skill animation. Trong skill này, các tư thế (pose) được viết dưới dạng dữ liệu: khớp nào xoay, xoay bao xa, vào lúc nào. Blender sau đó biến dữ liệu đó thành một animation thật trên rig R6 hoặc R15. Nó render từng frame và xếp tất cả vào một contact sheet. Claude nhìn contact sheet đó và quyết định xem nó có giống một animation mạch lạc không.

Contact sheet animation con cừu đi và chạy, kèm các dòng poses as data, Blender R6/R15 rig, Claude checks the sheet
Contact sheet của các animation cho con cừu (đi, chạy, cừu con đi). Chữ trên màn hình tóm quy trình: pose là dữ liệu (khớp nào, bao xa, khi nào), Blender dùng rig R6 / R15, mọi frame trên một sheet, Claude kiểm sheet đó.

Tuy nhiên Claude không giỏi việc này lắm. Một lần nữa, điều bạn nên làm là tìm một loạt animation Roblox khác nhau và để nó học theo, để tìm ra cần gì mới tạo được một animation đúng chất Roblox. Nếu tự làm skill này, anh nói sẽ mất rất nhiều lần thử và sai: bạn sẽ bực với Claude, và một số animation đơn giản là trông không giống của Roblox. Nhưng bạn chỉ cần kiên trì, tiếp tục thử. Và một lần nữa, anh sẽ phát hành các skill của mình, vốn đã qua quá trình train đó, ngay khi đạt 1.000 người đăng ký.

15. Skill 3D model và create-roblox-game, người quản lý

Cuối cùng là skill 3D model. Anh đã giải thích ở trên nhưng đi lại một lần nữa. Về cơ bản, nó dùng API của Cloudflare và Kaggle. Đầu tiên nó tạo một tấm ảnh bằng model Flux trên Cloudflare. Claude lấy ảnh đó về, nhìn xem có đẹp không. Nếu không đẹp, nó đổi prompt gửi Cloudflare và chỉnh tới khi ảnh trông ổn.

Bốn thẻ của skill 3D model: Flux image, Claude checks it, new prompt, Kaggle notebook
Chuỗi của skill 3D model: Cloudflare sinh ảnh Flux, Claude kiểm, ảnh xấu thì viết prompt mới, ảnh tốt thì gửi sang notebook Kaggle. Màn hình phía sau là trang hướng dẫn dùng GPU của Kaggle.

Khi ảnh đã ổn, nó gửi ảnh sang một notebook trên Kaggle, nơi dùng ảnh để tạo model 3D bằng Stable3DGen (tên mà repo Hi3DGen dùng cho phiên bản đã chỉnh sửa của mình). Anh đã giải thích vì sao chọn model này; một lần nữa, đơn giản là vì nó dùng miễn phí. Claude nhận model về, kiểm từng góc nhìn xem có ổn không; nếu không, nó thử sinh lại cho tới khi thành công.

Model trả về có khoảng 600 nghìn mặt. Skill decimate theo tỷ lệ khoảng 60:1 để còn khoảng 6 đến 10 nghìn mặt, tô lại phần chi tiết bị mất trong lúc decimation dưới dạng texture, rồi dùng Roblox API để import thẳng vào game.

Và cuối cùng là skill nối tất cả lại với nhau: skill create-roblox-game. Nó giữ ba việc mà không skill nào khác làm: nghiên cứu (research), thiết kế (design), và ghép game lại ở cuối (assembly). Mọi việc khác nó giao cho các skill vừa kể. Hãy coi nó gần như người quản lý: nó tạo phần nghiên cứu, lên kế hoạch, rồi đảm bảo mỗi skill làm đúng việc được giao.

create-roblox-gameresearch · design · assembly CodeUIMap VFXSoundAnimation3D model
Hình 15.1Skill create-roblox-game đóng vai người quản lý: giữ phần research, design và assembly, giao từng mảng còn lại cho skill chuyên trách.

Nếu muốn tự thử tất cả, SyphoDev gợi ý: cài Claude Code, chọn đúng một việc mà AI đang làm tệ nhất với bạn, xây một skill chỉ cho việc đó, và mỗi lần nó sai thì ghi cách sửa lại.

Như đã nói ở video trước, khi đạt 1.000 người đăng ký, anh sẽ tặng miễn phí toàn bộ các skill mà anh tự xây. Anh mời mọi người cho biết muốn thấy anh làm gì tiếp theo, và mời vào server Discord anh vừa lập trước khi kênh chạm mốc 1.000 người đăng ký để nhận vai trò OG. Anh hẹn gặp lại ở video sau.

Nguồn và liên kết 15 nguồn

  1. Tên gốc: How to Make a Roblox Game With AI (Claude Opus 5.5 Full Tutorial)
  2. Sự kiện: YouTube
  3. Video gốc: https://www.youtube.com/watch?v=afuKhenJldY youtube.com
  4. Kênh YouTube SyphoDev (SyphoDev): youtube.com/channel/UCz07FoRcSyeswNqzpjuM6MA youtube.com
  5. Claude Code: claude.com/claude-code claude.com
  6. Tài liệu skill trong Claude Code (SKILL.md, name, description, file đi kèm): code.claude.com/docs/en/skills code.claude.com
  7. Model Context Protocol: modelcontextprotocol.io modelcontextprotocol.io
  8. Roblox: Connect to the Roblox Studio MCP server (Assistant, Manage MCP Servers, Enable Studio as MCP server): create.roblox.com/docs/studio/mcp create.roblox.com
  9. Roblox Creator Hub: create.roblox.com create.roblox.com
  10. Roblox Open Cloud: create.roblox.com/docs/cloud/open-cloud create.roblox.com
  11. Rojo, công cụ đồng bộ code từ file vào Roblox Studio: rojo.space rojo.space
  12. Cloudflare Workers AI, model flux-1-schnell: developers.cloudflare.com/workers-ai/models/flux-1-schnell developers.cloudflare.com
  13. Hi3DGen (Stable3DGen, license MIT): github.com/Stable-X/Hi3DGen github.com
  14. Kaggle: kaggle.com kaggle.com
  15. Blender: blender.org blender.org