LayaAir

LayaAir는 중국의 Layabox가 개발하는 공개 소스 2차원·3차원 게임 엔진이자 실시간 콘텐츠 제작 플랫폼이다. 웹 브라우저에서 실행하는 HTML5 게임 개발을 중심으로 성장했으며 현재는 네이티브 PC·모바일 애플리케이션과 여러 미니게임 플랫폼까지 하나의 프로젝트를 배포할 수 있...

분류게임 엔진, 2D·3D 크로스 플랫폼 게임·실시간 콘텐츠 엔진
개발사Layabox
프로젝트LayaAir Engine
주요 세대LayaAir 1.x, 2.x, 3.x
엔진 언어TypeScript, JavaScript
초기 지원 언어ActionScript 3.0, TypeScript, JavaScript
실행 환경HTML5 웹 브라우저, 플랫폼별 네이티브 런타임
렌더링 APIWebGL, WebGPU, OpenGL, Vulkan 등
3D 렌더링물리 기반 렌더링(PBR), Forward+, Clustered Lighting
2D 기능스프라이트, UI, 애니메이션, 파티클·텍스트
제작 도구LayaAir IDE
편집 기능3D 장면·재질·파티클·애니메이션·물리·UI
게임플레이코드와 비주얼 블루프린트 등
배포 대상웹, Windows, Linux, macOS, Android, iOS 등
추가 플랫폼WeChat·ByteDance 등의 미니게임 환경
기타 용도교육, 광고, 디지털 트윈, AR·VR, 제품 시각화
엔진 소스layabox/LayaAir
라이선스MIT License
공식 웹사이트LayaAir
공식 문서LayaAir 3.x Documentation

LayaAir는 중국의 Layabox가 개발하는 공개 소스 2차원·3차원 게임 엔진이자 실시간 콘텐츠 제작 플랫폼이다. 웹 브라우저에서 실행하는 HTML5 게임 개발을 중심으로 성장했으며 현재는 네이티브 PC·모바일 애플리케이션과 여러 미니게임 플랫폼까지 하나의 프로젝트를 배포할 수 있도록 기능을 확장했다. TypeScript와 JavaScript 기반 개발 환경, 2D·3D 그래픽스와 통합 편집기인 LayaAir IDE를 결합한다. 게임 이외에 교육·광고·건축 시각화와 디지털 트윈, AR·VR 같은 분야로도 활용 범위를 넓히고 있다.[1]

LayaAir의 초기 버전은 Flash와 HTML5 사이의 게임 콘텐츠 이행을 고려하여 설계됐다. ActionScript 3.0·TypeScript·JavaScript를 지원하는 개발 모델과 WebGL 우선 렌더링 및 Canvas 대체 경로가 특징이었다. 시간이 지나면서 브라우저의 그래픽스 API와 모바일 플랫폼이 발전했고, LayaAir 2.x와 3.x 계열은 현대적인 3차원 렌더링 및 제작 도구를 더욱 강조했다. 공식 GitHub 저장소는 2.x와 3.x의 안정 분기를 구분하여 제공하고 3.x 개발 분기도 별도로 관리한다. 따라서 구형 Flash 중심의 개발 환경과 현대 LayaAir의 WebGPU·PBR 기능은 동일 세대의 사양으로 취급하지 않는다.[2]

실행 구조는 화면에 표시할 장면·노드 및 리소스를 관리하는 엔진 코어와 실제 GPU에 명령을 전달하는 렌더링 백엔드, 사용자 게임 로직으로 구성된다. 2D 게임에서는 스프라이트·레이어와 텍스트, 입력·애니메이션 및 UI 요소를 관리한다. 3D 게임에서는 메시와 카메라·광원·재질, 스켈레탈 애니메이션, 물리와 장면 계층이 핵심 객체를 이룬다. 개발자는 TypeScript나 JavaScript 코드에서 이러한 객체의 수명 주기와 속성을 제어하며 장면 데이터와 스크립트·자산을 연결한다. 코드로 작성하는 부분과 시각적 편집기를 이용하는 부분을 구분하면서 함께 사용할 수 있다는 점이 특징이다.

3차원 렌더링은 WebGL, WebGPU, OpenGL, Vulkan 등 여러 그래픽스 API를 대상으로 하는 추상화 계층을 제공한다. 현대 LayaAir는 물리 기반 재질 표현과 다수 광원을 처리하는 Clustered Lighting, Forward+ 렌더링 및 프로그래밍 가능한 렌더링 파이프라인을 소개한다. 화면 품질과 GPU 기능은 브라우저·플랫폼의 실제 백엔드에 따라 달라지므로 모든 API가 같은 기능을 똑같이 제공한다는 뜻은 아니다. 2D 화면에서는 스프라이트 애니메이션과 텍스처 아틀라스·파티클·마스크 등의 기능을 이용하여 게임과 애플리케이션 UI를 구성할 수 있다.[3]

LayaAir IDE는 게임 개발자가 장면을 배치하고 재질·애니메이션과 물리 속성을 편집하는 통합 제작 도구다. 공식 프로젝트는 3D 장면, 머티리얼, 파티클, 블루프린트, 애니메이션, 물리 및 UI 편집기를 포함한 작업 환경을 소개한다. 엔진 소스를 별도로 컴파일한 뒤 편집기 프로젝트의 engine/libs에 필요한 JavaScript 결과물을 복사하여 편집기 내부 엔진을 덮어쓰는 개발 흐름도 지원한다. 이처럼 엔진 코어의 수정과 콘텐츠 제작 환경의 사용을 분리할 수 있어 사용자 정의 그래픽스 기능이나 내부 도구를 구현하는 개발자에게도 활용된다.[4]

배포 대상에는 HTML5 웹뿐 아니라 Windows·Linux·macOS, Android·iOS의 네이티브 앱과 WeChat·ByteDance·Alipay 등 플랫폼별 미니게임 환경이 포함된다. 프로젝트는 앱 실행기와 입력·그래픽스 API를 플랫폼별로 연결하고 자산을 대상 환경에 맞게 패키징한다. 다만 미니게임과 브라우저 환경에서는 운영체제 파일 접근·네트워크와 그래픽스의 제약이 서로 다르므로 배포 시 엔진 버전과 플랫폼 SDK가 중요하다. 공개 엔진 소스에는 MIT License가 적용되고 개발자는 저장소에서 코드를 검토·수정할 수 있다. 엔진 코드를 재사용할 수 있는 권리와 타사 플랫폼의 서비스·개발자 계약 및 프로젝트 내 에셋의 권리는 구분해야 한다.[5]

역사

설계 목표와 기술 계보

엔진 아키텍처와 실행 모델

게임 객체·월드·장면

개발 언어와 스크립팅

렌더링 및 그래픽스

물리·애니메이션·시뮬레이션

입력·오디오와 UI

자산 관리 및 제작 파이프라인

지원 플랫폼과 실행 환경

라이선스·소스 공개

대표 게임과 활용 사례

기술적 영향

관련 문서

  1. LayaAir 공식 프로젝트 소개 ↩
  2. LayaAir 공식 README와 릴리스 분기 ↩
  3. LayaAir: 렌더링 기능 및 기술 사양 ↩
  4. LayaAir 소스 빌드와 IDE 연결 절차 ↩
  5. LayaAir 라이선스·배포 플랫폼 ↩