Defold: 크로스 플랫폼 게임 엔진

2 weeks ago 14

  • 가볍고 고성능인 2D 중심 게임 엔진이며, 3D 기능도 지원
  • Lua 스크립트 기반으로 전체 게임 로직을 제어하며, 빠른 빌드와 핫 리로드로 개발 속도 향상
  • 무료로 제공되며, 라이선스 비용이나 로열티가 없음
  • 크로스 플랫폼 지원이 강력하여 한 번 개발로 다양한 플랫폼에 배포 가능
  • 씬 에디터, GUI 툴 등 아티스트 친화적인 도구 제공으로 시각적 제작 용이성 강화
  • C/C++ 등의 네이티브 확장과 다양한 SDK 연동으로 확장성과 실전 적용 가능

Defold의 주요 기능

  • 설치 필요 없음: 설치나 설정 없이 바로 사용할 수 있음
  • 비주얼 및 코드 편집기: 시각적 편집기와 코드 편집기를 통해 창의적인 작업 가능
  • Lua 디버거: Lua 스크립트를 디버깅할 수 있는 도구 제공
  • 장면 및 파티클 편집기: 2D 및 3D 게임 개발을 위한 다양한 편집기 제공
  • 비용 없음: 초기 비용, 라이선스 비용, 로열티, 런타임 비용이 없음

크로스 플랫폼 지원

  • 다양한 플랫폼: PlayStation, Nintendo Switch, Android, iOS, macOS, Linux, Windows, Steam, HTML5, Facebook 등 주요 플랫폼에 게임 배포 가능
  • 외부 도구 불필요: 외부 도구 없이 하나의 코드 베이스로 모든 플랫폼 지원

2D 중심, 3D도 가능한 엔진 구성

  • Defold는 2D 게임 개발에 최적화되어 있지만, 3D 기능도 내장
  • 컴포넌트 기반 설계로 성능과 모듈성 강화
  • 2D 컴포넌트 : 2D 스프라이트, Spine 모델, 타일맵 에디터
  • 3D 컴포넌트 :
    • 3D 모델 및 애니메이션 로딩
    • 런타임 중 3D 메시 생성 및 수정
    • 사용자 정의 머티리얼과 GLSL 기반 셰이더
  • 파티클 효과
    • 실시간 미리보기가 가능한 파티클 에디터
    • 곡선 에디터로 파라미터 조절
    • 2D/3D 파티클 방출기 지원

애니메이션 기능

  • 스프라이트, 모델, GUI 등에 사용 가능한 강력한 애니메이션 시스템
  • 플립북 애니메이션 : 스프라이트, GUI 노드, 파티클에 사용
  • Spine 및 모델 애니메이션
    • 블렌딩 지원
    • 키프레임 이벤트 처리
    • 역운동학 적용 가능 및 스크립트 제어
  • 속성 애니메이션
    • 모든 스프라이트 및 GUI 속성에 애니메이션 가능
    • 커스텀 스크립트 기반 속성 애니메이션
    • 커스텀 또는 사전 정의된 이징 함수 사용

아티스트 친화적인 도구

  • GUI 에디터
    • 텍스트, 이미지, 파이 노드 등 레이어 구성
    • 클리핑 및 마스크 기능
    • 자동 레이아웃과 화면 방향 전환 지원
    • 9-슬라이스 텍스처, 비트맵/거리 필드 폰트
    • 템플릿을 활용한 UI 요소 재사용 가능
  • 씬 에디터
    • 자산 조립과 배치를 위한 시각적 에디터
    • 프리팹 기반 게임 오브젝트 구성
    • 계층 구조로 객체 그룹화

물리 시뮬레이션

  • Box2D, Bullet 기반 2D/3D 물리 엔진 완전 통합
  • 정적/동적/키네마틱 객체
  • 형태 기반 충돌 및 광선 캐스트 탐지
  • 타일맵 정밀 충돌 감지
  • 트리거, 조인트, 모터 지원

모두 Lua 스크립트로 가능

  • Lua 스크립트
    • 코드 편집기, 구문 강조, 자동완성, LSP 포함
    • 디버거 내장 및 변수 검사 가능
    • 렌더링 파이프라인 완전 스크립팅 가능
    • Teal 언어 사용한 타입 지정 가능
  • 리액티브 코드 스타일
    • 리액티브 스타일 Lua 지원으로 고성능 유지
    • 게임 오브젝트 간 비동기 통신 구조

크로스 플랫폼 지원

  • 진정한 크로스 플랫폼
    • 동일 코드 기반으로 원클릭 배포
    • Steam, Facebook Instant 등은 확장으로 지원
    • 에디터는 macOS, Windows, Linux 모두 지원
    • Xcode나 Android Studio 없이도 모바일 배포 가능
    • WebGL, OpenGL, Vulkan, Metal 지원
  • 매우 가벼움
    • 사용된 자산만 포함하는 자동 리소스 관리
    • 스프라이트 아틀라스 패킹
    • 플랫폼 별 텍스처 압축 설정 가능
    • 렌더 파이프라인에서의 동적 배치 처리

성능과 안정성

  • 다른 엔진보다 훨씬 작은 바이너리 크기
    • Unity 6, Godot 4.3 대비 10% 정도의 바이너리 크기 (안드로이드,iOS,HTML5,Windows 모두)
  • 뛰어난 성능
    • 수만 개 오브젝트 렌더링 가능 (예시: Bunnymark)
    • 오래된 하드웨어와 모바일 브라우저에서도 원활히 작동
  • Stable 버전
    • 4주 릴리즈 주기, 2주 베타 기간 포함
    • 하위 호환성 깨는 변경 거의 없음
    • 엔진 충돌은 매우 드물게 발생

빠른 작업 흐름

  • 핫 리로드
    • 자산/로직 실시간 적용
    • 무선 디바이스 핫 리로드 및 디버깅 지원
    • Lua 훅을 통한 커스텀 리로드 처리 가능
  • 커스텀 워크플로우
    • 독립 빌드 파이프라인 사용 가능
    • CI와 통합된 헤드리스 빌드 지원
    • 프로젝트 간 라이브러리 공유 가능
    • 공식 및 커뮤니티 자산 포함된 Asset Portal 운영
    • 모든 데이터는 텍스트 파일로 관리되어 병합 쉬움
  • 빌드 및 리팩터링
    • HTML5 포함 모든 빌드가 수 초 내 완료
    • 비동기 및 동기 로딩 지원
    • 자동 자산 리팩터링
  • 최적화 및 디버깅
    • 실시간 시각적 프로파일러
    • 원격 웹 기반 프레임 샘플링
    • 게임 영상 캡처 가능
    • 네이티브 충돌 로그 API 제공

네이티브 확장으로 기능 추가

  • C, C++, ObjectiveC, Java, JavaScript로 Defold 엔진 기능 확장 가능
  • 클라우드에서 사용자 맞춤 엔진 자동 생성
  • 활용 예시
    • 고성능 연산 및 데이터 처리
    • 모바일 카메라 등 하드웨어 접근
    • 광고, 분석 등 외부 SDK와의 연동

실전 적용 및 서드파티 통합

  • Defold는 실전용 게임 엔진으로 신뢰성 있는 SDK와 통합 제공
  • 푸시 알림: Google, Apple
  • 인앱 결제: Google, Apple, Amazon, Facebook
  • 게임 서비스: Facebook SDK, Google Play, Firebase
  • 광고: AdMob, IronSource 등 중개 지원
  • 네트워크: WebSockets, Nakama, PlayFab, Colyseus 등
  • 더 많은 확장은 Asset Portal에서 확인 가능

왜 Defold인가?

  • Defold는 모든 게임에 최적이라는 주장은 하지 않음
  • 그러나 일부 게임에 대해선 최고의 선택이 될 수 있음
  • 개발 생산성, 경량화, 크로스 플랫폼, 빠른 반복 작업 등에서 특화된 강점 보유

Read Entire Article