Cách làm game Game Boy Advance thật bằng AI (và chơi trên máy thật)
Ngôn ngữ khác: English · Español · Deutsch · Français · Português · Italiano · Nederlands · Svenska · Norsk · Bahasa Indonesia · Türkçe · Polski · Русский · 日本語 · 한국어 · 繁體中文
Để làm game Game Boy Advance bằng AI, hãy mở Shiny Gen (trên trình duyệt tại shinygen.ai/play, hoặc ứng dụng trên iPhone, iPad và Android), bắt đầu một game mới, chọn Engine GBA và mô tả game bạn muốn. Agent AI sẽ viết game, biên dịch thành một cartridge GBA thật, tự chơi để tìm và sửa lỗi, rồi bạn tải về ROM .gba, việc này cần một lần mua bất kỳ, từ gói khởi đầu $2.99. ROM chạy được trên trình giả lập GBA và trên Game Boy Advance thật qua flash cart.
Hướng dẫn này đi qua từng bước, sau đó nói về những loại game làm tốt, các giới hạn thật sự và những câu hỏi hay gặp nhất.
Engine GBA là gì
Engine GBA là engine do chúng tôi tự viết, biên dịch các game mới từ yêu cầu của bạn. Nó không phải trình giả lập và không phải trình nạp ROM: các engine GBA, GBC, N64, GameCube và DS biên dịch game bạn làm trong Shiny Gen, và không chạy được ROM thương mại hay ROM của bên thứ ba.
Game của bạn được viết bằng một ngôn ngữ nhỏ giống C (file là main.sgba). Shiny Gen biên dịch nó thành mã máy ARM ngay trên thiết bị của bạn, đóng gói hình ảnh và âm thanh vào cartridge, rồi chạy chính cartridge đó. Không có bản xem trước riêng: game bạn chơi trong ứng dụng chính là cartridge.
Bạn cần gì
- Một trình duyệt hiện đại, hoặc ứng dụng Shiny Gen từ App Store hay Google Play.
- Một tài khoản Shiny Gen miễn phí. Tài khoản mới có sẵn ngọc miễn phí, là thứ AI dùng để làm việc.
- Để tải ROM: một lần mua bất kỳ, từ gói khởi đầu $2.99.
- Để chơi trên máy thật: một máy Game Boy Advance và một flash cart GBA. Trình giả lập thì không cần gì thêm.
Từng bước
1. Bắt đầu game mới và chọn engine GBA
Nhấn nút +. Trong Agent trong ứng dụng, chọn Mới. Màn hình tiếp theo yêu cầu bạn Chọn engine: chọn Engine GBA.
Một game GBA mới mở ra trong trình chỉnh sửa. Nó cố ý bắt đầu là một cartridge trống, với init() trống (chạy một lần) và frame() (chạy sáu mươi lần mỗi giây), để agent xây đúng thứ bạn mô tả thay vì sửa một mẫu bạn không yêu cầu.

2. Mô tả game
Mở thẻ Agent ở cuối trình chỉnh sửa và gõ điều bạn muốn trong phần Trò chuyện. Một tin nhắn đầu tiên hữu ích sẽ nói đây là loại game gì, người chơi làm gì, cách điều khiển (GBA có D-pad, A, B, L, R, Start và Select), mục tiêu và phong cách hình ảnh.
Ví dụ: "Làm một game phiêu lưu nhìn từ trên xuống trên GBA. Một chú cáo khám phá khu rừng, trò chuyện với dân làng trong hộp thoại và thu thập năm chiếc đèn lồng. D-pad để di chuyển, A để nói chuyện, Start để tạm dừng. Lưu tiến trình khi người chơi nghỉ bên đống lửa trại."
Nút bên cạnh ô soạn tin dùng để chọn mô hình, và agent tích hợp được tính phí theo mức dùng thực tế bằng ngọc.
3. Xem agent xây và kiểm thử game
Agent biết nó đang làm một cartridge. Nó đọc tài liệu ngôn ngữ cho GBA, viết code và build. Nếu build lỗi, trình biên dịch sẽ nói lỗi gì và ở đâu (dòng, cột và nên viết gì thay vào), và agent sửa lại. Sau đó nó tự chơi game:
- Chạy cartridge và đọc báo cáo build, bao gồm cartridge đã đầy bao nhiêu.
- Chụp màn hình 240 x 160 để kiểm tra thứ thật sự được vẽ ra.
- Bấm phím (A, B, L, R, Start, Select và D-pad) để chơi thứ nó vừa làm.
- Đọc lại các giá trị mà game báo ra, để biết chắc nhân vật đã di chuyển hay điểm đã tăng thay vì đoán.
- Sửa chỗ hỏng và làm lại.
Nó cũng có thể tạo hình ảnh và âm thanh: sprite, hình nền và nhạc, được đưa vào cartridge theo tên. Tạo tài nguyên sẽ tốn ngọc.
4. Thay đổi game bằng cách trò chuyện
Khi phiên bản đầu tiên chạy được, cứ tiếp tục trong cùng cuộc trò chuyện. Yêu cầu nhỏ và cụ thể là tốt nhất: "Thêm màn hình tiêu đề", "Biến khu vực thứ hai thành hang động với màu tối hơn", "Hộp thoại vẫn mở sau khi tôi đi khỏi; hãy đóng nó lại." Hãy nói điều bạn đã thấy thay vì đoán nguyên nhân; agent có thể tái hiện lỗi bằng cách chơi game.
Bạn cũng có thể mở phần Mã và tự sửa main.sgba. Sửa code bằng tay không tốn gì, và mỗi lần build sẽ thay cartridge mới vào mà không mất file lưu của bạn.
5. Chơi trong ứng dụng
Game chạy ngay trong trình chỉnh sửa và từ thẻ game của bạn. Trên điện thoại hoặc máy tính bảng, nút điều khiển hiện trên màn hình: D-pad bên trái, A và B bên phải, L, R, Start và Select xung quanh. Trên máy tính, bạn chơi bằng bàn phím: phím mũi tên, Z cho A, X cho B, A và S cho L và R, Enter cho Start và Shift cho Select. Tay cầm chơi game cũng dùng được, và bạn có thể đổi nút trong phần cài đặt tay cầm.
Game lưu vào file lưu pin của riêng nó, giống như một cartridge, nên bạn có thể thoát ra rồi quay lại đúng chỗ cũ.

6. Tải ROM về
Nhấn Chia sẻ, rồi Export .gba ROM. Việc xuất ROM cần một lần mua bất kỳ, từ gói khởi đầu $2.99; nút này hiện cho mọi chủ sở hữu, và nếu chưa mua thì nó sẽ đưa bạn đến cửa hàng. Nút này có cho các game bạn sở hữu.
Trước khi đưa file cho bạn, Shiny Gen build lại cartridge nếu có gì thay đổi, rồi khởi động nó trong một trình giả lập mới và kiểm tra rằng nó chạy lên. Bạn nhận được file .gba mang tên game của bạn. ROM mở đầu bằng một màn hình chào ngắn của Shiny Gen, và không chứa file lưu của bạn, nên bản bạn đưa cho người khác sẽ bắt đầu từ đầu.
File được lưu ở đâu tùy vào thiết bị: tải về bình thường trên trình duyệt, và bảng Lưu vào Tệp trong ứng dụng iPhone và iPad. Ứng dụng Android chưa lưu được file; hãy mở game tại shinygen.ai trên trình duyệt của điện thoại hoặc máy tính để tải về, việc này cần cùng một lần mua đó.

7. Chơi trên máy thật
Flash cart là một cartridge GBA có khe thẻ nhớ thay vì một game cố định. Bạn chép file ROM vào thẻ, và khi bật máy, cart sẽ hiện menu các game đó. Chúng tôi đã chơi các ROM làm theo cách này trên Game Boy Advance thật và Nintendo DS Lite, kể cả file lưu.
Các bước chung (hướng dẫn của cart bạn có các bước chính xác):
- Chép file
.gbavào thẻ SD hoặc microSD của cart. Một số cart cần có file hệ thống riêng trên thẻ trước. - Cắm thẻ vào cart và cắm cart vào Game Boy Advance.
- Bật máy và chọn game của bạn từ menu của cart.
Một số cart hỏi kiểu lưu cho từng game. ROM của chúng tôi dùng kiểu lưu flash 128 KB (1 Mbit) và ghi rõ điều đó bên trong ROM, đây là cách flash cart và trình giả lập thường tự nhận ra. Nếu cart hỏi, hãy chọn 128 KB hoặc 1M flash. Khi đó việc lưu trên cart hoạt động như trên cartridge gốc.
Để chơi mà không cần máy thật, trình giả lập GBA nào cũng mở được file: ví dụ mGBA trên máy tính, hoặc Delta trên iPhone.
Những loại game làm tốt
Các game GBA trong danh mục của chúng tôi cho thấy phạm vi có thể làm. Bạn có thể chơi miễn phí tất cả trên trình duyệt, và remix bất kỳ game nào thành bản của riêng bạn để chỉnh sửa cùng agent:
- RPG thu thập quái vật: Shiny Monsters Advance, có thị trấn, hộp thoại và các trận đấu quái vật. Nó trao đổi và đấu quái vật với các game Shiny Monsters khác qua internet.
- Đua xe với mặt đường xoay "Mode 7": Shiny Kart Advance, tám tay đua trên ba đường đua.
- Arcade: Shiny Pinball, một bàn pinball không gian.
- Hành động và sinh tồn: Shiny Swarm, vũ khí tự bắn và bạn cầm cự trước từng đợt kẻ địch.
- Game nhỏ, thư thái: Spark Garden và Ember Courier.

Nhìn chung, game hợp với cỗ máy sẽ làm tốt nhất: phiêu lưu và RPG nhìn từ trên xuống, game đi cảnh, giải đố, bắn súng, đua xe trên mặt đường xoay, và bất cứ thứ gì dựng từ tile và sprite. Engine hỗ trợ lớp nền cuộn, sprite xoay và phóng to thu nhỏ, hiệu ứng trong suốt, hộp thoại, nhạc và hiệu ứng âm thanh.
Giới hạn
Engine GBA bị giới hạn như máy thật, và vài thứ chưa được làm:
- Giới hạn của chính cỗ máy. Màn hình 240 x 160; tối đa 128 sprite cùng lúc, mỗi sprite tối đa 64 x 64 pixel; màu theo bảng 16 màu; 256 KB bộ nhớ làm việc cho dữ liệu game. Không có số thực dấu phẩy động, nên vị trí dùng số dấu phẩy cố định. Mỗi lần build đều báo từng ngân sách đã đầy bao nhiêu, nên bạn thấy giới hạn sắp tới trước khi chạm vào nó.
- Không có 3D. GBA vẽ tile và sprite 2D. Mặt đường "Mode 7" cho game đua xe cảm giác 3D, nhưng đó là một hình 2D được xoay và phóng to thu nhỏ.
- Chỉ game mới. Nó không mở hay chạy được ROM do người khác làm, và bạn không thể nhập ROM vào để chỉnh sửa.
- Chưa có cáp link trên máy thật. Trao đổi và đấu giữa các game Shiny Monsters hoạt động qua internet bên trong Shiny Gen. Chơi qua cáp link thật giữa hai máy chưa được chứng minh, nên chúng tôi không khẳng định điều đó.
- File lưu ở lại với bạn. ROM không mang theo tiến trình của bạn, và Shiny Gen giữ file lưu trong ứng dụng trong tài khoản của bạn.
- Tải về cần một lần mua, và ứng dụng Android chưa lưu được file. Xuất ROM cần một lần mua bất kỳ, từ $2.99; trên Android, hãy tải về từ trình duyệt.
Các engine retro khác
GBA là một trong năm engine retro chúng tôi viết, và tất cả hoạt động giống nhau: chọn engine, mô tả game, và agent xây rồi kiểm thử nó. GBC tạo ROM Game Boy Color, N64 tạo ROM N64, GameCube tạo file .dol và DS tạo file .nds hai màn hình, và xuất bất kỳ loại nào cũng cần cùng một lần mua đó, từ $2.99. Nếu bạn muốn game 2D hoặc 3D hiện đại, engine Godot là lựa chọn thứ sáu trên cùng màn hình đó. Xem Shiny Gen so với các công cụ làm game AI khác.
Câu hỏi thường gặp
AI có làm được game Game Boy Advance không?
Có. Trong Shiny Gen, bạn chọn engine GBA và mô tả game; agent AI viết code, biên dịch một cartridge GBA thật, chơi bằng phím để tìm lỗi và sửa chúng. Bạn có thể tải ROM .gba sau một lần mua bất kỳ, từ $2.99.
Đó có phải ROM GBA thật không?
Có. Đó là một file ảnh cartridge .gba chuẩn, biên dịch thành mã máy ARM, với header cartridge hợp lệ. Shiny Gen khởi động mọi ROM trong một trình giả lập mới trước khi đưa cho bạn, và chúng tôi đã chơi các ROM này, kể cả file lưu, trên Game Boy Advance thật và DS Lite qua flash cart.
Nó có chạy được Pokemon hay các ROM thương mại khác không?
Không. Engine GBA không phải trình giả lập và không phải trình nạp ROM. Nó biên dịch game mới bạn làm trong Shiny Gen và không chạy được ROM thương mại hay ROM của bên thứ ba.
Mình có cần biết lập trình không?
Không. Bạn mô tả game và agent viết rồi kiểm thử code. Nếu muốn, bạn có thể đọc và sửa code trong phần Mã; sửa bằng tay không tốn gì.
Mình có bán được game GBA mình làm không?
Có. Bạn sở hữu thứ bạn làm ra, và Shiny Gen không chia doanh thu (Điều khoản dịch vụ, mục 4). Bạn có thể bán chính file ROM; xuất nó cần một lần mua bất kỳ, từ $2.99.
ROM chạy được trên thiết bị nào?
Trình giả lập GBA, như mGBA trên máy tính hoặc Delta trên iPhone, và máy thật qua flash cart. Chúng tôi đã thử trên Game Boy Advance và Nintendo DS Lite, kể cả file lưu, và nó sẽ chạy trên mọi máy console hay máy cầm tay chơi được cartridge GBA, như Game Boy Advance SP.
Mình nên chọn kiểu lưu nào trên flash cart?
Flash 128 KB (1 Mbit). ROM có khai báo điều này, nên cart và trình giả lập thường tự nhận mà không cần hỏi.
Có miễn phí không?
Làm, chơi và chia sẻ game là miễn phí. Tạo nội dung bằng AI và agent tích hợp dùng ngọc, và tài khoản mới được tặng ngọc miễn phí. Tải ROM cần một lần mua bất kỳ, từ gói khởi đầu $2.99. Danh sách đầy đủ có trên trang bảng giá.