피드로 돌아가기
I built a game with zero asset files - everything is generated in code
Dev.toDev.to
Frontend

Zero Asset 구조 설계를 통한 Draw Call 95% 절감 및 런타임 동적 반응성 확보

I built a game with zero asset files - everything is generated in code

ForceSensitiveSaiyan2026년 6월 15일5intermediate

Context

외부 에셋 의존성을 완전히 제거하고 모든 시각 및 청각 요소를 런타임 코드 생성 방식으로 설계한 사례. 기존의 픽셀 단위 렌더링 방식이 모바일 GPU의 Draw Call 한계를 초과하여 시스템 크래시를 유발하는 병목 지점 발생.

Technical Solution

  • Godot _draw() 함수 기반의 절차적 렌더링 파이프라인 구축을 통한 외부 텍스처 의존성 제거
  • Hemisphere Surface Normal 및 Lambertian Diffuse Lighting 연산을 통한 돔 구조의 실시간 셰이딩 구현
  • 픽셀 단위 렌더링에서 Grid Cell(8×6 픽셀) 단위의 draw_rect() 방식으로 전환하여 GPU 부하 최적화
  • GLSL Shader를 활용한 CRT Scanline 및 Chromatic Aberration 등 고부하 후처리 작업의 GPU 위임
  • Raw Waveform 수학 연산을 통한 런타임 오디오 버퍼 생성 및 샘플링 기반의 사운드 합성 체계 구축
  • 메인 스레드 블로킹 방지를 위해 오디오 버퍼 생성을 첫 프레임 렌더링 이후로 지연시키는 비동기적 처리 적용

1. 모바일 GPU 최적화 시 개별 픽셀/개체 단위 렌더링보다 청크(Chunk) 또는 그리드 단위 그룹화 검토

2. 무거운 리소스 생성 로직이 메인 스레드를 점유하여 ANR(Application Not Responding)을 유발하는지 확인

3. 단순 텍스처 교체 대신 수학적 파라미터 기반의 상태 변화를 통해 에셋 관리 비용 절감 및 반응성 향상 시도

원문 읽기