Οδηγός

Πηγαίος κώδικας tower defense: κύματα, πύργοι και TypeScript

Το Barricade Z κρατά τα 30 κύματά του, τα 12 επίπεδα πύργων και την οικονομία του σε τρία αρχεία δεδομένων. Τι σημαίνει αυτό για τον αγοραστή.

Γραφικά του Barricade Z: ένας κινούμενος ζόμπι πηδά πάνω από ξύλινο οδόφραγμα στο σούρουπο, ενώ ένας κίτρινος πύργος πυροβολεί προς ένα πλήθος πίσω του.

Στον πηγαίο κώδικα tower defense, ο σχεδιασμός του παιχνιδιού ζει στα δεδομένα: πόσο δυνατός είναι κάθε πύργος, τι στέλνει κάθε κύμα, πόσο γρήγορα έρχονται τα νομίσματα. Αν αυτά τα δεδομένα είναι σκορπισμένα μέσα στον κώδικα απόδοσης, η ρύθμιση ενός μόνο κύματος σημαίνει να διαβάσετε όλο το έργο. Το Barricade Z, το πρότυπο merge tower defense μας, κρατά τους πύργους, τα κύματα και την ισορροπία σε τρία αρχεία TypeScript, και αυτός ο οδηγός δείχνει πού βρίσκονται και πώς τα αλλάζετε με ασφάλεια.

Υπάρχουν δύο επίπεδα αλλαγής σε αυτό το πακέτο. Ένας επεξεργαστής κειμένου αρκεί για τον τίτλο της σελίδας και το όνομα αποθήκευσης. Όλα τα υπόλοιπα, από τους πύργους μέχρι τα κύματα ζόμπι, περνούν από το πηγαίο TypeScript και ένα νέο build. Το να ξέρετε ποιο είναι ποιο πριν αγοράσετε σας γλιτώνει μια έκπληξη αργότερα.

Κάθε όνομα αρχείου παρακάτω προέρχεται από τον εικονογραφημένο οδηγό αγοραστή που συνοδεύει το παιχνίδι, ο οποίος υπάρχει στις ίδιες 14 γλώσσες με τη διεπαφή.

Τι περιέχει αυτός ο πηγαίος κώδικας tower defense

Το Barricade Z είναι ένα merge defense παιχνίδι. Οι παίκτες κατασκευάζουν πύργους σε μια εφεδρεία, σέρνουν δύο ίδια επίπεδα μαζί για να φτιάξουν το επόμενο, έως το επίπεδο 12, και μεταφέρουν τους πιο δυνατούς σε πέντε θέσεις οδοφράγματος. Μια εκστρατεία 30 κυμάτων διαρκεί σε τρία περιβάλλοντα, με bosses στα κύματα 10, 20 και 30. Οι χειροβομβίδες (Grenades) ξεκλειδώνουν στο κύμα 3 και το Overdrive στο κύμα 7, και ένα Workshop (εργαστήριο) πουλά αναβαθμίσεις. Οι καθημερινές προκλήσεις και το Endless mode (ατελείωτη λειτουργία) ανοίγουν καθώς προχωρά ο παίκτης.

  • game/: το έτοιμο για ανέβασμα build, με Phaser 3.90 στο lib/phaser.js και τις γραμματοσειρές Bungee και Barlow Condensed.
  • game/barricade-z.config.js: οι δύο ρυθμίσεις που μπορείτε να αλλάξετε χωρίς νέο build.
  • source/: το αναγνώσιμο έργο TypeScript, μόνο για developers.
  • documentation/index.html, και DOCUMENTATION.html στη ρίζα: ο οδηγός αγοραστή, που ανοίγει εκτός σύνδεσης.
  • THIRD-PARTY-LICENSES/: σημειώσεις για τη μηχανή και τις γραμματοσειρές.

Η διεπαφή υπάρχει σε 14 γλώσσες, με διατάξεις για κατακόρυφο και οριζόντιο προσανατολισμό για αφή και ποντίκι. Ο αναγγελέας (announcer) είναι ηχογραφημένος μόνο στα αγγλικά, και η ρύθμιση γλώσσας αλλάζει το κείμενο της διεπαφής, όχι τη φωνή.

Δείτε το Barricade Z: επίδειξη, οδηγό και τιμή

Τα τρία αρχεία που κρατούν τον σχεδιασμό του παιχνιδιού

Ανοίξτε πρώτα το source/src/data/. Αυτά τα τρία αρχεία είναι ο λόγος να αγοράσετε καθόλου την έκδοση πηγαίου κώδικα, γιατί εκεί σχεδιάζεται πραγματικά ένα tower defense.

  • towers.ts: τα 12 επίπεδα πύργων, τα χαρακτηριστικά όπλων τους και τα δεδομένα βολής.
  • waves.ts: τα 30 κύματα της εκστρατείας και πού εμφανίζονται οι bosses.
  • balance.ts: ρύθμιση οικονομίας, υγείας, ζημιάς και προόδου.

Γύρω τους, το source/src/i18n/ κρατά τα λεξικά για τις 14 γλώσσες, το source/src/ui/ κρατά τα μενού, το HUD, τη γραμμή εργαλείων, τα πάνελ και το σεμινάριο, και το source/src/audio/ διαχειρίζεται τη δρομολόγηση ήχου και τον αναγγελέα. Ο χτισμένος κώδικας στο game/assets/ έχει ονόματα αρχείων με hash· μην τα επεξεργάζεστε με το χέρι, ξαναχτίστε.

Τι μπορείτε να αλλάξετε με επεξεργαστή κειμένου

Ανοίξτε το game/barricade-z.config.js, αλλάξτε μια τιμή, αποθηκεύστε και ανανεώστε. Δεν χρειάζεται νέο build. Μόνο δύο ρυθμίσεις βρίσκονται εδώ.

  • title: ο τίτλος της καρτέλας του browser. Δεν αντικαθιστά το εικονογραφημένο λογότυπο.
  • storagePrefix: το namespace για τα αποθηκευμένα δεδομένα. Αν το αλλάξετε, ξεκινά χωριστή αποθήκευση και τα παλιά κλειδιά μένουν στη θέση τους. Χρησιμοποιήστε μόνο γράμματα, αριθμούς, τελείες, κάτω παύλες και παύλες, έως 64 χαρακτήρες.

Το storagePrefix είναι πιο χρήσιμο απ' όσο φαίνεται. Δύο αντίγραφα του παιχνιδιού στο ίδιο domain μοιράζονται αποθηκεύσεις, ακόμα κι αν βρίσκονται σε διαφορετικούς υποφακέλους. Αν ένα γραφείο φιλοξενεί ένα αντίγραφο ανά πελάτη στο ίδιο domain, δώστε σε κάθε αντίγραφο δικό του prefix, ώστε η πρόοδος των παικτών να μην αναμιγνύεται.

Ό,τι πέρα από αυτές τις δύο τιμές, συμπεριλαμβανομένων του λογότυπου, των εικονιδίων, των γραφικών, των κανόνων, των πύργων, των κυμάτων και των κειμένων, χρειάζεται την έκδοση πηγαίου κώδικα και ένα νέο build.

Ανακατασκευή μετά από πραγματική αλλαγή

Ο φάκελος game/ περιέχει ήδη το έτοιμο παιχνίδι, άρα η φιλοξενία δεν χρειάζεται Node.js. Το εγκαθιστάτε μόνο όταν αλλάζετε το ίδιο το παιχνίδι.

  1. Εγκαταστήστε Node.js 20.19 ή νεότερο.
  2. Μέσα στο source/, τρέξτε npm ci. Οι δοκιμασμένες εκδόσεις εργαλείων είναι καρφιτσωμένες στο package-lock.json.
  3. Κάντε την αλλαγή σας, μετά τρέξτε npm run typecheck και npm test.
  4. Τρέξτε npm run build. Το αποτέλεσμα πηγαίνει στο source/dist/.
  5. Ανεβάστε τα περιεχόμενα του source/dist/ για να αντικαταστήσετε το φιλοξενούμενο παιχνίδι, με τον ίδιο τρόπο όπως το game/.

Τρεις προαιρετικές εντολές βοηθούν στη διαδρομή: το npm run dev ξεκινά τοπικό διακομιστή ανάπτυξης, το npm run preview σερβίρει ένα build για έλεγχο, και το npm run balance τρέχει πλήρη προσομοίωση εκστρατείας από τη γραμμή εντολών, χρήσιμο μετά από αλλαγή στο balance.ts.

Τι αλλάζει πρώτα ένας αγοραστής

  1. Ο τίτλος της καρτέλας και το prefix αποθήκευσης στο αρχείο ρυθμίσεων, ώστε το αντίγραφο να είναι δικό σας από το πρώτο ανέβασμα.
  2. Λογότυπο και γραφικά στο πηγαίο κώδικα. Κρατήστε τις υπάρχουσες αναλογίες όταν αντικαθιστάτε οπτικά στοιχεία, όπως ζητά ο οδηγός.
  3. Κείμενα διεπαφής στα λεξικά i18n, σε κάθε γλώσσα που σκοπεύετε να κυκλοφορήσετε.
  4. Δυσκολία: σύνθεση κυμάτων στο waves.ts, μετά ροή νομισμάτων στο balance.ts.
  5. Οι πύργοι τελευταίοι, στο towers.ts, γιατί κάθε κύμα ρυθμίστηκε απέναντί τους.

Αν πουλάτε ή τρέχετε πολλά παιχνίδια merge, η ίδια ιδέα εφεδρείας και συγχώνευσης εμφανίζεται σε δύο άλλα πρότυπά μας, καθένα με το δικό του θέμα και τους κανόνες.

Deepforge: συγχωνεύστε pickaxes (τσεκούρια εξόρυξης) και στείλτε τα σε ορυχείο με φυσική

Plop: ένα παζλ φυσικής συγχώνευσης φρούτων με 11 βαθμίδες

Φιλοξενία, ενημερώσεις και αποθηκεύσεις

Ανεβάστε μόνο τα περιεχόμενα του game/ σε άδειο φάκελο, όπως το public_html/my-game/, και ανοίξτε τη διεύθυνση σε τρέχοντα Chrome, Edge, Firefox ή Safari. Δεν χρειάζεται npm, PHP, βάση δεδομένων ή λογαριασμός, και συνιστάται HTTPS. Το διπλό κλικ στο index.html στον υπολογιστή σας δεν λειτουργεί. Ο host σας πρέπει να σερβίρει .js ως JavaScript, .css ως CSS, γραμματοσειρές και .mp3 με τους κανονικούς τους τύπους, και τα ονόματα αρχείων διακρίνουν πεζά και κεφαλαία σε πολλούς hosts.

Οι αποθηκεύσεις ζουν στον browser του παίκτη κάτω από barricadez.save (εκστρατεία και σημείο ελέγχου) και barricadez.settings (γλώσσα, ήχος, σεμινάριο, ξεκλειδώματα, ρεκόρ), με το προεπιλεγμένο prefix. Δεν υπάρχει λογαριασμός ή συγχρονισμός στο cloud. Μια ανανέωση ξεκινά το τρέχον κύμα από το σημείο ελέγχου του.

  • Για ενημέρωση: κρατήστε αντίγραφο του game/ και του επεξεργασμένου αρχείου ρυθμίσεων, ανεβάστε το νέο game/ πάνω από το παλιό, κρατήστε αμετάβλητο το storagePrefix και ανανεώστε.
  • Αν εμφανίζεται ακόμα η παλιά έκδοση, καθαρίστε τις cached εικόνες και αρχεία ή πατήστε Ctrl+F5. Μην καθαρίζετε τα δεδομένα του ιστότοπου: αυτό διαγράφει την αποθήκευση.
  • Το παιχνίδι έχει manifest.webmanifest, αλλά ο οδηγός είναι σαφής ότι δεν είναι πακεταρισμένο ως εφαρμογή εγκατάστασης που λειτουργεί εκτός σύνδεσης.

Τα έργα εγγενών εφαρμογών δεν περιλαμβάνονται. Αν θέλετε το παιχνίδι σε κατάστημα εφαρμογών, το περιτύλιγμα και η καταχώριση στο κατάστημα είναι χωριστή δουλειά, που μπορούμε να προσφέρουμε με προσφορά.

Τι δεν περιλαμβάνεται, και η άδεια

Η έκδοση δεν έχει SDK διαφημίσεων, analytics, πάροχο πληρωμών, online multiplayer, απομακρυσμένη κατάταξη ή αποθηκεύσεις στο cloud, και δεν περιλαμβάνει εγγενή εφαρμογή, φιλοξενία ή προσαρμοσμένη ανάπτυξη. Η προσθήκη οποιουδήποτε από αυτά είναι εργασία ανάπτυξης με δικούς σας λογαριασμούς.

Το Barricade Z κοστίζει 39 $ στην κανονική τιμή, ή 33,15 $ κατά την προσφορά Black Friday που τρέχει έως τις 30 Νοεμβρίου 2026· δύο ή περισσότερα πρότυπα σε μία παραγγελία παίρνουν επίσης έκπτωση πακέτου 5% έως 20%. Η άδεια είναι διαρκής και μη αποκλειστική, για ένα τελικό προϊόν, δικό σας ή ενός πελάτη. Μπορείτε να αλλάξετε τον κώδικα, τα γραφικά και τον ήχο, να βάλετε το δικό σας brand και να προσφέρετε το παιχνίδι δωρεάν ή με διαφημίσεις. Η μεταπώληση του προτύπου ή του κώδικά του μόνα τους δεν επιτρέπεται. Περιλαμβάνονται έξι μήνες υποστήριξης, ή δώδεκα με την επέκταση· νέα χαρακτηριστικά και ενσωματώσεις πρέπει πρώτα να ζητηθούν με προσφορά.

Διαβάστε τους όρους της αγοράς

Συχνές ερωτήσεις

Ποια μηχανή χρησιμοποιεί ο πηγαίος κώδικας tower defense;

Phaser 3.90 με TypeScript. Η μηχανή περιλαμβάνεται στο game/lib/phaser.js με άδεια MIT, άρα τίποτα δεν φορτώνεται από CDN.

Μπορώ να αλλάξω κύματα και πύργους χωρίς Node.js;

Όχι. Το αρχείο ρυθμίσεων ορίζει μόνο τον τίτλο της καρτέλας και το prefix αποθήκευσης. Τα κύματα, οι πύργοι και η ισορροπία βρίσκονται στο πηγαίο κώδικα και χρειάζονται Node.js 20.19 ή νεότερο και νέο build.

Μεταφράζεται ο αναγγελέας;

Όχι. Οι 14 γλώσσες καλύπτουν τη διεπαφή. Οι ηχογραφήσεις του αναγγελέα είναι στα αγγλικά, και οι άλλες γλώσσες δεν έχουν αφήγηση.

Λειτουργεί σε τηλέφωνα;

Ναι. Οι διατάξεις κατακόρυφα και οριζόντια λειτουργούν με αφή και ποντίκι. Η απόδοση εξαρτάται από τη συσκευή, οπότε δοκιμάστε στα τηλέφωνα που χρησιμοποιεί το κοινό σας.

Μπορούν δύο αντίγραφα στο ίδιο domain να έχουν χωριστές αποθηκεύσεις;

Ναι, αν κάθε αντίγραφο έχει το δικό του storagePrefix στο barricade-z.config.js. Ένας διαφορετικός υποφάκελος από μόνος του δεν τα χωρίζει.

Ποιος πρέπει να το αγοράσει

Το Barricade Z ταιριάζει σε πύλη που θέλει ένα έτοιμο παιχνίδι άμυνας με ζόμπι, σε freelancer ή στούντιο που ετοιμάζει branded παιχνίδι για έναν πελάτη, και σε developer που θέλει να διαβάσει πώς ένα tower defense σε TypeScript και Phaser κρατά τον σχεδιασμό του σε δεδομένα. Αν θέλετε μόνο να το φιλοξενήσετε με δικό σας όνομα, το αρχείο ρυθμίσεων και το λογότυπο καλύπτουν το μεγαλύτερο μέρος της δουλειάς. Αν σχεδιάζετε νέα εκστρατεία, τα τρία αρχεία δεδομένων και το npm run balance είναι εκεί που θα περάσετε τον χρόνο σας.

Δοκιμάστε την επίδειξη του Barricade Z και αγοράστε την άδεια

Προσαρμοσμένα κύματα, reskin ή παραγγελία πρακτορείου; Ζητήστε προσφορά