- Tích hợp Claude Code vào trò chơi mã nguồn mở RollerCoaster Tycoon 2 (OpenRCT2) để thử nghiệm cho AI thực sự điều hành một công viên giải trí
- AI phân tích hơn 100 chỉ số như tài chính, khiếu nại của khách, dữ liệu hỏng hóc trò chơi rồi tự động đưa ra quyết định quản lý như lắp quầy đồ uống, tuyển nhân viên, điều chỉnh giá vé
- Thông qua công cụ CLI
rctctl, mọi thao tác trong game đều được thực hiện bằng dòng lệnh, với cấu trúc được thiết kế tương tự kubectl của Kubernetes
- Claude cho thấy thế mạnh ở phân tích dữ liệu, điều chỉnh giá, quản lý nhân sự, nhưng bộc lộ giới hạn trong các bài toán không gian như kết nối đường đi, bố trí tàu lượn siêu tốc, nhận biết địa hình
- Thí nghiệm xác nhận rằng cốt lõi của thiết kế agent là độ dễ đọc của môi trường và chất lượng giao diện
Tổng quan dự án
- Ramp Labs đã tích hợp Claude Code vào RollerCoaster Tycoon 2 để thử nghiệm cho AI trực tiếp vận hành công viên
- Claude phân tích hơn 100 loại dữ liệu trong game như tài chính, mức độ hài lòng của khách và trạng thái trò chơi
- Dựa trên kết quả đó, hệ thống tự động đề xuất các hành động như thêm quầy đồ uống, thuê thợ bảo trì, tăng giá vé vào cửa
- Mục tiêu của thử nghiệm là rút ra bài học về thiết kế AI agent trong môi trường B2B SaaS
- RollerCoaster Tycoon được chọn vì đây là trò chơi phản ánh vận hành kinh doanh lấy khách hàng làm trung tâm và vòng phản hồi số
Vì sao là RollerCoaster Tycoon
- Ramp đang phát triển các agent quy mô nhỏ theo từng tác vụ, với cách tiếp cận có cân nhắc đến giới hạn về bảo mật và ngữ cảnh
- Tuy nhiên, họ vẫn muốn thử nghiệm với một agent đơn lẻ có quyền hạn rộng
- RollerCoaster Tycoon là môi trường kết hợp quản lý kinh tế, khách hàng và vận hành, mang cấu trúc tương tự SaaS
- Giao diện của trò chơi giống với dashboard B2B SaaS, đồng thời cũng rất hợp với giao diện terminal mang phong cách retro-futurism của Claude
Năng lực và giới hạn của Claude
- Nhóm đã fork OpenRCT2 để thêm cửa sổ terminal, cho phép Claude điều khiển trò chơi bằng dòng lệnh
- CLI
rctctl bao phủ mọi thao tác mà người dùng có thể thực hiện, và giao tiếp với trạng thái game thông qua JSON-RPC
- Thay vì nhìn bằng hình ảnh, Claude nắm bắt thông tin không gian thông qua đầu ra bản đồ ASCII
Điểm mạnh của Claude
- Kiến thức về game: có hiểu biết phong phú về RCT và hoạt động tự nhiên ngay cả trong môi trường game thập niên 90
- Thu thập thông tin: tổng hợp và phân tích nhiều chỉ số như phản hồi của khách, dữ liệu tài chính
- Thao tác số: mạnh ở các tác vụ phi không gian như mở/đóng trò chơi, điều chỉnh giá, thuê nhân viên, chạy marketing
- Bố trí cơ sở vật chất: có thể đặt ổn định các công trình đơn giản như nhà vệ sinh và quầy đồ uống
Điểm yếu của Claude
- Kết nối đường đi: gặp khó ở các tác vụ không gian như tìm đường và nối lối vào/lối ra
- Bố trí tàu lượn siêu tốc: khi lắp đặt trò chơi lớn thường thất bại trong việc nhận biết chướng ngại vật và địa hình
- Nhận thức không gian 3D: không thể xử lý dốc, cấu trúc ngầm hay thiết kế coaster tùy chỉnh
- Kết luận là Claude mạnh về quản lý dựa trên thông tin, nhưng yếu ở thao tác thị giác và không gian
Quá trình build
- Dựa trên OpenRCT2 (C++), nhóm đã thêm cửa sổ terminal cho Claude, CLI
rctctl, lớp RPC và mã kiểm thử
- Phiên bản đầu tiên được lên kế hoạch bằng ChatGPT o3-Pro Deep Research, sau đó được hiện thực lại bằng GPT-5.1-codex
- Tổng thời gian thực hiện hơn 40 giờ, trong đó thiếu vòng phản hồi được chỉ ra là nút thắt lớn nhất
- Nhóm còn để Claude trực tiếp ghi bug report vào kho mã, giúp tăng hiệu quả QA
Bài học chính
- Độ dễ đọc của môi trường (Environment Legibility): Claude hoạt động rất tốt với giao diện dữ liệu rõ ràng, nhưng yếu với biểu diễn không gian dạng văn bản
- Giá trị của coding agent: các bản cập nhật model mới nhất như Claude Opus 4.5 được phản ánh ngay lập tức, giúp tăng tốc phát triển
- Tầm quan trọng của vòng lặp phát triển: nếu không có vòng QA tự động, năng suất sẽ giảm mạnh
- Ưu thế của trải nghiệm thực tế: cách tốt nhất để hiểu cách LLM vận hành là trực tiếp thử nghiệm và chơi
Thông tin chạy và mã nguồn mở
- Cần macOS (Sonoma trở lên), Xcode, CMake, Ninja và RCT2 (bản quyền chính thức)
- CLI
rctctl dùng cấu trúc lệnh kiểu kubectl, cho phép Claude điều khiển game qua JSON-RPC
- Kết quả build:
- OpenRCT2 (phiên bản tích hợp terminal)
rctctl (công cụ CLI)
- Tài sản sprite
- Toàn bộ mã nguồn được công khai trên GitHub (jaysobel/OpenRCT2), và có thể xem trình diễn trực tiếp trên Twitch
Kết luận
- Claude Code đồng thời cho thấy tiềm năng và giới hạn của tự động hóa vận hành
- RollerCoaster Tycoon đóng vai trò như một sân thử nghiệm chuyển tiếp giữa giao diện đồ họa và hệ thống thông minh
- Insight cốt lõi: thành bại của AI agent phụ thuộc vào độ rõ ràng của môi trường và chất lượng thiết kế giao diện
1 bình luận
Ý kiến trên Hacker News
Tôi luôn thấy tiếc vì mức độ công cụ mà LLM của tôi dùng quá thấp
Trong IDE, tôi có thể bấm một cái là refactor, lần theo symbol, xem nơi hàm được sử dụng, nhưng LLM thì chỉ dùng các lệnh nguyên thủy như grep, diff, cat
Tôi tự hỏi liệu có ai đang cố gắng cung cấp cho LLM công cụ viết code·refactor tốt hơn không
Dù ghi rõ trong AGENTS.md, nó vẫn phớt lờ và quay lại cách làm đơn giản, khá bực bội
Nếu JetBrains kết nối năng lực refactor·code inspection của họ với AI thì có lẽ đã đi trước rất xa
LLM ngược lại còn mạnh ở chỗ kết hợp các công cụ cấp thấp để giải quyết vấn đề
Một script Python phức tạp 20 dòng với con người thì rườm rà, còn LLM có thể tạo ra trong 0,5 giây
Vì nó hiểu và ghép nối các mảnh code rất nhanh, nên tính năng refactoring đôi khi lại gây nhiễu
Nếu đưa quá nhiều công cụ, có nguy cơ làm mờ khả năng phán đoán
Tôi là tác giả. Chia sẻ các liên kết bonus
Script phiên làm việc dùng claude-code-transcripts của Simon Willison
Bài đăng Reddit
Repo dự án OpenRCT2
Claude mạnh với đầu vào dựa trên hình ảnh, nhưng có thể yếu với sơ đồ ASCII
Cũng như thiết kế agent trong thế giới thực, giới hạn của agent đa dụng nằm ở mức độ quan sát được của môi trường và độ mạnh của giao diện
Vì vậy, có lẽ nên xem agent là thứ tự động hóa “sự chăm chỉ” chứ không phải “trí thông minh”
Đã có vụ dùng sai từ “revert”, khiến Codex thực thi
git revertvà đảo ngược nội dung công việcgit revertkhông phải lệnh mang tính phá hủy, nên nếu có mất dữ liệu thì có lẽ làgit reset --hardjj statusvào prompt là an toànThật ấn tượng khi trò chơi này được một người duy nhất phát triển bằng mã assembly
Tôi muốn tìm ra nhà phát triển để gửi lời cảm ơn
Nỗ lực của Claude Code cũng rất đáng chú ý nên tôi thấy hứng thú
Phần nói rằng họ đã hoàn thành dự án bằng vibe-coding mà hoàn toàn không biết C++ khá thú vị
Có vẻ thế hệ ngày nay không thực sự hiểu giá trị của kiểu môi trường này
Phần phỏng vấn ở cuối video rất ấn tượng
Những công cụ cộng tác giữa AI và con người như CLI kiểu kubectl, phản hồi của Claude, hệ thống cảnh báo... đang ngày càng quan trọng
Nếu cung cấp cho AI cả bối cảnh mà con người có thể hiểu bằng trực quan, ta sẽ nhận được kết quả tốt hơn nhiều
Chỉ tăng thêm context thì không tạo ra việc học, và rốt cuộc vẫn cần fine-tuning
Bài viết thú vị, nhưng còn thiếu phân tích kết quả về việc AI thực sự chơi game tốt đến đâu
Vì khó hiểu bản đồ 2D nên nó chỉ xây được vài thứ như nhà vệ sinh và quầy bán hotdog
Nếu là mô hình multimodal thì có lẽ đã tốt hơn nhiều
Tôi tò mò làm sao để kiểm tra lượng context còn lại trong Claude Code
/contextThậm chí còn có plugin trực quan hóa phần dung lượng còn lại bằng thanh màu
Tôi nghĩ với các thử nghiệm kiểu này, game theo lượt như Civilization sẽ phù hợp hơn
Vì bản đồ có cấu trúc lưới và tiến trình diễn ra theo từng lượt