타워 디펜스 소스코드: 웨이브, 타워, 밸런스(TypeScript)
Barricade Z는 30개 웨이브, 12단계 타워, 경제 시스템을 데이터 파일 세 개에 담았습니다. 구매자에게 이것이 어떤 의미인지 정리했습니다.

타워 디펜스 소스코드에서 게임 디자인은 데이터에 있습니다. 타워마다 얼마나 강한지, 웨이브마다 무엇이 오는지, 코인이 얼마나 빨리 들어오는지가 모두 데이터입니다. 이 데이터가 렌더링 코드 곳곳에 흩어져 있으면 웨이브 하나를 조정하려고 프로젝트 전체를 읽어야 합니다. 저희 머지 타워 디펜스 템플릿 Barricade Z는 타워, 웨이브, 밸런스를 TypeScript 파일 세 개에 모아 두었고, 이 가이드는 그 위치와 안전하게 수정하는 방법을 보여 줍니다.
이 패키지의 수정은 두 단계로 나뉩니다. 페이지 제목과 저장 이름은 텍스트 에디터만으로 바꿀 수 있습니다. 타워부터 좀비 웨이브까지 나머지는 모두 TypeScript 소스와 리빌드를 거칩니다. 구매 전에 이 구분을 알아 두면 나중에 놀랄 일이 없습니다.
아래에 나오는 파일 이름은 모두 게임에 포함된 그림 구매자 가이드를 따르며, 이 가이드는 인터페이스와 같은 14개 언어로 제공됩니다.
이 타워 디펜스 소스코드에 들어 있는 것
Barricade Z는 머지 디펜스 게임입니다. 플레이어는 예비 칸에서 포탑을 만들고, 같은 레벨 두 개를 끌어 합쳐 다음 레벨(최대 12)을 만들고, 가장 강한 포탑을 바리케이드의 다섯 자리에 배치합니다. 30웨이브 캠페인은 세 가지 환경을 거치며 10, 20, 30웨이브에 보스가 나옵니다. 수류탄은 3웨이브, Overdrive는 7웨이브에 해금되고, Workshop에서 업그레이드를 판매합니다. 데일리 챌린지와 Endless 모드는 진행에 따라 열립니다.
- game/: 바로 업로드할 수 있는 플레이용 빌드. lib/phaser.js에 Phaser 3.90, Bungee와 Barlow Condensed 폰트 포함.
- game/barricade-z.config.js: 리빌드 없이 바꿀 수 있는 두 가지 설정.
- source/: 읽기 쉬운 TypeScript 프로젝트(개발자 전용).
- documentation/index.html과 루트의 DOCUMENTATION.html: 오프라인으로 열리는 구매자 가이드.
- THIRD-PARTY-LICENSES/: 엔진과 폰트의 고지문.
인터페이스는 14개 언어를 지원하며, 터치와 마우스용 세로·가로 레이아웃이 있습니다. 아나운서 음성은 영어로만 녹음되어 있어, 언어 설정은 인터페이스 텍스트만 바꾸고 음성은 바꾸지 않습니다.
게임 디자인을 담은 세 파일
먼저 source/src/data/를 여세요. 소스 에디션을 사는 이유가 바로 이 세 파일입니다. 타워 디펜스 게임이 실제로 설계되는 곳이 여기이기 때문입니다.
- towers.ts: 12단계 타워, 무기 속성, 총구 데이터.
- waves.ts: 30개 캠페인 웨이브와 보스 등장 위치.
- balance.ts: 경제, 체력, 피해량, 성장 곡선 튜닝.
그 주변으로 source/src/i18n/에는 14개 언어 사전이, source/src/ui/에는 메뉴, HUD, 툴바, 패널, 튜토리얼이 있고, source/src/audio/는 사운드 라우팅과 아나운서를 담당합니다. game/assets/의 빌드된 코드는 파일 이름에 해시가 붙어 있으니 직접 고치지 말고 다시 빌드하세요.
텍스트 에디터로 바꿀 수 있는 것
game/barricade-z.config.js를 열어 값을 바꾸고 저장한 뒤 새로고침하면 됩니다. 리빌드는 필요 없습니다. 여기 있는 설정은 두 가지뿐입니다.
- title: 브라우저 탭 제목. 일러스트 로고를 대체하지는 않습니다.
- storagePrefix: 저장 데이터의 네임스페이스. 바꾸면 별도의 저장이 시작되고 기존 키는 그대로 남습니다. 영문자, 숫자, 점, 밑줄, 하이픈만 쓰고 64자 이내로 하세요.
storagePrefix는 보기보다 쓸모가 많습니다. 같은 도메인의 게임 사본 두 개는 서로 다른 하위 폴더에 있어도 저장 데이터를 공유합니다. 에이전시가 한 도메인에 고객사별로 사본을 하나씩 호스팅한다면, 사본마다 고유 접두어를 줘서 플레이어 진행 상황이 섞이지 않게 하세요.
이 두 값을 넘어서는 수정, 즉 로고, 아이콘, 아트워크, 규칙, 타워, 웨이브, 텍스트는 모두 소스 에디션과 리빌드가 필요합니다.
실제 수정 후 다시 빌드하기
game/ 폴더에 이미 플레이용 빌드가 들어 있으므로 호스팅에는 Node.js가 필요 없습니다. 게임 자체를 바꿀 때만 설치하면 됩니다.
- Node.js 20.19 이상을 설치합니다.
- source/ 안에서 npm ci를 실행합니다. 테스트된 도구 버전은 package-lock.json에 고정되어 있습니다.
- 수정한 뒤 npm run typecheck와 npm test를 실행합니다.
- npm run build를 실행합니다. 결과물은 source/dist/에 생성됩니다.
- source/dist/의 내용을 game/과 같은 방식으로 업로드해 호스팅 중인 게임을 교체합니다.
선택 명령어 세 가지가 작업을 돕습니다. npm run dev는 로컬 개발 서버를 띄우고, npm run preview는 확인용 빌드를 제공하며, npm run balance는 명령줄에서 캠페인 전체를 시뮬레이션합니다. balance.ts를 건드린 뒤에 특히 유용합니다.
구매자가 보통 가장 먼저 바꾸는 것
- 설정 파일의 탭 제목과 저장 접두어. 첫 업로드부터 여러분의 사본이 됩니다.
- 소스의 로고와 아트워크. 가이드 안내대로 이미지를 바꿀 때는 기존 비율을 유지하세요.
- i18n 사전의 인터페이스 텍스트. 배포할 모든 언어를 대상으로 합니다.
- 난이도: waves.ts의 웨이브 구성, 그다음 balance.ts의 코인 흐름.
- 타워는 마지막에 towers.ts에서. 모든 웨이브가 타워 기준으로 조정되어 있기 때문입니다.
머지 게임을 여러 개 판매하거나 운영한다면, 같은 예비 칸·합치기 아이디어가 저희 다른 템플릿 두 개에도 있습니다. 각각 테마와 규칙이 다릅니다.
Deepforge: 곡괭이를 합쳐 물리 기반 광산으로 보내는 게임
호스팅, 업데이트, 저장 데이터
game/의 내용만 public_html/my-game/ 같은 빈 폴더에 올리고, 최신 Chrome, Edge, Firefox, Safari에서 주소를 여세요. npm, PHP, 데이터베이스, 계정은 필요 없고 HTTPS를 권장합니다. 내 컴퓨터에서 index.html을 더블클릭하면 동작하지 않습니다. 호스트는 .js를 JavaScript로, .css를 CSS로, 폰트와 .mp3를 일반 타입으로 제공해야 하며, 많은 호스트에서 파일 이름의 대소문자를 구분합니다.
저장 데이터는 기본 접두어 기준으로 플레이어 브라우저의 barricadez.save(캠페인과 체크포인트)와 barricadez.settings(언어, 사운드, 튜토리얼, 해금, 기록)에 남습니다. 계정도 클라우드 동기화도 없습니다. 새로고침하면 진행 중이던 웨이브가 체크포인트부터 다시 시작됩니다.
- 업데이트 방법: game/과 수정한 설정 파일을 백업하고, 새 game/을 기존 위에 덮어 올린 뒤, storagePrefix는 그대로 두고 새로고침합니다.
- 예전 버전이 계속 보이면 캐시된 이미지와 파일을 지우거나 Ctrl+F5를 누르세요. 사이트 데이터는 지우지 마세요. 저장 데이터가 삭제됩니다.
- 게임에 manifest.webmanifest가 포함되어 있지만, 가이드에 명시된 대로 설치형 오프라인 앱으로 패키징된 것은 아닙니다.
네이티브 앱 프로젝트는 포함되지 않습니다. 앱 스토어에 출시하려면 래퍼와 스토어 등록이 별도 작업이며, 견적을 드릴 수 있습니다.
포함되지 않은 것과 라이선스
이 에디션에는 광고 SDK, 분석 도구, 결제 서비스, 온라인 멀티플레이, 원격 리더보드, 클라우드 저장이 없고, 네이티브 앱, 호스팅, 맞춤 개발도 포함되지 않습니다. 이 중 무엇이든 추가하려면 여러분의 계정으로 개발 작업을 해야 합니다.
Barricade Z의 정가는 $39이며, 2026년 11월 30일까지 진행되는 블랙 프라이데이 프로모션 기간에는 $33.15입니다. 한 주문에 템플릿을 두 개 이상 사면 5%~20% 묶음 할인도 받습니다. 라이선스는 영구·비독점이며 최종 제품 하나(여러분의 것 또는 고객사 하나)에 적용됩니다. 코드·아트·오디오 수정, 저희 브랜드를 여러분의 브랜드로 교체, 무료 또는 광고 포함 서비스가 가능합니다. 템플릿이나 코드 자체를 단독으로 재판매하는 것은 허용되지 않습니다. 지원 6개월이 포함되며 연장 시 12개월이고, 새 기능과 연동은 먼저 견적을 드립니다.
자주 묻는 질문
타워 디펜스 소스코드는 어떤 엔진을 쓰나요?
TypeScript와 Phaser 3.90입니다. 엔진은 MIT 라이선스로 game/lib/phaser.js에 포함되어 있어 CDN에서 불러오는 것이 없습니다.
Node.js 없이 웨이브와 타워를 바꿀 수 있나요?
아닙니다. 설정 파일은 탭 제목과 저장 접두어만 정합니다. 웨이브, 타워, 밸런스는 소스에 있으며 Node.js 20.19 이상과 리빌드가 필요합니다.
아나운서 음성도 번역되어 있나요?
아닙니다. 14개 언어는 인터페이스에 해당합니다. 아나운서 녹음은 영어이며, 다른 언어에는 내레이션이 없습니다.
휴대폰에서도 동작하나요?
네. 세로·가로 레이아웃이 터치와 마우스로 동작합니다. 성능은 기기에 따라 다르니 대상 사용자가 쓰는 휴대폰으로 테스트하세요.
한 도메인의 사본 두 개가 저장 데이터를 따로 가질 수 있나요?
네, 각 사본의 barricade-z.config.js에 고유한 storagePrefix를 지정하면 됩니다. 하위 폴더만 다르게 해서는 분리되지 않습니다.
이런 분께 맞습니다
Barricade Z는 완성된 좀비 디펜스 게임이 필요한 포털, 고객사 하나를 위해 브랜드 게임을 준비하는 프리랜서나 스튜디오, TypeScript와 Phaser로 만든 타워 디펜스가 디자인을 데이터로 어떻게 관리하는지 읽어 보고 싶은 개발자에게 맞습니다. 자체 이름으로 호스팅만 할 생각이라면 설정 파일과 로고로 대부분 해결됩니다. 새 캠페인을 기획한다면 세 개의 데이터 파일과 npm run balance에 시간을 쓰게 됩니다.
