[Nhật ký phát triển] Một người không phải lập trình viên đã thử phát triển game soulslike bằng vibe coding
(play.google.com)Tôi là một IT planner không phải lập trình viên. Gần đây tôi đã thử phát triển một game mobile như một dự án solo, và xin chia sẻ lại như một bản ghi chép về cách công việc được triển khai xoay quanh các công cụ AI.
Tôi đã chạy hết sức trong khoảng một tháng rưỡi, và vì muốn lưu lại hành trình này ở đâu đó nên theo gợi ý của một người quen, tôi đã viết bài ở đây.
[Bối cảnh]
- Không có kinh nghiệm phát triển (lần đầu cả lập trình lẫn đồ họa)
- Tuy vậy, trước đó đã có kinh nghiệm làm công việc lập kế hoạch
- Bắt đầu để thử xem nếu tận dụng AI tool một cách tích cực thì phát triển một mình có khả thi hay không
(Nhìn thấy một người quen dùng Cursor để làm ra Tetris trong chưa đầy 10 phút nên tôi cũng bắt đầu thử)
Dạo gần đây, làn sóng phát triển dựa trên AI đang lan rộng rất nhanh, nên tôi muốn thử một cách tiếp cận mang tính thực nghiệm vượt ra ngoài sự tò mò đơn thuần. Đặc biệt, một thách thức là làm sao hiện thực hóa cảm giác chiến đấu kiểu soulslike trên nền tảng mobile.
[Ý tưởng game]
- Game hành động soulslike casual
- Lược bỏ farming/quái thường không cần thiết → cấu trúc tập trung vào boss battle
- Điều khiển: tập trung vào tấn công / phòng thủ / né / parry (dựa trên góc nhìn dọc của mobile)
[Tổ hợp AI tool đã sử dụng]
- ChatGPT (4o): thiết kế hệ thống chiến đấu, tinh chỉnh prompt, viết prompt tạo ảnh, sắp xếp lời thoại/thế giới quan
- Claude 3.7 → 4.0: viết code, hỗ trợ thiết kế cấu trúc
- Tổ hợp Cursor + Claude: xử lý coding/debugging theo thời gian thực, sử dụng như IDE
Tôi dùng mỗi công cụ với vai trò được phân chia rõ ràng. Đặc biệt, tổ hợp Cursor và Claude giúp ích nhiều nhất về tốc độ viết code và giải quyết vấn đề, và khi Claude được nâng cấp lên 4.0 thì chất lượng cải thiện rõ rệt đến mức có thể cảm nhận được.
Điều rút ra: “AI chỉ làm tốt khi được giao việc đúng cách”
Yêu cầu đơn giản thì hiệu quả thấp, thiết kế prompt chiếm hơn nửa thành công
Việc chia nhỏ đơn vị công việc và duy trì ngữ cảnh là rất quan trọng
Ví dụ:
Khi thiết kế hệ thống:
“Bạn là người thiết kế hệ thống chiến đấu. Hãy thiết kế cấu trúc cho một action RPG góc nhìn dọc.”
Khi yêu cầu code:
“Nút tấn công → đòn đánh cơ bản, nút charge → tích khí để tung đòn mạnh, không có stamina thì không thể hành động”
Đằng sau những kết quả ấn tượng của AI là hàng chục lần lặp lại và điều chỉnh, và qua quá trình đó tôi thực sự cảm nhận rằng năng lực thiết kế prompt là một kỹ năng cốt lõi.
[Xử lý hình ảnh]
- Nhân vật, quái vật, icon UI, background đều được xử lý bằng tạo ảnh bằng AI
- Sử dụng mô hình tạo ảnh dựa trên GPT để tạo ra hàng chục khung hình → hậu kỳ chỉnh sửa (dùng PowerPoint đơn giản) → phát liên tiếp ảnh dưới dạng sprite để tạo animation
Tuy nhiên, khi số lượng ảnh tạo ra quá nhiều thì phía GPT có thể áp soft ban, nên cần phân bổ tiến độ xử lý theo từng đợt.
[Kết nối backend]
- Ban đầu phát triển theo hướng client-centric, nhưng sau đó đã tích hợp backend với supabase.
- Trường hợp tích hợp Google OAuth và backend supabase thì tôi thực hiện với sự hỗ trợ của tổ hợp ChatGPT + Cursor (Claude), làm từng bước theo những gì ChatGPT và Claude chỉ dẫn, và hiện tại việc tích hợp backend đã hoàn tất.
- Thỉnh thoảng AI cũng đưa thông tin sai, nên trong trường hợp đó tôi cho các AI cross-check thông tin của nhau rồi mới tiếp tục.
[Trạng thái hiện tại]
- Đã khoảng 1,5 tháng, hoàn tất phát triển phiên bản launch
- Đang tiến hành pre-registration trên Google Play
- Đồng thời cũng triển khai bản test, mục tiêu phát hành chính thức trong tháng này
[Video demo và link pre-registration]
-
Link Google Play:
https://play.google.com/store/apps/details?id=xyz.brokensoul.mygame -
Video gameplay trên YouTube:
https://youtu.be/4oMxJJBdzoI?si=HWVMUkWkzfxkJ4M_
[Lời kết]
Vì đây là lần đầu phát triển một mình nên còn nhiều thiếu sót, nhưng tôi thực sự cảm thấy rằng nếu tận dụng tích cực các công cụ AI thì hoàn toàn có thể làm được một tựa game indie đạt mức khá. Đặc biệt, việc năng lực lên ý tưởng và khả năng xây dựng prompt đang nổi lên như những năng lực cốt lõi cũng là điều rất thú vị.
Mọi câu hỏi hay phản hồi đều luôn được chào đón.
Nếu phản hồi sau khi phát hành tốt, tôi sẽ chia sẻ thêm cả quá trình phát triển sau phiên bản chính thức.
30 bình luận
Xin chào, cho mình hỏi phần âm thanh bạn đã làm như thế nào vậy? Vì không thấy có nội dung về phần đó nên mình tò mò và để lại bình luận. Mình thật sự chỉ có thể nghĩ rằng bạn quá tuyệt vời.
Âm thanh cũng được thực hiện bằng các công cụ dựa trên AI. Tôi đã nhận gợi ý từ GPT hoặc tận dụng một tác nhân AI tên là Suno, và phần prompt nhập vào cũng được GPT hỗ trợ.
Ồ, bạn đã mất bao lâu vậy? Và nếu hoàn toàn không hiểu về code thì
bạn đã xem cách nó hoạt động, rồi tìm ra vấn đề trong code và nhờ AI giải quyết giúp sao?
Hay bạn còn nhờ cả cách học code để tự học nữa?
Mình nghĩ là đã mất khoảng 2 tuần để làm phần khung cơ bản, 2 tuần để nâng cao độ hoàn thiện và port sang phiên bản Android, và khoảng 2 tuần để tích hợp backend (supabase).
Dù có kiến thức về mặt lên kế hoạch, mình gần như không có kiến thức về môi trường phát triển hay lập trình, nhưng mỗi khi gặp điều chưa biết thì mình hỏi GPT, vừa thiết lập môi trường phát triển vừa sửa bug và phát triển game như vậy.
Và rồi khi làm dần, mình cũng ngày càng quen mắt hơn với mã nguồn và logic phát triển.
Thật đáng nể. Chắc hẳn bạn đã phải suy nghĩ đến nhiều yếu tố khác nhau chứ không chỉ riêng phần code..
Ngoài lề một chút thì nhân vật này làm mình liên tưởng đến 2B haha
Cảm ơn!
Tôi đang định thử làm game bằng AI vào cuối năm nay hoặc đầu năm sau, nên cảm ơn bạn đã chia sẻ một tiền lệ. Nếu có blog ghi lại nhật ký phát triển thì bạn có thể cho mình biết không? Mình muốn đăng ký theo dõi để đọc :)
Xin chào, tiếc là tôi không đủ thời gian để viết tới mức thành nhật ký phát triển. Tôi chỉ triển khai theo dạng tự tổng hợp thành tài liệu kế hoạch cá nhân thôi... Nếu sau này có cơ hội, tôi sẽ lại đăng theo hình thức nhật ký phát triển!
Đã phát hành được đến mức này thì... thật sự quá tuyệt vời.
Xin cảm ơn. Hôm qua tôi đã ra mắt thành công trên Google Play. Tuy nhiên, với live service thì phát hành không phải là kết thúc... Nếu có dịp, tôi sẽ tiếp tục ghi lại các quá trình sau đó dưới dạng nhật ký.
Tôi là người quen xuất hiện trong bài gốc. Thật sự anh đã làm được điều này, quá tuyệt vời!
Tôi đã giới thiệu về Cursor và cho xem cách triển khai một bản Tetris đơn giản, vậy mà anh có thể nhanh chóng làm ra như thế này chỉ trong thời gian ngắn...(tôi cũng thấy được truyền cảm hứng.)
Tôi sẽ chờ đón tác phẩm tiếp theo!
Nhờ vậy tôi đã có một trải nghiệm rất tốt và học được rất nhiều. Cảm ơn!
Thật tuyệt vời. Có lẽ bạn rất kiên nhẫn.
Cảm ơn bạn. Mình cũng cảm thấy như đã học được rất nhiều về AI trong suốt dự án lần này!
Phiên bản iOS đang rất cấp bách..! Tuyệt lắm!
Cảm ơn bạn. Sau này mình cũng muốn thử sức với iOS!
Thật quá ấn tượng? Việc bạn thực sự làm được điều mà mình vẫn luôn chỉ nghĩ rằng “chắc AI cũng làm được thôi~ được thôi” thật sự quá tuyệt vời.
Lúc đầu tôi cũng nghĩ như vậy, nhưng cứ thử làm trước đã rồi làm một hồi thì đi đến được đây. Nhờ vậy mà tôi đã học được rất nhiều về cách tận dụng AI.
Nếu giao phần hình ảnh animation cho ChatGPT thì có thể tạo ảnh một cách nhất quán không? Tôi thử rồi nhưng không được, nên muốn hỏi là có prompt hoặc công cụ riêng nào không?
Lúc đầu tôi cũng đã trải qua rất nhiều lần thử và sai.
Có thể làm được nếu huấn luyện hình ảnh, thiết lập các chỉ dẫn lặp lại rồi tiến hành tạo ảnh. Tuy nhiên, ngay cả khi làm như vậy thì GPT vẫn có thể xử lý sai, nên đây là công việc đòi hỏi khá nhiều kiên nhẫn và thời gian.
Điều quan trọng nhất có lẽ là thiết kế prompt.
Thật tuyệt vời. Để làm hoạt họa 2D với đồ họa nhất quán thì phải tạo ra nhiều khung hình,
nên tôi đã nghĩ là chuyện này không thể làm được bằng GPT, vậy mà hóa ra vẫn làm được nhỉ. Bạn đã tạo từng khung hình một hết sao? Chắc GPT nổi giận mất thôi haha
Đúng vậy haha, nếu tạo hình ảnh quá nhiều trên GPT thì sẽ bị soft ban, và tôi đã bị nhiều lần rồi.... haha Khi bị soft ban thì yêu cầu tạo sẽ bị chặn trong vài tiếng, lâu thì hơn một ngày...
Vì vậy tôi chủ yếu tranh thủ thời gian đi làm và tan làm trên tàu điện ngầm để cho chạy tác vụ tạo ảnh, và thực hiện theo cách giãn khoảng thời gian ra.
Tôi thấy bên gallery phát triển game indie rồi, ở đây cũng thấy luôn haha
Rất vui được gặp bạn! Cảm ơn bạn đã quan tâm!
Xin chào. Tôi cũng là một người làm kế hoạch hoàn toàn không có kinh nghiệm phát triển. Hiện tôi đang phát triển một dịch vụ đố vui với tổ hợp Claude, Windsurf và Supabase, và câu chuyện thành công của tác giả thực sự đã tiếp thêm động lực cho tôi. Khi hoàn thành việc phát triển, có lẽ tôi cũng nên chia sẻ cảm nhận của mình với mọi người ở đây. Cảm ơn bạn.
Cố lên nhé. Tôi cũng gặp nhiều chỗ khó và nhiều phần không biết, nhưng cứ liên tục hỏi AI nên đã đi được đến đây. Chúc bạn cố lên cho đến khi hoàn thành dự án!
Nhưng người không phải lập trình viên có thể dùng mô hình ngôn ngữ dựa trên Cursor không? Cursor dựa trên VSCode, vậy có hơi khó dùng không?
Trên Cursor, tôi chủ yếu dùng mô hình AI agent của Claude.
Thậm chí còn thấy dễ dùng hơn cả VS Code nữa?
(VS Code lúc đầu cũng có GPT chỉ cách thiết lập, nhưng so với vậy thì nhờ AI agent trên Cursor vẫn tiện hơn)
Cảm ơn bạn đã chia sẻ một trải nghiệm hay. Cho mình hỏi là khi phát triển game, bạn có dùng engine dành cho game không? Hay bạn triển khai ở tầng View mặc định trên Android? Cá nhân mình tò mò nhất về phần này.
Ban đầu tôi định thử dùng một engine như Unity, nhưng với một người không phải lập trình viên thì hơi khó để thử thách, nên tôi đã phát triển theo dạng chạy trên web canvas. Vì phát triển dựa trên html5 + JavaScript nên không khác mấy so với một dự án phát triển web thông thường, và ở phần này tôi đã nhận được rất nhiều sự hỗ trợ từ Cursor và Claude.