Hướng dẫn

Source code game tower defense: đợt quái, tháp và cân bằng TypeScript

Barricade Z giữ 30 đợt quái, 12 cấp tháp và hệ thống kinh tế trong ba file dữ liệu. Đây là ý nghĩa của điều đó với người mua.

Ảnh minh họa Barricade Z: một zombie hoạt hình nhảy qua chướng ngại gỗ lúc chạng vạng, trong khi tháp súng màu vàng bắn vào đám zombie phía sau.

Trong source code game tower defense, thiết kế game nằm ở dữ liệu: mỗi tháp mạnh đến đâu, mỗi đợt gửi ra những gì, xu đến nhanh chậm thế nào. Nếu dữ liệu đó rải rác trong code vẽ hình, chỉ cân bằng lại một đợt cũng phải đọc cả dự án. Barricade Z, mẫu game tower defense ghép tháp của chúng tôi, giữ tháp, đợt quái và cân bằng trong ba file TypeScript; bài viết này chỉ ra chúng nằm ở đâu và cách sửa an toàn.

Gói này có hai mức chỉnh sửa. Một trình soạn thảo văn bản là đủ cho tiêu đề trang và tên lưu dữ liệu. Mọi thứ khác, từ tháp đến các đợt zombie, đều phải đi qua mã nguồn TypeScript và build lại. Biết rõ cái nào thuộc mức nào trước khi mua sẽ tránh bất ngờ về sau.

Mọi tên file dưới đây đều lấy từ tài liệu minh họa dành cho người mua đi kèm game, có sẵn bằng đúng 14 ngôn ngữ như giao diện.

Source code game tower defense này có gì

Barricade Z là game phòng thủ ghép tháp. Người chơi chế tạo tháp súng trong khu dự trữ, kéo hai tháp cùng cấp vào nhau để tạo cấp tiếp theo, tối đa cấp 12, rồi đưa những tháp mạnh nhất vào năm vị trí chướng ngại. Chiến dịch 30 đợt trải qua ba bối cảnh, có boss ở đợt 10, 20 và 30. Lựu đạn mở ở đợt 3, Overdrive ở đợt 7, và Workshop bán các nâng cấp. Thử thách hằng ngày và chế độ Endless mở dần khi người chơi tiến bộ.

  • game/: bản build chơi được, sẵn sàng tải lên, có Phaser 3.90 trong lib/phaser.js cùng phông Bungee và Barlow Condensed.
  • game/barricade-z.config.js: hai thiết lập có thể đổi mà không cần build lại.
  • source/: dự án TypeScript dễ đọc, chỉ dành cho lập trình viên.
  • documentation/index.html và DOCUMENTATION.html ở thư mục gốc: tài liệu cho người mua, mở được khi không có mạng.
  • THIRD-PARTY-LICENSES/: thông báo giấy phép của engine và phông chữ.

Giao diện có 14 ngôn ngữ, với bố cục dọc và ngang cho cảm ứng và chuột. Giọng bình luận viên chỉ được thu bằng tiếng Anh; thiết lập ngôn ngữ đổi chữ trên giao diện, không đổi giọng nói.

Xem Barricade Z: demo, tài liệu và giá

Ba file chứa thiết kế game

Hãy mở source/src/data/ trước tiên. Ba file này chính là lý do để mua bản có mã nguồn, vì đây là nơi một game tower defense thực sự được thiết kế.

  • towers.ts: 12 cấp tháp, thuộc tính vũ khí và dữ liệu nòng súng.
  • waves.ts: 30 đợt của chiến dịch và vị trí xuất hiện boss.
  • balance.ts: tinh chỉnh kinh tế, máu, sát thương và tiến trình.

Xung quanh chúng, source/src/i18n/ chứa từ điển của 14 ngôn ngữ, source/src/ui/ chứa menu, HUD, thanh công cụ, các bảng và phần hướng dẫn, còn source/src/audio/ lo việc định tuyến âm thanh và bình luận viên. Code đã build trong game/assets/ có tên file dạng hash; đừng sửa tay các file đó, hãy build lại.

Những gì sửa được bằng trình soạn thảo văn bản

Mở game/barricade-z.config.js, đổi một giá trị, lưu lại và tải lại trang. Không cần build lại. Ở đây chỉ có hai thiết lập.

  • title: tiêu đề tab trình duyệt. Nó không thay thế logo minh họa.
  • storagePrefix: không gian tên cho dữ liệu lưu. Đổi giá trị này sẽ tạo bản lưu riêng và để nguyên các khóa cũ. Chỉ dùng chữ cái, số, dấu chấm, gạch dưới và gạch ngang, tối đa 64 ký tự.

storagePrefix hữu ích hơn vẻ ngoài. Hai bản game trên cùng tên miền sẽ dùng chung dữ liệu lưu dù nằm ở hai thư mục con khác nhau. Nếu agency host mỗi khách hàng một bản trên cùng tên miền, hãy cho mỗi bản một tiền tố riêng để tiến trình người chơi không bị lẫn.

Mọi thứ ngoài hai giá trị đó, bao gồm logo, biểu tượng, hình ảnh, luật chơi, tháp, đợt quái và văn bản, đều cần bản mã nguồn và build lại.

Build lại sau một thay đổi thực sự

Thư mục game/ đã chứa sẵn bản build chơi được, nên host game không cần Node.js. Bạn chỉ cài nó khi muốn sửa chính game.

  1. Cài Node.js 20.19 trở lên.
  2. Trong source/, chạy npm ci. Phiên bản công cụ đã kiểm thử được cố định trong package-lock.json.
  3. Thực hiện thay đổi, rồi chạy npm run typecheck và npm test.
  4. Chạy npm run build. Kết quả nằm trong source/dist/.
  5. Tải nội dung source/dist/ lên thay thế game đang host, giống như với game/.

Ba lệnh tùy chọn giúp ích trong quá trình làm: npm run dev khởi động server phát triển cục bộ, npm run preview chạy một bản build để kiểm tra, còn npm run balance chạy mô phỏng toàn bộ chiến dịch từ dòng lệnh, rất tiện sau khi bạn sửa balance.ts.

Người mua thường sửa gì trước

  1. Tiêu đề tab và tiền tố lưu trong file config, để bản game là của bạn ngay từ lần tải lên đầu tiên.
  2. Logo và hình ảnh trong mã nguồn. Giữ nguyên tỷ lệ hiện có khi thay hình, như tài liệu yêu cầu.
  3. Văn bản giao diện trong các từ điển i18n, ở mọi ngôn ngữ bạn định phát hành.
  4. Độ khó: thành phần đợt quái trong waves.ts, sau đó là dòng xu trong balance.ts.
  5. Tháp để cuối, trong towers.ts, vì mọi đợt quái đều được cân chỉnh theo chúng.

Nếu bạn bán hoặc vận hành nhiều game ghép, ý tưởng khu dự trữ và ghép vật phẩm này còn xuất hiện trong hai mẫu khác của chúng tôi, mỗi mẫu có chủ đề và luật chơi riêng.

Deepforge: ghép cuốc chim và thả chúng vào khu mỏ có vật lý

Plop: game giải đố ghép trái cây vật lý với 11 cấp

Host, cập nhật và dữ liệu lưu

Chỉ tải nội dung của game/ lên một thư mục trống, ví dụ public_html/my-game/, rồi mở địa chỉ trên Chrome, Edge, Firefox hoặc Safari bản mới. Không cần npm, PHP, cơ sở dữ liệu hay tài khoản, và nên dùng HTTPS. Nhấp đúp index.html trên máy tính sẽ không chạy. Host của bạn phải trả .js dưới dạng JavaScript, .css dưới dạng CSS, phông chữ và .mp3 với kiểu thông thường, và trên nhiều host tên file phân biệt chữ hoa chữ thường.

Với tiền tố mặc định, dữ liệu lưu nằm trong trình duyệt người chơi dưới barricadez.save (chiến dịch và điểm kiểm tra) và barricadez.settings (ngôn ngữ, âm thanh, hướng dẫn, mở khóa, kỷ lục). Không có tài khoản và không đồng bộ đám mây. Tải lại trang sẽ chơi lại đợt hiện tại từ điểm kiểm tra.

  • Để cập nhật: sao lưu game/ và file config đã sửa, tải game/ mới đè lên bản cũ, giữ nguyên storagePrefix rồi tải lại trang.
  • Nếu vẫn thấy bản cũ, hãy xóa ảnh và file trong bộ nhớ đệm hoặc nhấn Ctrl+F5. Đừng xóa dữ liệu trang web: việc đó xóa luôn bản lưu.
  • Game có kèm manifest.webmanifest, nhưng tài liệu nói rõ nó không được đóng gói thành ứng dụng ngoại tuyến cài đặt được.

Không kèm dự án ứng dụng native. Nếu bạn muốn đưa game lên app store, lớp đóng gói và trang trên store là công việc riêng, chúng tôi có thể báo giá.

Những gì không có trong gói, và giấy phép

Bản này không có SDK quảng cáo, phân tích, cổng thanh toán, chơi mạng nhiều người, bảng xếp hạng từ xa hay lưu đám mây, cũng không có ứng dụng native, hosting hay phát triển theo yêu cầu. Thêm bất kỳ thứ nào trong số đó là công việc lập trình với tài khoản của chính bạn.

Barricade Z có giá niêm yết 39 USD, hoặc 33,15 USD trong đợt khuyến mãi Black Friday kéo dài đến hết ngày 30/11/2026; mua từ hai mẫu trở lên trong một đơn còn được giảm giá combo từ 5% đến 20%. Giấy phép vĩnh viễn và không độc quyền, cho một sản phẩm cuối cùng của bạn hoặc của một khách hàng. Bạn được sửa code, hình ảnh và âm thanh, thay thương hiệu của chúng tôi bằng của bạn, và phát hành game miễn phí hoặc có quảng cáo. Không được bán lại riêng mẫu game hay code của nó. Đi kèm sáu tháng hỗ trợ, mười hai tháng khi gia hạn; tính năng mới và tích hợp được báo giá trước.

Đọc điều khoản của marketplace

Câu hỏi thường gặp

Source code tower defense dùng engine nào?

Phaser 3.90 với TypeScript. Engine được đóng gói sẵn trong game/lib/phaser.js theo giấy phép MIT, nên không có gì tải từ CDN.

Tôi có thể sửa đợt quái và tháp mà không cần Node.js không?

Không. File config chỉ đặt tiêu đề tab và tiền tố lưu. Đợt quái, tháp và cân bằng nằm trong mã nguồn, cần Node.js 20.19 trở lên và build lại.

Giọng bình luận viên có được dịch không?

Không. 14 ngôn ngữ áp dụng cho giao diện. Phần thu âm bình luận viên bằng tiếng Anh, các ngôn ngữ khác không có lồng tiếng.

Game có chạy trên điện thoại không?

Có. Bố cục dọc và ngang hoạt động với cảm ứng và chuột. Hiệu năng tùy thiết bị, nên hãy thử trên những điện thoại mà người chơi của bạn dùng.

Hai bản trên cùng tên miền có giữ dữ liệu lưu riêng được không?

Được, nếu mỗi bản có storagePrefix riêng trong barricade-z.config.js. Chỉ đặt ở thư mục con khác nhau thì chưa tách được.

Ai nên mua

Barricade Z phù hợp với cổng game muốn có sẵn một game phòng thủ zombie hoàn chỉnh, freelancer hoặc studio làm game mang thương hiệu cho một khách hàng, và lập trình viên muốn đọc cách một game tower defense viết bằng TypeScript và Phaser giữ thiết kế trong dữ liệu. Nếu bạn chỉ cần host game dưới tên mình, file config và logo đã lo phần lớn công việc. Nếu bạn định làm chiến dịch mới, phần lớn thời gian sẽ dành cho ba file dữ liệu và npm run balance.

Chơi thử demo Barricade Z và mua giấy phép

Cần đợt quái riêng, đổi giao diện hay đơn hàng cho agency? Yêu cầu báo giá