피드로 돌아가기
Building a Gacha Tower Defense in Cocos Creator: Wave System, Merge Logic, and 28 Enemy Types
Dev.toDev.to
Frontend

Composition 패턴과 JSON 기반 데이터 드리븐 설계로 구현한 고효율 타워 디펜스 시스템

Building a Gacha Tower Defense in Cocos Creator: Wave System, Merge Logic, and 28 Enemy Types

Marvin Tang2026년 4월 24일6intermediate

Context

LayaAir에서 Cocos Creator로 마이그레이션 후 가차 머지 타워 디펜스 구현 과정에서 발생한 성능 병목 해결 필요성 대두. 특히 다수의 유닛 배치 시 발생하는 CPU 오버헤드와 50개 웨이브의 방대한 수동 설계에 따른 운영 효율성 저하가 주요 과제로 작용.

Technical Solution

  • Grid Coordinates 기반 논리 구조 설계를 통한 시각적 렌더링과 병합 판정 로직의 완전 분리
  • 매 프레임 수행하던 병합 체크를 Placement Event 발생 시점에만 수행하도록 변경하여 CPU 부하 최적화
  • JSON 기반 Wave Configuration 시스템 도입을 통한 로직과 데이터의 분리로 런타임 밸런싱 수정 주기 단축
  • 단일 클래스 상속 구조 대신 Composition 패턴을 적용한 Enemy Behavior 시스템 설계로 28종의 적 타입을 유연하게 생성
  • NodePool 및 Sprite Atlas 배칭 기법을 통한 런타임 메모리 할당 비용 제거 및 Draw Call 최소화
  • Update 루프 내 배열 재할당 방지를 통한 저사양 모바일 기기의 프레임 드랍 현상 개선

- 복잡한 객체 특성 정의 시 상속보다 Composition 패턴을 우선 검토하여 확장성 확보 - 반복적인 데이터 수정이 필요한 시스템은 코드와 설정을 분리하는 Data-Driven 설계 적용 - 모바일 환경의 성능 최적화를 위해 매 프레임 실행되는 로직을 특정 이벤트 기반으로 전환 - 빈번한 객체 생성/소멸이 발생하는 경우 NodePool 도입을 통한 GC 부하 감소

원문 읽기