Source code game bóng bàn: file, vật lý và chiến dịch của Sunset Rally
Mở từng file của một game bóng bàn 3D chạy trên trình duyệt: vật lý, tính điểm, chiến dịch và bối cảnh nằm ở đâu, nên sửa gì trước.

Nếu bạn cần source code game bóng bàn để tự host và chỉnh sửa, Sunset Rally là game ping pong 3D hoàn chỉnh cho trình duyệt, có chiến dịch chín trận, ba đối thủ máy, xưởng trang bị và toàn bộ dự án TypeScript, giá niêm yết $39. Thư mục game đã được build sẵn và không minify, nên bạn có thể tải lên trước rồi đọc code sau.
Game thể thao khó tùy biến hơn vẻ ngoài, vì cái hay nằm ở vật lý và cách điều khiển chứ không ở menu. Bài viết này chỉ ra từng phần đó nằm ở đâu trong dự án Sunset Rally, phần nào sửa an toàn và phiên bản này không có những gì.
Game ping pong này chơi thế nào
Mỗi trận đấu đến bảy điểm với một đối thủ máy. Người chơi di chuyển con trỏ hoặc kéo ngón tay để điều khiển vợt, cú đánh diễn ra tự động. Đẩy lên để tăng lực, di sang ngang để đặt bóng, kéo xuống để bỏ nhỏ (drop shot), còn bóng nảy cao là cơ hội để đập.
Có một chế độ hỗ trợ tùy chọn, bật tắt được ngay trong trận, giúp vợt bắt đúng độ cao của bóng. Điều này quan trọng với website công khai: người lần đầu chơi trên điện thoại vẫn đỡ được bóng.
Ba đối thủ máy có lối chơi riêng: Capi kiên nhẫn, Nori tinh nghịch và Miso chính xác, mỗi người có mức Easy, Normal hoặc Hard. Chế độ luyện tập cho bạn một bạn tập trả lại mọi quả bóng. Sau trận, phần phát lại chiếu lại điểm quyết định.
Chơi thử bản demo Sunset Rally
Gói source code game bóng bàn gồm những gì
- Thư mục game/ sẵn sàng để host, đã build và không minify.
- Mã nguồn TypeScript cho lập trình viên, kèm cấu hình Vite và tài nguyên game, trong source/.
- Hướng dẫn có hình minh họa bằng tiếng Anh và tiếng Bồ Đào Nha, dùng ảnh chụp màn hình thật.
- Font chữ và file âm thanh đi kèm game.
- Thông báo giấy phép bên thứ ba và nhật ký thay đổi.
Công nghệ gồm TypeScript, Three.js r184, Vite và WebGL2. Các file gồm HTML, CSS, JavaScript, TypeScript và JSON. Giao diện có 14 ngôn ngữ: tiếng Anh, Bồ Đào Nha, Tây Ban Nha, Pháp, Đức, Ý, Hà Lan, Ba Lan, Thổ Nhĩ Kỳ, Nga, Indonesia, Nhật, Hàn và tiếng Trung giản thể. Hướng dẫn chỉ có tiếng Anh và tiếng Bồ Đào Nha.
Nội dung xoay quanh các trận đấu cũng nằm trong gói: giải Sunset Circuit chín trận chia ba chặng, ba bối cảnh (khu vườn Sunset, vườn Sakura và quán cà phê Seaside) vào buổi sáng, buổi chiều, ban đêm hoặc trời mưa, và một xưởng nơi xu thắng trận được dùng để mua màu vợt, mặt cao su, hình dáng, cán, loại gỗ, băng viền, nhãn dán, kiểu bóng và kiểu bàn.
Từng phần nằm ở đâu trong code
Hướng dẫn gắn từng phần của game với một file. Đây là danh sách nên mở sẵn khi làm việc:
- Campaign.ts: chín trận chiến dịch và mục tiêu sao.
- Places.ts: diện mạo của từng bối cảnh.
- physics.ts: vật lý của bóng và vợt.
- match.ts: tính điểm và luật trận đấu.
- i18n.ts: văn bản giao diện tiếng Anh và tiếng Bồ Đào Nha; các ngôn ngữ khác nằm trong thư mục locales.
- styles.css: kiểu dáng của menu và các màn hình.
Mỗi trận chiến dịch có tối đa ba sao: thắng, đánh trúng ba góc và có một pha đôi công mười chạm. Tổng cộng 27 sao, và hoàn thành mỗi bối cảnh sẽ được một phần thưởng trong xưởng. Vì điều kiện nhận sao nằm gọn trong một file chiến dịch, bạn có thể làm chiến dịch dễ hơn hoặc khó hơn mà không phải lục tìm khắp code.
Nên sửa gì trước trong template ping pong
Chúng tôi gợi ý thứ tự sau, từ rủi ro thấp đến rủi ro cao.
- Văn bản giao diện và tên game, trong i18n.ts và thư mục locales.
- Màu sắc và màn hình, trong styles.css.
- Kiểu vợt, bóng và bàn trong xưởng, để dụng cụ mang thương hiệu của bạn.
- Hình ảnh bối cảnh, trong Places.ts.
- Các trận chiến dịch và mục tiêu sao, trong Campaign.ts.
- Vật lý và tính điểm, trong physics.ts và match.ts, chỉ khi bạn cần cảm giác chơi khác.
Hướng dẫn còn nêu ba quy tắc đáng làm theo. Giữ nguyên ID mở khóa, ID vật phẩm và khóa lưu dữ liệu, nếu không người chơi sẽ mất những gì đã kiếm được. Sao lưu trước khi bắt đầu. Mỗi lần chỉ sửa một tính năng, để biết thay đổi nào gây ra kết quả nào.
Được phép white label: tên và logo của bạn, hoặc của khách hàng, có thể thay cho của chúng tôi.
Build lại, đưa lên host và nhúng vào trang
Để chơi, bạn không cần build gì cả. Tải nội dung của game/ lên bất kỳ host HTTP(S) nào phục vụ file tĩnh, giữ nguyên đường dẫn tương đối và mở địa chỉ. Không cần PHP, cơ sở dữ liệu hay tài khoản.
Để sửa mã nguồn, bạn cần Node.js (khuyên dùng 24 LTS) và npm. Sửa TypeScript, build lại bằng Vite rồi thay thư mục game/ trên host bằng bản build mới.
Trình duyệt cần hỗ trợ JavaScript, ES modules và WebGL2. Game hỗ trợ cả cảm ứng lẫn chuột, và cách điều khiển tự thích ứng với kích thước màn hình. Hiệu năng phụ thuộc vào trình duyệt và thiết bị, vì vậy hãy thử trên những chiếc điện thoại người chơi của bạn dùng.
- Tải game/ lên một thư mục thử nghiệm trên host.
- Chơi một trận trên trình duyệt máy tính và một trận trên điện thoại.
- Sửa văn bản và kiểu dáng trong source/ rồi build lại.
- Thay toàn bộ thư mục thử nghiệm, sau đó chơi lại.
- Chuyển sang địa chỉ chính thức.
Phiên bản này không có những gì
Phiên bản này chơi với máy: chiến dịch, trận tự do và luyện tập. Gói không có chơi mạng nhiều người, phòng online, bảng xếp hạng online hay tài khoản đám mây, và cũng không có chế độ hai người chơi. Không có SDK hay tài khoản quảng cáo, không kèm ứng dụng native và dịch vụ hosting.
Tiến trình được lưu trong trình duyệt của người chơi: sao chiến dịch, kết quả, thống kê, phát lại và vật phẩm trong xưởng. Không dùng máy chủ hay tài khoản, nên sau khi ra mắt không có gì phải bảo trì.
Nếu bạn cần chế độ online, SDK của cổng game, phiên bản cho kho ứng dụng hoặc cài đặt lên máy chủ của bạn, đó là dịch vụ riêng, báo giá theo từng dự án.
Yêu cầu báo giá cho phần việc riêng
Giấy phép, hỗ trợ và giá trong một đoạn
Mỗi lần mua cho bạn một giấy phép vĩnh viễn, không độc quyền, dùng cho một sản phẩm cuối, của bạn hoặc của một khách hàng; người chơi có thể dùng sản phẩm đó miễn phí hoặc có quảng cáo để kiếm tiền. Bạn được sửa code, hình ảnh và âm thanh bên trong sản phẩm đó, nhưng không được bán lại hay chia sẻ riêng template, mã nguồn hoặc tài nguyên của nó. Hỗ trợ kéo dài 6 tháng, hoặc 12 tháng nếu mua gia hạn khi thanh toán, bao gồm cài đặt, sử dụng file và sửa lỗi tái hiện được; tùy biến, hosting và tích hợp SDK hoặc cổng game được báo giá riêng. Giá niêm yết là $39; đến hết ngày 30/11/2026, chương trình Black Friday giảm 15% cho mọi template, nên Sunset Rally còn $33.15, và từ ngày 1/12 giá trở về mức niêm yết.
Câu hỏi thường gặp
Tôi có cần build gì để dùng game ping pong này không?
Không. Thư mục game/ đã được build sẵn. Tải nội dung của nó lên một host web tĩnh và mở địa chỉ. Chỉ cần Node.js và npm khi bạn sửa TypeScript và build lại.
Có chế độ hai người chơi hoặc chơi online không?
Không. Phiên bản này chơi với máy trong chiến dịch, trận tự do và luyện tập.
Tôi có thể đổi chiến dịch và mục tiêu sao không?
Có. Các trận và điều kiện nhận sao nằm trong Campaign.ts. Sau đó build lại bằng Node.js.
Tôi có thể đổi cách quả bóng di chuyển không?
Có. Vật lý nằm trong physics.ts và luật tính điểm trong match.ts. Mỗi lần chỉ sửa một thứ và thử với từng đối thủ.
Game có chạy trên điện thoại không?
Có, với điều khiển cảm ứng tự thích ứng với màn hình. Cần WebGL2, và hiệu năng phụ thuộc vào thiết bị, nên hãy thử trên những điện thoại bạn nhắm tới.
Tiến trình được lưu ở đâu?
Trong trình duyệt của người chơi. Không dùng máy chủ hay tài khoản.
Các template thể thao khác để so sánh
Nếu bạn đang làm một góc game thể thao cho website, có hai template khác rất hợp đặt cạnh Sunset Rally. Velvet Pool là game bi-a 8 bóng có đối thủ máy và chế độ hai người trên cùng thiết bị, viết bằng JavaScript thuần với WebGL2, giá niêm yết $39. Puttide là game golf mini 3D với 30 lỗ, xây trên Three.js và Rapier, giá niêm yết $39. Cả hai đều có giao diện 14 ngôn ngữ.
Sunset Rally hợp với cổng game và website muốn có game thể thao trận ngắn, studio giao game gắn thương hiệu cho một khách hàng, và lập trình viên muốn một dự án TypeScript và Three.js dễ đọc để học hoặc mở rộng. Nếu bạn cần hai người chơi trên cùng một thiết bị, Velvet Pool có chế độ đó còn Sunset Rally thì không.
Xem Velvet Pool, game bi-a 8 bóng
Xem Puttide, game golf mini 3D
Mua từ hai template trở lên trong một đơn sẽ giảm giá mỗi giấy phép: giảm 5% khi mua hai, 10% khi mua ba, 15% khi mua bốn và 20% khi mua từ năm trở lên.
