Defold: 크로스 플랫폼 게임 엔진
(defold.com)- 가볍고 고성능인 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는 모든 게임에 최적이라는 주장은 하지 않음
- 그러나 일부 게임에 대해선 최고의 선택이 될 수 있음
- 개발 생산성, 경량화, 크로스 플랫폼, 빠른 반복 작업 등에서 특화된 강점 보유
Hacker News 의견
-
이들은 흥미로운 라이선스 솔루션을 선택했음. 오픈 소스 대신 소스 가용 라이선스로 명명된 점이 마음에 듦
- 엔진에 독점적인 변경을 가할 수 있으며 이를 공개할 필요가 없음 (GPL과 다름)
- 엔진으로 만든 게임을 자유롭게 수익화할 수 있으며, 미끼와 전환이 없을 것이라는 보장을 제공함
- Apache 2.0이 아닌 이유는 게임 엔진 자체를 수익화할 수 없기 때문임
- 공정하고 신중하게 고려된 것 같음. 팀에게 찬사를 보냄
-
"소스 가용"이라고 부르고 "오픈 소스"를 잘못 사용하지 않은 점에 큰 찬사를 보냄. Apache 기반 라이선스에 추가된 사항을 강조한 점도 좋음
-
Defold에 대한 애정이 있음. 게임 개발 분야에서 독특함. 예를 들어, 내장된 GUI 편집기가 Clojure로 작성됨
- 스웨덴의 게임 개발 스튜디오에서 시작된 것으로 알고 있음 (King일 가능성 있음)
- 콘솔 플랫폼 빌드/릴리스 도구는 게임 개발자에게 비용이 들 수 있음. 플랫폼 SDK 자체가 제한을 가하기 때문임
- Defold 조직이 라이선스 등에서 게임 개발자에게 공정하려는 진지한 노력을 기울이는 것 같음
-
Defold는 오래전부터 있었음. 왜 지금 이게 메인 페이지에 있는지 모르겠음. 어쨌든 Defold는 좋음. 커뮤니티, 문서 등은 Godot에 비해 낮은 편임
- 다른 옵션으로는 MonoGame (Stardew Valley가 이로 작성됨)과 Unity, Unreal 같은 대형 엔진이 있음
- 학습에 얼마나 투자할지, 원하는 기능 세트, 고려할 트레이드오프나 플랫폼, 사용할 프로그래밍 언어/스타일에 따라 많이 달라짐
-
Unity가 처음 등장했을 때의 느낌을 기억함. 이건 뭔가 될 것 같은 느낌이었음
- 이 느낌이 비슷함. 팀이 좋은 것을 가지고 있다는 것을 커뮤니케이션과 언어의 정신에서 알 수 있음
- 현재 다중 플랫폼 내보내기가 매우 포괄적이라는 사실이 큼. Godot의 가장 큰 장애물 중 하나는 콘솔 지원이었음
- 유일한 불만은 Lua만 지원한다는 점이었음. C#이었다면 더 흥미로웠을 것임. 하지만 적어도 일부 엔진처럼 완전한 C++ 재컴파일은 아님
-
관련 진행 중인 제출물 있음. 이 엔진을 사용하여 60k LOC의 Lua로 작성된 게임에 대한 것임
-
Nixpkgs에 없다는 것을 발견했음
-
기능 측면에서 Godot와의 더 심층적인 비교를 보고 싶음. 적어도 3D 기능에서는 후자가 훨씬 더 발전한 것 같음
-
몇 년 전 이 엔진을 팔로우했었음. King이 만든 게임 엔진으로, 그들이 스스로 투자하지 않게 된 후 자유롭게 풀어줌
-
Löve 2D와 비교했을 때, IDE와 함께 제공되는 것 외에 어떻게 다른지 궁금함. Defold는 더 많은 플랫폼을 지원하는 것 같지만, 다양한 콘솔에 게임을 패키징하는 것은 매우 비공개적인 종속성을 수반할 수 있음