Ghid

Cod sursă tower defense: valuri, turnuri și echilibru în TypeScript

Barricade Z își păstrează cele 30 de valuri, cele 12 niveluri de turn și economia în trei fișiere de date. Iată ce înseamnă asta pentru un cumpărător.

Barricade Z artwork: un zombi de desen animat sare peste o barieră de lemn la apus, în timp ce un turn galben trage într-o hoardă din spatele lui.

În codul sursă al unui tower defense, designul jocului trăiește în date: cât de puternic este fiecare turn, ce trimite fiecare val, cât de repede sosesc monedele. Dacă aceste date sunt împrăștiate prin codul de randare, reechilibrarea unui singur val înseamnă citirea întregului proiect. Barricade Z, șablonul nostru de tower defense cu îmbinare (merge), ține turnurile, valurile și echilibrul în trei fișiere TypeScript, iar ghidul acesta arată unde sunt și cum le schimbi în siguranță.

În acest pachet există două niveluri de modificare. Un editor de text este suficient pentru titlul paginii și numele salvării. Tot restul, de la turnuri până la valurile de zombi, trece prin sursa TypeScript și printr-o recompilare. Dacă știi dinainte care este care, îți ferești o surpriză ulterioară.

Fiecare nume de fișier de mai jos vine din ghidul ilustrat pentru cumpărător care însoțește jocul, disponibil în aceleași 14 limbi ca interfața.

Ce conține codul sursă tower defense

Barricade Z este un joc de apărare cu îmbinare. Jucătorii fabrică turete într-o rezervă, trag două niveluri identice unul spre altul ca să obțină următorul, până la nivelul 12, și mută cele mai puternice în cinci poziții de barieră. O campanie de 30 de valuri trece prin trei medii, cu boși în valurile 10, 20 și 30. Grenades (grenadele) se deblochează la valul 3, iar Overdrive la valul 7, iar un Workshop (atelier) vinde îmbunătățiri. Provocările zilnice și modul Endless (fără sfârșit) se deschid pe măsură ce jucătorul progresează.

  • game/: build-ul jucabil, gata de încărcat, cu Phaser 3.90 în lib/phaser.js și fonturile Bungee și Barlow Condensed.
  • game/barricade-z.config.js: cele două setări pe care le poți schimba fără recompilare.
  • source/: proiectul TypeScript lizibil, doar pentru dezvoltatori.
  • documentation/index.html, plus DOCUMENTATION.html în rădăcină: ghidul pentru cumpărător, care se deschide offline.
  • THIRD-PARTY-LICENSES/: notele pentru motor și fonturi.

Interfața vine în 14 limbi, cu layout-uri pe verticală și pe orizontală pentru tactil și mouse. Vocea prezentatorului este înregistrată doar în engleză, iar setarea de limbă schimbă textul interfeței, nu vocea.

Vezi Barricade Z: demo, ghid și preț

Cele trei fișiere care țin designul jocului

Deschide mai întâi source/src/data/. Aceste trei fișiere sunt motivul pentru care cumperi ediția cu sursă, pentru că aici se proiectează efectiv un tower defense.

  • towers.ts: cele 12 niveluri de turn, atributele armelor și datele de ieșire ale țevii.
  • waves.ts: cele 30 de valuri ale campaniei și locul în care apar boșii.
  • balance.ts: economia, viața, daunele și reglajul progresiei.

În jurul lor, source/src/i18n/ conține dicționarele pentru cele 14 limbi, source/src/ui/ conține meniurile, HUD-ul, bara de instrumente, panourile și tutorialul, iar source/src/audio/ se ocupă de rutarea sunetului și de prezentator. Codul compilat din game/assets/ are nume de fișiere cu hash; nu le edita manual, recompilează.

Ce poți schimba cu un editor de text

Deschide game/barricade-z.config.js, schimbă o valoare, salvează și reîncarcă pagina. Nu e nevoie de recompilare. Doar două setări se află aici.

  • title: titlul din fila browserului. Nu înlocuiește logo-ul ilustrat.
  • storagePrefix: spațiul de nume pentru datele salvate. Dacă îl schimbi, începe o salvare separată și lasă cheile vechi la locul lor. Folosește doar litere, cifre, puncte, liniuțe de subliniere și cratime, până la 64 de caractere.

storagePrefix este mai util decât pare. Două copii ale jocului pe același domeniu își împart salvările, chiar dacă se află în subdosare diferite. Dacă o agenție găzduiește câte o copie pentru fiecare client pe același domeniu, dă fiecărei copii propriul prefix, ca progresul jucătorilor să nu se amestece.

Orice altceva dincolo de aceste două valori, inclusiv logo-ul, pictogramele, grafica, regulile, turnurile, valurile și textele, cere ediția cu sursă și o recompilare.

Recompilarea după o schimbare reală

Dosarul game/ conține deja build-ul jucabil, deci găzduirea nu are nevoie de Node.js. Îl instalezi doar dacă vrei să schimbi jocul în sine.

  1. Instalează Node.js 20.19 sau mai nou.
  2. În source/, rulează npm ci. Versiunile testate ale uneltelor sunt fixate în package-lock.json.
  3. Fă modificarea, apoi rulează npm run typecheck și npm test.
  4. Rulează npm run build. Rezultatul ajunge în source/dist/.
  5. Încarcă conținutul din source/dist/ ca să înlocuiești jocul găzduit, la fel ca pentru game/.

Trei comenzi opționale ajută pe parcurs: npm run dev pornește un server local de dezvoltare, npm run preview servește un build pentru verificare, iar npm run balance rulează o simulare completă a campaniei din linia de comandă, util după ce ai atins balance.ts.

Ce schimbă de obicei un cumpărător primul

  1. Titlul filei și prefixul de salvare din fișierul de configurare, ca copia să fie a ta de la prima încărcare.
  2. Logo-ul și grafica din sursă. Păstrează proporțiile existente când înlocuiești elementele vizuale, cum cere ghidul.
  3. Textul interfeței în dicționarele i18n, în fiecare limbă pe care plănuiești să o livrezi.
  4. Dificultatea: compoziția valurilor în waves.ts, apoi fluxul monedelor în balance.ts.
  5. Turnurile la final, în towers.ts, pentru că fiecare val a fost reglat în funcție de ele.

Dacă vinzi sau administrezi mai multe jocuri de îmbinare, aceeași idee de rezervă și îmbinare apare în alte două șabloane ale noastre, fiecare cu tema și regulile lui.

Deepforge: îmbini tot felul de târnăcope și le trimiți într-o mină condusă de fizică

Plop: un puzzle de îmbinare a fructelor, cu fizică și 11 niveluri

Găzduire, actualizări și salvări

Încarcă doar conținutul dosarului game/ într-un dosar gol, de exemplu public_html/jocul-meu/, și deschide adresa într-un Chrome, Edge, Firefox sau Safari actual. Nu este nevoie de npm, PHP, bază de date sau cont, iar HTTPS este recomandat. Dublu click pe index.html de pe calculatorul tău nu funcționează. Gazda trebuie să servească .js ca JavaScript, .css ca CSS, iar fonturile și .mp3 cu tipurile lor obișnuite, iar pe multe gazde numele fișierelor sunt sensibile la majuscule.

Salvările trăiesc în browserul jucătorului sub barricadez.save (campanie și punct de control) și barricadez.settings (limbă, sunet, tutorial, deblocări, înregistrări), cu prefixul implicit. Nu există cont și nicio sincronizare în cloud. O reîncărcare repornește valul curent de la punctul de control.

  • Pentru actualizare: fă o copie de rezervă a game/ și a fișierului de configurare editat, încarcă noul game/ peste cel vechi, păstrează storagePrefix neschimbat și reîncarcă.
  • Dacă apare încă versiunea veche, golește imaginile și fișierele din cache sau apasă Ctrl+F5. Nu șterge datele site-ului: asta șterge salvarea.
  • Jocul vine cu un manifest.webmanifest, dar ghidul spune clar că nu este împachetat ca aplicație offline instalabilă.

Proiectele de aplicație nativă nu sunt incluse. Dacă vrei jocul într-un magazin de aplicații, împachetarea și lista din magazin sunt lucrări separate, pe care le putem cota.

Ce nu este inclus și licența

Ediția nu are SDK de publicitate, analiză, furnizor de plăți, multiplayer online, clasament la distanță sau salvări în cloud și nici aplicație nativă, găzduire sau dezvoltare personalizată. Adăugarea oricăruia dintre ele este muncă de dezvoltare, cu conturile tale.

Barricade Z costă 39 USD la prețul de listă, sau 33,15 USD în timpul promoției Black Friday, care rulează până pe 30 noiembrie 2026; două sau mai multe șabloane în aceeași comandă primesc și o reducere de pachet de 5% până la 20%. Licența este perpetuă și neexclusivă, pentru un produs final, al tău sau al unui client. Poți modifica codul, grafica și audio, să înlocuiești brandul nostru cu al tău și să oferi jocul gratuit sau cu reclame. Nu este permisă revânzarea șablonului sau a codului lui separat. Vin incluse șase luni de suport, sau douăsprezece cu extensia; funcțiile noi și integrările se cotează mai întâi.

Citește termenii marketplace-ului

Întrebări frecvente

Ce motor folosește codul sursă tower defense?

Phaser 3.90 cu TypeScript. Motorul este inclus în game/lib/phaser.js sub licența MIT, deci nimic nu se încarcă dintr-un CDN.

Pot schimba valurile și turnurile fără Node.js?

Nu. Fișierul de configurare doar setează titlul filei și prefixul de salvare. Valurile, turnurile și echilibrul sunt în sursă și cer Node.js 20.19 sau mai nou și o recompilare.

Prezentatorul este tradus?

Nu. Cele 14 limbi acoperă interfața. Înregistrările prezentatorului sunt în engleză, iar celelalte limbi nu au narațiune.

Funcționează pe telefoane?

Da. Layout-urile pe verticală și pe orizontală funcționează cu tactil și mouse. Performanța depinde de dispozitiv, deci testează pe telefoanele folosite de publicul tău.

Pot avea două copii pe același domeniu cu salvări separate?

Da, dacă fiecare copie are propriul storagePrefix în barricade-z.config.js. Un subdosar diferit singur nu le separă.

Cui să-i fie destinat

Barricade Z se potrivește unui portal care vrea un joc finalizat de apărare împotriva zombilor, unui freelancer sau unui studio care pregătește un joc cu brand pentru un singur client și unui dezvoltator care vrea să citească cum un tower defense în TypeScript și Phaser își ține designul în date. Dacă vrei doar să-l găzduiești sub numele tău, fișierul de configurare și logo-ul acoperă cea mai mare parte a lucrului. Dacă plănuiești o campanie nouă, cele trei fișiere de date și npm run balance sunt locul în care vei petrece cel mai mult timp.

Încearcă demo-ul Barricade Z și cumpără licența

Valuri personalizate, un reskin sau o comandă de agenție? Cere o ofertă