XNUMX년의 개발 끝에 S전자가 첫 번째 릴리스를 발표했습니다. 새로운 오픈 소스 게임 엔진의 주변. 엔진 멀티플레이어 게임 및 3D 애플리케이션 제작을 위한 런타임 제공 WebAssembly 표현으로 컴파일되고 렌더링을 위해 WebGPU API를 사용합니다.
Ambient 개발의 주요 목표는 멀티플레이어 게임의 개발을 단순화하고 싱글 플레이어 프로젝트보다 게임 제작을 더 어렵게 만드는 도구를 제공하는 것입니다.
이 엔진은 초기에 중간 WebAssembly 코드로의 컴파일이 가능한 모든 프로그래밍 언어로 게임 및 애플리케이션 개발을 지원하는 범용 런타임을 만드는 것을 목표로 합니다. 그러나 첫 번째 버전은 지금까지 Rust 개발만 지원합니다.
앰비언트 소개
앰비언트에서 두드러지는 특징 중, 네트워킹에 대한 투명한 지원. 엔진은 클라이언트와 서버의 기능을 결합하고 클라이언트와 서버 논리를 생성하는 데 필요한 모든 구성 요소를 제공하며 클라이언트에서 서버 상태를 자동으로 동기화합니다.
또한 언급됩니다 공통 데이터 모델은 클라이언트와 서버 측에서 사용됩니다., 백엔드와 프런트엔드 간에 코드를 쉽게 전송할 수 있습니다. 자체 격리된 환경에서 각 모듈을 실행하여 신뢰할 수 없는 코드의 영향을 제한하고 하나의 모듈이 충돌해도 전체 애플리케이션이 충돌하지 않습니다.
주변, c데이터 지향 아키텍처를 가지고 있으며, 따라서 각 WASM이 조작할 수 있는 구성 요소 시스템을 기반으로 데이터 모델을 제공합니다. ECS(Entity Component System) 디자인 패턴을 사용합니다.
그 외에도, 서버의 중앙 집중식 데이터베이스에 모든 구성 요소의 데이터를 저장합니다.r의 상태는 자동으로 클라이언트에 복제되며 클라이언트는 로컬 상태를 고려하여 데이터를 확장할 수 있습니다.
범용 실행 출력 파일을 생성하면서 WebAssembly로 컴파일되는 모든 프로그래밍 언어로 Ambient 모듈을 생성하는 기능(지금까지 Rust만 지원됨)은 Windows, macOS 및 Linux에서 실행할 수 있으며 클라이언트 및 서버로 작동할 수 있습니다.
한편으로는 다음과 같이 강조하기도 한다.자체 구성 요소 및 "개념"을 정의할 수 있는 기능이 있습니다. (구성 요소 모음). 동일한 구성 요소와 개념을 사용하는 프로젝트는 데이터가 특정 프로젝트에서 사용하도록 특별히 설계되지 않은 경우에도 데이터를 이식하고 공유할 수 있도록 합니다.
Ambient에서 눈에 띄는 다른 기능은 다음과 같습니다.
- ".glb" 및 ".fbx"를 포함하여 다양한 형식의 리소스 컴파일 지원. 네트워크를 통한 리소스 스트리밍 기능: 클라이언트는 서버에 연결할 때 필요한 모든 리소스를 얻을 수 있습니다(모든 리소스가 로드될 때까지 기다리지 않고 플레이를 시작할 수 있음).
- FBX 및 glTF 모델 형식, 다양한 사운드 및 이미지 형식이 지원됩니다.
- GPU를 사용하여 렌더링을 가속화하고 GPU 측 LOD 및 클리핑을 지원하는 고급 렌더링 시스템입니다.
- 기본적으로 물리적 기반 렌더링(PBR) 사용, 애니메이션 및 계단식 그림자 맵 지원.
- PhysX 엔진 기반의 물리적 프로세스 시뮬레이션 지원.
- React와 유사한 UI 구축 시스템.
- 현재 플랫폼과 독립적인 통합 엔트리 시스템.
- 플러그인 필터가 있는 공간 사운드 시스템.
- 개발은 아직 알파 단계에 있습니다. 아직 구현되지 않은 기능 중 웹에서 실행하는 기능, 클라이언트 API, 멀티 스레딩 관리용 API, 사용자 인터페이스 생성용 라이브러리, 자체 셰이더 사용용 API, 사운드 지원, 로드에 주목할 수 있습니다. 그리고 저장
- ECS(엔티티 구성 요소 시스템) 구성 요소, 즉석에서 리소스 다시 로드, 자동 서버 확장, 게임 맵과 게임 장면을 공동 생성하는 편집기.
마지막으로, 그것에 대해 더 알고 싶은 사람들은 코드가 Rust로 작성되었고 MIT 라이센스에 따라 배포됩니다.