Källkod till tower defense-spel: vågor, torn och balans i TypeScript
Barricade Z har sina 30 vågor, 12 nivåer av torn och ekonomi i tre datafiler. Här är vad det betyder för en köpare.

I källkod till tower defense ligger speldesignen i datan: hur stark varje torn är, vad varje våg skickar och hur snabbt mynten kommer in. Om datan är utspridd i renderingskoden måste du läsa hela projektet för att balansera om en enda våg. Barricade Z, vår sammanslagningsmall för tower defense, håller torn, vågor och balans i tre TypeScript-filer. Den här guiden visar var de finns och hur du ändrar dem säkert.
Det finns två nivåer av ändring i paketet. En textredigerare räcker för sidans titel och sparnamnet. Allt annat, från tornen till zombievågorna, går genom TypeScript-källkoden och en ombyggnad. Att veta vilket är vilket före köpet sparar en överraskning senare.
Varje filnamn nedan kommer från den illustrerade köparguiden som följer med spelet, och den finns på samma 14 språk som gränssnittet.
Vad källkoden till tower defense-spelet innehåller
Barricade Z är ett sammanslagningsspel med försvar. Spelarna tillverkar torn i en reserv, drar två identiska nivåer till varandra för att göra nästa, upp till nivå 12, och flyttar de starkaste till fem barrikadpositioner. En kampanj på 30 vågor går genom tre miljöer, med bossar i vågorna 10, 20 och 30. Granater låses upp i våg 3 och Overdrive (överladdning) i våg 7, och en Workshop (verkstad) säljer uppgraderingar. Dagliga utmaningar och Endless mode (läget Endless) öppnas allt eftersom spelaren går framåt.
- game/: den spelbara versionen, redo att laddas upp, med Phaser 3.90 i lib/phaser.js och typsnitten Bungee och Barlow Condensed.
- game/barricade-z.config.js: de två inställningar du kan ändra utan ombyggnad.
- source/: det läsbara TypeScript-projektet, endast för utvecklare.
- documentation/index.html, plus DOCUMENTATION.html i roten: köparguiden, som öppnas offline.
- THIRD-PARTY-LICENSES/: notiser för motorn och typsnitten.
Gränssnittet finns på 14 språk, med layouter för både stående och liggande läge för beröring och mus. Berättaren är inspelad enbart på engelska, och språkinställningen ändrar gränssnittstexten, inte rösten.
Se Barricade Z: demo, guide och pris
De tre filerna som håller speldesignen
Öppna source/src/data/ först. De tre filerna är anledningen till att man överhuvudtaget köper källversionen, eftersom det är där ett tower defense-spel faktiskt designas.
- towers.ts: de 12 nivåerna av torn, deras vapenegenskaper och data för mynningen.
- waves.ts: de 30 kampanjvågorna och var bossarna dyker upp.
- balance.ts: finjustering av ekonomi, hälsa, skada och progression.
Runt dem innehåller source/src/i18n/ ordböckerna för de 14 språken, source/src/ui/ innehåller menyerna, HUD:en, verktygsfältet, panelerna och handledningen, och source/src/audio/ sköter ljudrouting och berättaren. Den byggda koden i game/assets/ har hashade filnamn. Redigera dem inte för hand, bygg om i stället.
Vad du kan ändra med en textredigerare
Öppna game/barricade-z.config.js, ändra ett värde, spara och ladda om. Ingen ombyggnad behövs. Bara två inställningar finns här.
- title: titeln på webbläsarfliken. Den ersätter inte den illustrerade logotypen.
- storagePrefix: namnrymden för sparade data. Om du ändrar den startar ett separat sparande, och de gamla nycklarna ligger kvar. Använd bara bokstäver, siffror, punkter, understreck och bindestreck, upp till 64 tecken.
storagePrefix är mer användbart än det ser ut. Två kopior av spelet på samma domän delar sparade data, även om de ligger i olika undermappar. Om en byrå är värd för en kopia per kund på en domän bör varje kopia ha sitt eget prefix, så att spelarnas framsteg inte blandas.
Allt utöver de två värdena, inklusive logotypen, ikoner, grafik, regler, torn, vågor och text, kräver källversionen och en ombyggnad.
Bygg om efter en riktig ändring
Mappen game/ innehåller redan den spelbara versionen, så hosting behöver ingen Node.js. Du installerar det bara för att ändra själva spelet.
- Installera Node.js 20.19 eller nyare.
- Inne i source/ kör du npm ci. De testade verktygsversionerna är låsta i package-lock.json.
- Gör din ändring och kör sedan npm run typecheck och npm test.
- Kör npm run build. Resultatet hamnar i source/dist/.
- Ladda upp innehållet i source/dist/ för att ersätta det utlagda spelet, på samma sätt som med game/.
Tre valfria kommandon hjälper till på vägen: npm run dev startar en lokal utvecklingsserver, npm run preview serverar ett bygge för kontroll, och npm run balance kör en fullständig kampanjsimulering från kommandoraden, vilket är praktiskt efter att du rört balance.ts.
Vad en köpare oftast ändrar först
- Flikens titel och sparprefixet i konfigurationsfilen, så att kopian är din från första uppladdningen.
- Logotyp och grafik i källkoden. Behåll de befintliga proportionerna när du byter ut bilder, som guiden ber om.
- Gränssnittstexten i ordböckerna i i18n, på varje språk du planerar att leverera.
- Svårighet: vågornas sammansättning i waves.ts, sedan myntflödet i balance.ts.
- Torn sist, i towers.ts, eftersom varje våg balanserades mot dem.
Om du säljer eller driver flera sammanslagningsspel finns samma idé om reserv och sammanslagning i två andra av våra mallar, var och en med eget tema och egna regler.
Deepforge: slå ihop hackor och skicka dem in i en fysikdriven gruva
Plop: ett frukt-sammanslagningspussel med fysik och 11 nivåer
Hosting, uppdateringar och sparade data
Ladda bara upp innehållet i game/ till en tom mapp, till exempel public_html/my-game/, och öppna adressen i en aktuell version av Chrome, Edge, Firefox eller Safari. Ingen npm, PHP, databas eller konto behövs, och HTTPS rekommenderas. Att dubbelklicka på index.html på datorn fungerar inte. Din hosting måste servera .js som JavaScript, .css som CSS samt typsnitt och .mp3 med deras vanliga typer, och filnamn är skiftlägeskänsliga på många hostingtjänster.
Sparade data finns i spelarens webbläsare under barricadez.save (kampanj och checkpoint) och barricadez.settings (språk, ljud, handledning, upplåsningar och rekord), med standardprefixet. Det finns inget konto och ingen molnsynk. En omladdning startar den aktuella vågen från dess checkpoint.
- Så uppdaterar du: säkerhetskopiera game/ och din redigerade konfigurationsfil, ladda upp den nya game/ över den gamla, behåll storagePrefix oförändrat och ladda om.
- Visas den gamla versionen fortfarande, rensa cachade bilder och filer eller tryck Ctrl+F5. Rensa inte webbplatsdata, för då raderas sparandet.
- Spelet levereras med en manifest.webmanifest, men guiden är tydlig med att det inte är paketerat som en installerbar app för offlineanvändning.
Native-appprojekt ingår inte. Vill du ha spelet i en appbutik är omslaget och butikspresentationen ett separat arbete, som vi kan offerera.
Vad som inte ingår, och licensen
Utgåvan har inget annons-SDK, ingen analys, ingen betalningsleverantör, ingen onlinemultiplayer, ingen fjärrledartavla och inga molnsparningar, och ingen native-app, hosting eller skräddarsytt arbete. Att lägga till något av det är utvecklingsarbete med egna konton.
Barricade Z kostar 39 USD i listpris, eller 33,15 USD under Black Friday-kampanjen som gäller till 30 november 2026. Två eller fler mallar i samma order ger också ett paketrabatt på 5 % till 20 %. Licensen är evig och icke-exklusiv, för en slutprodukt, din eller en kunds. Du får ändra koden, grafiken och ljudet, ersätta vårt varumärke med ditt och erbjuda spelet gratis eller med annonser. Att sälja mallen eller dess kod för sig är inte tillåtet. Sex månaders support ingår, eller tolv med tillägget. Nya funktioner och integreringar offereras först.
Läs villkoren för marknadsplatsen
Vanliga frågor
Vilken motor använder källkoden till tower defense-spelet?
Phaser 3.90 med TypeScript. Motorn ingår i game/lib/phaser.js under MIT-licensen, så ingenting laddas från ett CDN.
Kan jag ändra vågor och torn utan Node.js?
Nej. Konfigurationsfilen ställer bara in fliktiteln och sparprefixet. Vågor, torn och balans finns i källkoden och kräver Node.js 20.19 eller nyare samt en ombyggnad.
Är berättaren översatt?
Nej. De 14 språken täcker gränssnittet. Berättarens inspelningar är på engelska, och de andra språken har ingen uppläsning.
Fungerar det på telefoner?
Ja. Layouterna för stående och liggande läge fungerar med beröring och mus. Prestandan beror på enheten, så testa på de telefoner din publik använder.
Kan två kopior på samma domän ha separata sparningar?
Ja, om varje kopia har sitt eget storagePrefix i barricade-z.config.js. En annan undermapp räcker inte för att skilja dem åt.
Vem som ska köpa den
Barricade Z passar en portal som vill ha ett färdigt zombieförsvarsspel, en frilansare eller studio som förbereder ett varumärkt spel för en kund och en utvecklare som vill läsa hur ett TypeScript- och Phaser-tower defense håller sin design i data. Om du bara ska lägga ut det under ditt eget namn täcker konfigurationsfilen och logotypen det mesta av arbetet. Planerar du en ny kampanj är det de tre datafilerna och npm run balance som tar din tid.
Prova Barricade Z-demon och köp licensen
Egna vågor, en reskin eller en beställning från en byrå? Begär en offert
