Kildekode til tower defense: bølger, tårne og balance i TypeScript
Barricade Z gemmer sine 30 bølger, 12 tårnniveauer og økonomi i tre datafiler. Her er, hvad det betyder for en køber.

I kildekoden til tower defense ligger spildesignet i data: hvor stærkt hvert tårn er, hvad hver bølge sender, og hvor hurtigt mønterne kommer. Er de data spredt rundt i render-koden, betyder det at genbalancere én bølge, at man skal læse hele projektet. Barricade Z, vores merge-tower defense-skabelon, holder tårne, bølger og balance i tre TypeScript-filer, og denne guide viser, hvor de ligger, og hvordan du ændrer dem sikkert.
Der er to niveauer af ændringer i denne pakke. En teksteditor er nok til sidetitlen og gemmenavnet. Alt andet, fra tårnene til zombiebølgerne, går gennem TypeScript-kilden og et nyt build. At vide, hvad der er hvad, før du køber, sparer en overraskelse senere.
Alle filnavne nedenfor stammer fra den illustrerede købervejledning, der følger med spillet, og som findes på de samme 14 sprog som grænsefladen.
Hvad denne kildekode til tower defense indeholder
Barricade Z er et merge-forsvarsspil. Spillerne fremstiller tårne i et reservat, trækker to ens niveauer sammen for at lave det næste, op til niveau 12, og flytter de stærkeste ind på fem barrikadepositioner. En kampagne på 30 bølger går gennem tre omgivelser, med bosser i bølge 10, 20 og 30. Granater låses op i bølge 3 og Overdrive i bølge 7, og et Workshop sælger opgraderinger. Daglige udfordringer og Endless mode åbner, efterhånden som spilleren skrider frem.
- game/: det spilbare build, klart til upload, med Phaser 3.90 i lib/phaser.js og skrifttyperne Bungee og Barlow Condensed.
- game/barricade-z.config.js: de to indstillinger, du kan ændre uden et nyt build.
- source/: det læsbare TypeScript-projekt, kun for udviklere.
- documentation/index.html, plus DOCUMENTATION.html i roden: købervejledningen, som kan åbnes offline.
- THIRD-PARTY-LICENSES/: noter om motoren og skrifttyperne.
Grænsefladen findes på 14 sprog, med liggende og stående layouts til touch og mus. Oplæseren er kun indspillet på engelsk, og sprogindstillingen ændrer grænsefladeteksten, ikke stemmen.
Se Barricade Z: demo, guide og pris
De tre filer, der holder spildesignet
Åbn source/src/data/ først. Disse tre filer er grunden til at købe kildeudgaven overhovedet, for det er her, et tower defense-spil faktisk designes.
- towers.ts: de 12 tårnniveauer, deres våbenegenskaber og mundingsdata.
- waves.ts: de 30 kampagnebølger, og hvor bosserne dukker op.
- balance.ts: justering af økonomi, liv, skade og progression.
Omkring dem indeholder source/src/i18n/ ordbøgerne for de 14 sprog, source/src/ui/ indeholder menuerne, HUD'et, værktøjslinjen, panelerne og selvstudiet, og source/src/audio/ håndterer lydrouting og oplæseren. Den byggede kode i game/assets/ har hashede filnavne; redigér dem ikke i hånden, byg i stedet igen.
Hvad du kan ændre med en teksteditor
Åbn game/barricade-z.config.js, ændr en værdi, gem og genindlæs. Intet build er nødvendigt. Kun to indstillinger ligger her.
- title: fanetitlen i browseren. Den erstatter ikke det illustrerede logo.
- storagePrefix: navnerummet for gemte data. Ændrer du det, starter et separat gem, og de gamle nøgler bliver liggende. Brug kun bogstaver, tal, punktummer, understregninger og bindestreger, op til 64 tegn.
storagePrefix er nyttigere, end det ser ud. To kopier af spillet på samme domæne deler gemte data, selv hvis de ligger i forskellige undermapper. Hvis et bureau hoster én kopi pr. kunde på ét domæne, så giv hver kopi sit eget præfiks, så spillernes fremskridt ikke blandes.
Alt udover de to værdier, herunder logoet, ikoner, grafik, regler, tårne, bølger og tekst, kræver kildeudgaven og et nyt build.
Bygge igen efter en reel ændring
Mappen game/ indeholder allerede det spilbare build, så hosting kræver ingen Node.js. Du installerer det kun for at ændre selve spillet.
- Installér Node.js 20.19 eller nyere.
- Kør npm ci inde i source/. De testede værktøjsversioner er låst i package-lock.json.
- Lav din ændring, og kør derefter npm run typecheck og npm test.
- Kør npm run build. Outputtet går til source/dist/.
- Upload indholdet af source/dist/ for at erstatte det hostede spil, på samme måde som game/.
Tre valgfri kommandoer hjælper undervejs: npm run dev starter en lokal udviklingsserver, npm run preview serverer et build til kontrol, og npm run balance kører en fuld kampagnesimulering fra kommandolinjen, hvilket er praktisk, efter du har rørt ved balance.ts.
Det ændrer en køber typisk først
- Fanetitlen og gemmepræfikset i konfigurationsfilen, så kopien er din fra den første upload.
- Logo og grafik i kildekoden. Behold de eksisterende proportioner, når du udskifter visuelle elementer, som guiden beder om.
- Grænsefladeteksten i i18n-ordbøgerne, på hvert sprog du planlægger at udgive.
- Sværhedsgrad: bølgesammensætning i waves.ts, derefter mønterstrømmen i balance.ts.
- Tårnene til sidst, i towers.ts, fordi hver bølge er balanceret mod dem.
Sælger eller driver du flere merge-spil, optræder den samme idé med reservat og sammenlægning i to andre af vores skabeloner, hver med sit eget tema og sine egne regler.
Deepforge: sammenlæg hakker og send dem ind i en fysikdrevet mine
Plop: et frugt-merge-fysikpuslespil med 11 trin
Hosting, opdateringer og gemte data
Upload kun indholdet af game/ til en tom mappe, for eksempel public_html/my-game/, og åbn adressen i en aktuel Chrome, Edge, Firefox eller Safari. Der kræves ingen npm, PHP, database eller konto, og HTTPS anbefales. Et dobbeltklik på index.html på din computer virker ikke. Din host skal servere .js som JavaScript, .css som CSS og skrifttyper og .mp3 med deres normale typer, og filnavne er versalfølsomme på mange hosts.
Gemte data ligger i spillerens browser under barricadez.save (kampagne og checkpoint) og barricadez.settings (sprog, lyd, selvstudie, oplåsninger, rekorder), med standardpræfikset. Der er ingen konto og ingen cloud-synkronisering. En genindlæsning starter den aktuelle bølge fra dens checkpoint.
- Sådan opdaterer du: tag en sikkerhedskopi af game/ og din redigerede konfigurationsfil, upload den nye game/ over den gamle, behold storagePrefix uændret, og genindlæs.
- Vises den gamle version stadig, så ryd cachede billeder og filer, eller tryk på Ctrl+F5. Ryd ikke webstedsdata: det sletter gemmet.
- Spillet leveres med en manifest.webmanifest, men guiden er tydelig på, at det ikke er pakket som en app, der kan installeres til offline brug.
Native app-projekter er ikke inkluderet. Vil du have spillet i en appbutik, er indpakningen og butiksopslaget særskilt arbejde, som vi kan give tilbud på.
Hvad der ikke er inkluderet, og licensen
Udgaven har ingen reklame-SDK, analyse, betalingsudbyder, online-multiplayer, fjernranglister eller cloud-gemning, og ingen native app, hosting eller skræddersyet udvikling. At tilføje noget af det er udviklingsarbejde med dine egne konti.
Barricade Z koster 39 USD på listepris, eller 33,15 USD under Black Friday-kampagnen, der løber indtil 30. november 2026; to eller flere skabeloner i samme bestilling giver også en bundle-rabat på 5 % til 20 %. Licensen er evigvarende og ikke-eksklusiv, til ét slutprodukt, dit eller én kundes. Du må ændre koden, grafikken og lyden, erstatte vores brand med dit og tilbyde spillet gratis eller med reklamer. At videresælge skabelonen eller dens kode alene er ikke tilladt. Seks måneders support følger med, eller tolv med tillægget; nye funktioner og integrationer tilbydes først efter tilbud.
Ofte stillede spørgsmål
Hvilken motor bruger kildekoden til tower defense?
Phaser 3.90 med TypeScript. Motoren er pakket i game/lib/phaser.js under MIT-licensen, så intet hentes fra et CDN.
Kan jeg ændre bølger og tårne uden Node.js?
Nej. Konfigurationsfilen sætter kun fanetitlen og gemmepræfikset. Bølger, tårne og balance ligger i kilden og kræver Node.js 20.19 eller nyere og et nyt build.
Er oplæseren oversat?
Nej. De 14 sprog dækker grænsefladen. Oplæserens indspilninger er på engelsk, og de andre sprog har ingen fortælling.
Virker det på telefoner?
Ja. Liggende og stående layout virker med touch og mus. Ydelsen afhænger af enheden, så test på de telefoner, dit publikum bruger.
Kan to kopier på ét domæne have adskilte gemte data?
Ja, hvis hver kopi har sit eget storagePrefix i barricade-z.config.js. En anden undermappe alene adskiller dem ikke.
Hvem bør købe den
Barricade Z passer til et portal, der vil have et færdigt zombieforsvarsspil, en freelancer eller et studie, der forbereder et brandet spil til én kunde, og en udvikler, der vil læse, hvordan et TypeScript- og Phaser-tower defense holder sit design i data. Hvis du kun skal hoste det under dit eget navn, dækker konfigurationsfilen og logoet det meste af arbejdet. Planlægger du en ny kampagne, er de tre datafiler og npm run balance det, du bruger din tid på.
Prøv Barricade Z-demoen, og køb licensen
Skræddersyede bølger, et reskin eller en agenturordre? Bed om et tilbud
